Свойства класса:
Объекты класса:
Свойства класса:
Методы класса:
$volume=round(65535*$params['VALUE']/100); $this->setProperty('volumeLevel',$params['VALUE']); safe_exec('..\\apps\\nircmd\\nircmdc setsysvolume '.$volume); say("Изменилась громкость до ".$params['VALUE']." процентов");
Объекты класса:
$command=$params['command']; $short_command=''; $dt=recognizeTime($command,$short_command); if (preg_match('/скажи сколько время/is',$command)) { if ($dt>0) { addScheduledJob("command".$dt,"processCommand('".$short_command."');",$dt); say('Задача принята',2); return; } global $voicemode; $voicemode='on'; say('Сейчас '.timeNow(),2); } elseif (preg_match('/сколько время/is',$command)) { if ($dt>0) { addScheduledJob("command".$dt,"processCommand('".$short_command."');",$dt); say('Задача принята'); echo $short_command; return; } say('Сейчас '.timeNow()); } elseif (preg_match('/повтори (.+)/is',$command,$m) || preg_match('/скажи (.+)/is',$command,$m)) { if ($dt>0) { addScheduledJob("command".$dt,"processCommand('".$short_command."');",$dt); say('Задача принята',2); return; } global $voicemode; $voicemode='on'; say($m[1],2); } else { say('Неизвестная команда...',2); }
Свойства класса:
Объекты класса:
Свойства класса:
Методы класса:
$this->setProperty('LastRun',date('Y-m-d H:i:s'));
$name='Cron_'.$this->object_title; SQLExec("DELETE FROM jobs WHERE title='".$name."'");
Объекты класса:
callMethod("ПР2_LED_упр.turnOn"); callMethod("ПР2_LED_упр.setLevel",array('level'=>'60')); // уровень якрости 60 процентов. callMethod("ПР2_LED_упр.setColor",array('color'=>'#0000ff'));
callMethod("ПР2_LED_упр.setLevel",array('level'=>'5')); // уровень якрости 5 процентов. callMethod("ПР2_LED_упр.setColor",array('color'=>'#00ff00'));
Свойства класса:
Методы класса:
$pok=$params['NEW_VALUE']; // получаем текущие показания if (is_numeric($pok)) { if (($pok >= '0') || ($pok > '15000')) { $pok2=($pok*1000); $this->setProperty($params['PROPERTY']."_f",round($pok2, 0)); if ($pok2>8300) { say("Вылючите электро приборы, привышел лемин по электросети",2);} }} else return;
$pok=$params['NEW_VALUE']; // получаем текущие показания if (is_numeric($pok)) { if (($pok > '0') || ($pok < '300')) { $this->setProperty($params['PROPERTY']."_f",round($pok, 0)); }} else return;
Объекты класса:
Свойства класса:
Методы класса:
//$params["USER_OBJECT"]
//$params["USER_OBJECT"]
Свойства класса:
Методы класса:
$this->setProperty("updated",time()); $this->setProperty("updatedTime",date("Y-m-d H:i:s",time())); $this->setProperty("alive",1); $ot=$this->object_title; $alive_timeout=(int)$this->getProperty("aliveTimeOut"); if (!$alive_timeout) { $alive_timeout=12*60*60; $this->setProperty("statusText",1); } setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout); $s=$params['status']; if (isset($s)) { // Записать в свойство объекта $this->setProperty('status',$s); } $this->setProperty("statusText", 2);
Объекты класса:
Свойства класса:
Методы класса:
//$params['t'] $this->setProperty("updated",time()); $this->setProperty("updatedTime",date("H:i",time())); $this->setProperty("alive",1); $ot=$this->object_title; $alive_timeout=(int)$this->getProperty("aliveTimeOut"); if (!$alive_timeout) { $alive_timeout=30*60; } clearTimeOut($ot."_alive"); setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout); if (!isset($params['h'])) { return; } $old_temp=$this->getProperty('humidity'); $t=round($params['h'],1); if ($t>100) return; $this->setProperty('humidity',$t); if ($params['uptime']) { $this->setProperty('uptime',$params['uptime']); } if ($t>$old_temp) { $d=1; } elseif ($t<$old_temp) { $d=-1; } else { $d=0; } $this->setProperty('direction',$d); $linked_room=$this->getProperty("LinkedRoom"); if ($linked_room) { setGlobal($linked_room.'.Humidity',$t); }
Объекты класса:
Свойства класса:
Методы класса:
$this->setProperty('status',$params['status']); // выставляем статус сенсора $this->setProperty('updatedTimestamp',time()); // выставляем время срабатывания сенсора $this->setProperty('alive',1); $ot=$this->object_title; $alive_timeout=(int)$this->getProperty("aliveTimeOut"); if (!$alive_timeout) { $alive_timeout=24*60*60; } clearTimeOut($ot."_alive"); setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout); if ($params['status']) { $this->setProperty('motionDetected',1); clearTimeOut($this->object_title.'_detected'); setTimeOut($this->object_title.'_detected',"setGlobal('".$this->object_title.".motionDetected',0);",30); $linked_room=$this->getProperty('LinkedRoom'); if ($linked_room!='') { callMethod($linked_room.'.onActivity'); } if ($this->object_title=='sensorMovement3' || $this->object_title=='sensorMovementRemote1' || $this->object_title=='sensorMovementRemote2') { //|| $this->object_title=='sensorMovement5' return; // не реагируем на движение в спальне, по ip-сенсорам и по сенсору на втром этаже } ClearTimeOut("nobodyHome"); SetTimeOut("nobodyHome","callMethod('NobodyHomeMode.activate');", 1*60*60); // выполняем если целый час никого не было if (getGlobal('NobodyHomeMode.active')) { callMethod('NobodyHomeMode.deactivate'); } $last_register=registeredEventTime('inhouseMovement'); // проверяем когда в последний раз срабатывало событие "движение внутри дома" registerEvent('inhouseMovement',$this->name,2); // регистрируем событие "движение внутри дома" if (timeBetween('05:00', '12:00') && ((time()-$last_register)>2*60*60)) { runScript('Greeting'); // запускаем скрипт "доброе утро" } }
Объекты класса:
Объекты класса:
Свойства класса:
Методы класса:
$this->setProperty("updated",time()); $this->setProperty("updatedTime",date("Y-m-d H:i:s",time())); $this->setProperty("alive",1); $ot=$this->object_title; $alive_timeout=(int)$this->getProperty("aliveTimeOut"); if (!$alive_timeout) { $alive_timeout=12*60*60; } setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout); // Получение среднего значения из истории //Получить id свойства $prop_id=$this->getPropertyByName('temperature', $this->class_id, $this->id); //Получаем VALUE_ID для следующей таблицы $pvalue=SQLSelectOne("SELECT * FROM pvalues WHERE PROPERTY_ID='".$prop_id."' AND OBJECT_ID='".$this->id."'"); //Получаем средние значения температуры за последние 30 минут $start_time=time()-30*60; // 30 минут $arr_s = SQLSelectOne("SELECT avg(VALUE) as AVG_V FROM phistory WHERE VALUE_ID='".$pvalue['ID']."' AND ADDED>='".date('Y-m-d H:i:s', $start_time)."'"); $avg_s=round($arr_s[AVG_V], 1); $s=$params['temperature']; if (isset($s)) { // Если некорректные данные if (($s > 50) || ($s < -50)) { return; } // Записать в свойство объекта $this->setProperty('temperature',$s); } else { // Для слинкованных свойств и запуска этого метода без передачи данных, взять их из свойства. $s = $this->getProperty('temperature'); } $s=round($s, 1); // Сравнение if ($s-$avg_s > 0.5) { $d=1; } elseif ($s-$avg_s < -0.5) { $d=-1; } else { $d=0; } $this->setProperty('direction',$d); // Передать данные слинкованной комнате $linked_room=$this->getProperty("LinkedRoom"); if ($linked_room) { setGlobal($linked_room.'.Temperature', $s); }
Объекты класса:
Свойства класса:
Методы класса:
$status=$this->getProperty('status'); $linked_room=$this->getProperty('LinkedRoom'); $this->setProperty("updated",time()); $this->setProperty("updatedTime",date("Y-m-d H:i:s",time())); $this->setProperty('alive',1); $ot=$this->object_title; $alive_timeout=(int)$this->getProperty("aliveTimeOut"); if (!$alive_timeout) { $alive_timeout=24*60*60; } // время жизни 24 часа clearTimeOut($ot."_alive"); setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout); ////// смотреть тут должен быть (!$s) // Для слинкованных свойств и запуска этого метода без передачи данных, $s = $this->getProperty('status'); if (!$s) { $this->setProperty('motionDetected',1); clearTimeOut($this->object_title.'_detected'); setTimeOut($this->object_title.'_detected',"setGlobal('".$this->object_title.".motionDetected',0);",30); // Запустить метод onActivity в слинкованной комнате if ($linked_room!='') { callMethod($linked_room.'.onActivity'); } } /* $this->setProperty("updated",time()); // штамп времени обновления $this->setProperty("updatedTime",date("Y-m-d H:i:s",time())); // время последнего обновления $this->setProperty("alive",1); // статус того, что датчик работает нормально $ot=$this->object_title; // присваеваем $ot объект $alive_timeout=(int)$this->getProperty("aliveTimeOut"); if (!$alive_timeout) { $alive_timeout=24*60*60; } // с прошлого обновления, через которое датчик считается неживым clearTimeOut($ot."_alive"); // очищаем таймер жизни _alive setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout);//назначаем новый таймер и статус $s=$params['status']; if (isset($s)) { // если существует стату тогда // Записать в свойство объекта // Если в $params['status'] передана 2, то просто отреагировать на движение без записи в свойство if ($s==2) { $s=1; } else { $this->setProperty('status',$s); } } else { // Для слинкованных свойств и запуска этого метода без передачи данных, $s = $this->getProperty('status'); } if ($s) { // Установить/продлить свойство движения на 30 секунд $this->setProperty('motionDetected',1); clearTimeOut($this->object_title.'_detected'); setTimeOut($this->object_title.'_detected',"setGlobal('".$this->object_title.".motionDetected',0);",30); // Запустить метод onActivity в слинкованной комнате $linked_room=$this->getProperty('LinkedRoom'); if ($linked_room!='') { callMethod($linked_room.'.onActivity'); } /* if (getGlobal('somebodyHome')!=1) { setGlobal('somebodyHome',1); } */ /* $last_register=registeredEventTime('inhouseMovement'); registerEvent('inhouseMovement',$this->name,2); if (!$last_register || ((time()-$last_register)>2*60*60)) { if (timeBetween('06:00', '12:00')) { runScript('morningGreeting'); } if (timeBetween('16:00', '01:00')) { runScript('eveningGreeting'); } } */ /* } */
Объекты класса:
Объекты класса:
Свойства класса:
Методы класса:
$tempYesterday = getHistoryValue("ow_fact.temperature", strtotime("-1 day"), true); sg("ow_fact.tempYesterday", $tempYesterday); //Расчет температуры "По ощущениям" $t = gg('ow_fact.temperature'); // температура на улице $h = gg('ow_fact.humidity'); // влажность на улице % $w = gg('ow_fact.wind_speed'); // данные о ветре из прогноза OpenWeather m/s $w = $w*3.6/1.609;//m/s -> mph $tF = $t *1.8+32; // перевод температуры в Farenheit if ($t > 26.6) { // Считаем HeatIndex по Rothfusz $_f = -42.379 + 2.04901523*$tF + 10.14333127*$h - 0.22475541*$tF*$h - 0.00683783*$tF*$tF - 0.05481717*$h*$h + 0.00122874*$tF*$tF*$h + 0.00085282*$tF*$h*$h -0.00000199*$tF*$tF*$h*$h; if(($tF < 112) && ( $h<13 )) { // If the RH is less than 13% and the temperature is between 80 and 112 degrees F, then the following adjustment is subtracted from HI: $_f = $_f-((13-$h)/4)*sqrt((17-abs($tF-95.))/17); } if(($tF < 88) && ($h > 85)) { // On the other hand, if the RH is greater than 85% and the temperature is between 80 and 87 degrees F, then the following adjustment is added to HI: $_f = $_f + (($h - 85) / 10) * ((87 - $tF) / 5); //ADJUSTMENT = [(RH-85)/10] * [(87-T)/5] } } else if ($t <= 10) { // Считаем фактор WindChild $_f = 35.74 + (0.6215 * $tF) - (35.75 * pow($w, 0.16)) + ((0.4275 * $tF) * pow($w, 0.16)); } else { //считаем по упрощенной формуле $_f = 0.5*($tF+61+(($tF-68)*1.2)+($h*0.094)); } // переводим в цельсии $rf = round(($_f-32)/1.8,1); sg("ow_fact.realFell", $rf);
Объекты класса:
Свойства класса:
Методы класса:
$this->setProperty('active',1);
$this->setProperty('active',0);
$this->setProperty("updated",time()); $this->setProperty("updatedTime",date('H:i')); if ($this->getProperty('active')) { // say("Режим ".$this->getProperty('title')." активирован."); say($this->getProperty('title')." активирован.",2); if (getGlobal('NobodyHomeMode.active')) callMethod("ПР2_LED_упр.turnOff"); if (getGlobal('NobodyHomeMode.active')) callMethod("КОТ_Бойлер_насос.turnOff"); } else { // say("Режим ".$this->getProperty('title')." выключен."); say($this->getProperty('title')." выключен.",2); if (!getGlobal('NobodyHomeMode.active')) callMethod("ПР2_LED_упр.turnOn"); if (!getGlobal('NobodyHomeMode.active')) callMethod("КОТ_Бойлер_насос.turnOn"); }
Объекты класса:
$this->setProperty("status",1); //sg("ManualMode.title","Включаю Автоматический режим"); //say('Включаю Автоматический режим',2);
$this->setProperty("status",0); // sg("ManualMode.title","Выключаю Автоматический режим"); // say('Выключаю Автоматический режим',2);
setGlobal('minMsgLevel','2'); /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/nightmode_activate.php'); /* end injection of {SDevices} */
setGlobal('minMsgLevel','1'); /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/nightmode_deactivate.php'); /* end injection of {SDevices} */
$this->setProperty("status",0); /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/darknessmode_deactivate.php'); /* end injection of {SDevices} */
$this->setProperty("status",1); /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/darknessmode_activate.php'); /* end injection of {SDevices} */
// Название режимов switch ($this->getProperty('status')) { //case -2: $s='минимальный'; break; case -1: $s='экономичный'; break; case 0: $s='обычный'; break; case 1: $s='повышенный'; break; //case 2: $s='максимальный'; break; } $this->setProperty('title', $s); say("Режим энергопотребления изменен на ".$s."."); /* Послать сообщение проверить логику бойлерам callMethod('RelayBoiler4.sendMessage'); callMethod('RelayBoiler3.sendMessage'); callMethod('RelayBoiler2.sendMessage'); callMethod('RelayBoiler1.sendMessage'); */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/econommode_deactivate.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/econommode_activate.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/nobodyhomemode_activate.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/nobodyhomemode_deactivate.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
$status=$this->getProperty("status"); if ($status) { $this->callMethod('turnOff'); } else { $this->callMethod('turnOn'); }
$this->setProperty("status",0); //DebMes("Реле ВЫКЛ: "); //.$this->object_title,date("Y-m-d H:i:s",time()));
$this->setProperty("status",1); //DebMes("Реле ВКЛ: "); //.$this->object_title, date("Y-m-d H:i:s",time()));
$status=$this->getProperty("status"); if ($status) { $this->callMethod('turnOn'); } else { $this->callMethod('turnOff'); } $this->callMethod("onChange");
Объекты класса:
DebMes("кнопка2");
Объекты класса:
Объекты класса:
// say('Смотрю логику.'); $ot=$this->object_title; // 1. Предпологаем, что реле будет выключено /////////////////////////////////////// $f = 0; // 3. Проверка свойств объекта комнаты и других объектов, которые могут изменить решение. /////////////////////////////////////// if (gg('HallArea.Luminiscence') < 20) { if (gg('HallArea.SomebodyHere')) { $f = 1; } } // 2. определение кто вызвал этот метод по параметру whosent /////////////////////////////////////// switch ($params['whosent']) { case 'меню': // вызывает Меню при нажатии на радио переключатель //Если повторное нажатие на кнопку if ($params['modeSwitch'] == $this->getProperty("modeSwitch")) { // Если режим Авто if ($params['modeSwitch'] == 1) { //Инвертируем текущий статус реле $f = !($this->getProperty("status")); } } else { //Присвоить новый режим свойству $this->setProperty("modeSwitch", $params['modeSwitch']); } break; case 'авто вкл': // вызывают шаблоны поведеия //Разрешает включить в реджиме Авто $f = 1; break; case 'авто выкл': // вызывают шаблоны поведеия //Разрешает вкылючить в реджиме Авто $f = 0; break; } // 4. Действие согласно главному переключателю режимов работы /////////////////////////////////////// switch ($this->getProperty('modeSwitch')) { case 0: // Выкл $f = 0; break; // Если нет правила на включение, если существует таймер, то включить case 1: // Авто if (!$f) { if (timeOutExists($ot.'_timer')) { $f = 1; } } break; case 2: // Вкл $f = 1; break; } // 5. Выполнение /////////////////////////////////////// $s=$this->getProperty("status"); if ($s<>$f) { if ($f) { $this->callMethod("turnOn"); } else { $this->callMethod("turnOff"); } }
Методы класса:
Объекты класса:
Свойства класса:
Методы класса:
include_once(DIR_MODULES."MiLight/MiLight.class.php");if($params["level"]>0){ $this->setProperty("status",1);} else{$this->setProperty("status",0);}$this->setProperty("Level",$params["level"]);$this->callMethod("sendCommand",array("command"=>"level","value"=>$params["level"]));
include_once(DIR_MODULES."MiLight/MiLight.class.php");$this->setProperty("status",1);$this->setProperty("Mode","W");$this->callMethod("sendCommand",array("command"=>"white"));
include_once(DIR_MODULES."MiLight/MiLight.class.php");$this->setProperty("status",1);$this->callMethod("sendCommand",array("command"=>"discoslower));
include_once(DIR_MODULES."MiLight/MiLight.class.php");$this->setProperty("status",1);$this->callMethod("sendCommand",array("command"=>"discofaster));
include_once(DIR_MODULES."MiLight/MiLight.class.php");$this->setProperty("status",1);$this->callMethod("sendCommand",array("command"=>"disco"));
include_once(DIR_MODULES."MiLight/MiLight.class.php");$status=$this->getProperty("status");if($status){$this->callMethod("turnOn");}else{$this->callMethod("turnOff");
include_once(DIR_MODULES."MiLight/MiLight.class.php");$level=$this->getProperty("Level");if($level>0){$this->callMethod("setLevel",array("level"=>$level));}else{$this->callMethod("turnOff");}
include_once(DIR_MODULES."MiLight/MiLight.class.php");/*$colors=array("#ff0000","#00ff00","#0000ff");$color=$colors[rand(0,count($colors)-1)];*/$rand=array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f");$color="#".$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)].$rand[rand(0,15)];$this->callMethod("setColor",array("color"=>$color));
include_once(DIR_MODULES."MiLight/MiLight.class.php");$this->setProperty("status",1);$this->setProperty("Mode","C");if ($params["color"]){$this->setProperty("Color",$params["color"]);}else{$params["color"]=$this->getProperty("Color");}$this->callMethod("sendCommand",array("command"=>"color","value"=>$params["color"]));
include_once(DIR_MODULES."MiLight/MiLight.class.php");$this->setProperty("status",0);$this->callMethod("sendCommand",array("command"=>"off"));
include_once(DIR_MODULES."MiLight/MiLight.class.php");$this->setProperty("status",1);$this->callMethod("sendCommand",array("command"=>"on"));
include_once(DIR_MODULES."MiLight/MiLight.class.php");$this->setProperty("updated",time());$this->setProperty("updatedTime",date("H:i"));include_once(ROOT."lib/hardware/milight.php");if (is_array($params)){ $command=$params["command"]; $value=$params["value"];}else{$command=$params;}$host=$this->getProperty("Host");$type=(int)$this->getProperty("LampType");$zone=(int)$this->getProperty("Zone"); $milight = new Milight($host);$commands="";if ($type==0){$milight->setWhiteActiveGroup($zone);if ($command=="leveldown"){$milight->command("whiteBrightnessDown");}if($command=="levelup"){$milight->command("whiteBrightnessUp");}if($command=="level" && $value>=90){$command="levelmax";}if($command=="level" && $value<=90){$command="levelmin";}if ($command=="levelmax"){$milight->command("whiteGroup".$zone."BrightnessMax");} if ($command=="levelmin") { $milight->command("whiteGroup".$zone."BrightnessMin");} if ($command=="nightmode") { $milight->command("whiteGroup".$zone."NightMode");} if ($zone==1) { if ($command=="on") { $milight->whiteGroup1On();} if ($command=="off") { $milight->whiteGroup1Off(); }} if ($zone==2) { if ($command=="on") { $milight->whiteGroup2On();} if ($command=="off") { $milight->whiteGroup2Off(); }} if ($zone==3) { if ($command=="on") { $milight->whiteGroup3On();} if ($command=="off") { $milight->whiteGroup3Off(); }} if ($zone==4) { if ($command=="on") { $milight->whiteGroup4On();} if ($command=="off") { $milight->whiteGroup4Off(); }} } if ($type==1) { if ($command=="disco") { $milight->setRgbwActiveGroup($zone); $milight->rgbwSendOnToActiveGroup(); $milight->command("rgbwDiscoMode");} if ($command=="discofaster") { $milight->setRgbwActiveGroup($zone); $milight->rgbwSendOnToActiveGroup(); $milight->command("rgbwDiscoFaster");} if ($command=="discoslower") { $milight->setRgbwActiveGroup($zone); $milight->rgbwSendOnToActiveGroup(); $milight->command("rgbwDiscoSlower");} if ($command=="level") { $milight->setRgbwActiveGroup($zone); $milight->rgbwBrightnessPercent($value);} if ($command=="color") { $milight->setRgbwActiveGroup($zone); $milight->rgbwSetColorHexString($value);} if ($zone==1) { if ($command=="on") { $milight->rgbwGroup1On();} if ($command=="off") { $milight->rgbwGroup1Off(); } if ($command=="white") { $milight->rgbwGroup1SetToWhite();}} if ($zone==2) { if ($command=="on") { $milight->rgbwGroup2On();} if ($command=="off") { $milight->rgbwGroup2Off();} if ($command=="white") { $milight->rgbwGroup2SetToWhite();}} if ($zone==3){ if ($command=="on"){ $milight->rgbwGroup3On();} if ($command=="off"){ $milight->rgbwGroup3Off();} if ($command=="white"){ $milight->rgbwGroup3SetToWhite();}} if ($zone==4){ if ($command=="on"){ $milight->rgbwGroup4On(); } if ($command=="off"){ $milight->rgbwGroup4Off();} if ($command=="white"){ $milight->rgbwGroup4SetToWhite();}}} sleep(1);
Объекты класса:
Свойства класса:
Методы класса:
$cmdline='"c:\Program Files\nooLite\nooLite.exe" -api '.$params['command']; $last_called=gg('NoolightCommandSend'); $min_delay=3; $now=time(); if (($now-$last_called)>$min_delay) { //safe_exec($cmdline); $last_callled=$now; sg('NoolightCommandSend',$last_called); DebMes("Noolite instant exec: ".$cmdline); system($cmdline); //exec($cmdline); } else { if ($last_callled<$now) { $last_callled=$now; } $last_called+=$min_delay; sg('NoolightCommandSend',$last_called); DebMes("Noolite scheduled job for ".date('H:i:s',$last_called)); AddScheduledJob("noolight".md5($cmdline),"safe_exec('".$cmdline."');",$last_called); }
$this->setProperty("status",0); //safe_exec('"c:\Program Files\nooLite\noolite.exe" -api -off_ch'.$this->getProperty("channel")); $this->callMethod("sendCommand",array('command'=>'-off_ch'.$this->getProperty("channel")));
$this->setProperty("status",1); $this->callMethod("sendCommand",array('command'=>'-on_ch'.$this->getProperty("channel")));
Свойства класса:
Методы класса:
$code1=$this->getProperty('Code1'); $code2=$this->getProperty('Code2'); safe_exec("c:\_majordomo\apps\arduino_gw\arduino_gw.exe rcon$code1:$code2;"); $this->setProperty("status",1);
$code1=$this->getProperty('Code1'); $code2=$this->getProperty('Code2'); safe_exec("c:\_majordomo\apps\arduino_gw\arduino_gw.exe rcoff$code1:$code2;"); $this->setProperty("status",0);
Свойства класса:
Методы класса:
$rooms=getObjectsByClass("Rooms"); $total=count($rooms); for($i=0;$i<$total;$i++) { $rooms[$i]['room']=getGlobal($rooms[$i]['TITLE'].'.Title'); if (!$rooms[$i]['room']) { $rooms[$i]['room']=$rooms[$i]['TITLE']; } $rooms[$i]['active']=getGlobal($rooms[$i]['TITLE'].'.SomebodyHere'); $rooms[$i]['time']=getGlobal($rooms[$i]['TITLE'].'.LatestActivity'); $rooms[$i]['diff']=time()-$rooms[$i]['time']; } function cmp($a, $b) { if ($a['diff'] == $b['diff']) { return 0; } return ($a['diff'] < $b['diff']) ? -1 : 1; } usort($rooms,"cmp"); if (!$rooms[0]['active']) { $somebodyHomeText="Никого нет дома. Были в ".date('H:i',$rooms[0]['time'])." (".$rooms[0]['room'].")"; } else { $res_rooms=array(); for($i=0;$i<$total;$i++) { if ($rooms[$i]['active']) { $res_rooms[]=$rooms[$i]['room']; } } $somebodyHomeText="Кто-то дома: ".implode(", ",$res_rooms); } setGlobal('somebodyHomeText',$somebodyHomeText); //echo "Updated"; /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/Rooms_updateActivityStatus.php'); /* end injection of {SDevices} */
// получить температуру $x = $this->getProperty('Temperature'); // не больше и не меньше if ($x<12) {$x=12;} elseif ($x>30) {$x=30;} // расчет величины цветовой шкалы $x = round( ($x-12)*42,5 ); $hcolor = '#'; // расчет r $y = $x-255; if ($y < 0) {$y = 0;} elseif ($y > 255) {$y = 255;} $y = dechex($y); if (strlen($y) == 1) {$y = '0'.$y;} $hcolor = $hcolor.$y; // расчет g $y = 255-$x; if ($y < 0) {$y = 0;} elseif ($y > 255) {$y = 255;} $y = dechex($y); if (strlen($y) == 1) {$y = '0'.$y;} $hcolor = $hcolor.$y; // расчет b $y = 765-$x; if ($y < 0) {$y = 0;} elseif ($y > 255) {$y = 255;} $y = dechex($y); if (strlen($y) == 1) {$y = '0'.$y;} $hcolor = $hcolor.$y; // установить свойство цвета температуры $this->setProperty('TempHEX', $hcolor);
$latestActivity=$this->getProperty('LatestActivity'); $this->setProperty('LatestActivity',time()); $this->setProperty('LatestActivityTime',date("Y-m-d H:i:s",time())); $this->setProperty('SomebodyHere',1); $ot=$this->object_title; //DebMes("Change: ".$this->object_title); //say("Датчик движения"); //say($ot); //say(getGlobal($ot.'.status')); //if (!getGlobal($ot.'.status')) { // запускаем таймер при отключении датчика движения. if ($this->getProperty("IdleDelay")) { $activity_timeout=(int)$this->getProperty("IdleDelay"); } else { $activity_timeout=10*60; } clearTimeOut($ot."_activity_timeout"); setTimeOut($ot."_activity_timeout","callMethod('".$ot.".onIdle');",$activity_timeout); $this->callMethod("updateActivityStatus"); //} ClearTimeOut("nobodyHome"); SetTimeOut("nobodyHome","callMethod('NobodyHomeMode.activate');", 1*60*60); // выполняем если целый час никого не было if (getGlobal('NobodyHomeMode.active')) { callMethod('NobodyHomeMode.deactivate'); } // срабатывает по датчику движени+ освещенность // $rs=$this->getProperty('Relays_Свет'); // Узанем название Реле-лампочки // DebMes($rs);//," ", 'ManualMode.status', " ", 'DarknessMode.active'," ", $this->getProperty("Luminiscence")); // Debmes('Автоматический режим '. gg('ManualMode.status')); // Debmes('Ражим день/ноч '.gg('DarknessMode.active')); // Debmes('Учитывать освещенность ' .$this->getProperty("Luminiscence")); if(getGlobal('ManualMode.status')) { // проверяем включен ли Автоматический режим if ((getGlobal('DarknessMode.active')) || ($this->getProperty("Luminiscence"))) { // Проверяем день-ночь or "Учитывать Освещенность" if (!getGlobal($rs.'.status')) { // Проверяем статус включина Реле-лампочки callMethod($rs.'.turnOn'); // Включаем } }} //////////////////////////////////// /* if ($this->object_title=='Bedroom' && timeBetween('23:00', '09:00')) { return; // не реагируем на движение в спальне } */ ////////////////////////// //////////////////////////////////// $last_register=registeredEventTime('inhouseMovement'); // проверяем когда в последний раз срабатывало событие "движение внутри дома" registerEvent('inhouseMovement',$this->name,2); // регистрируем событие "движение внутри дома" if (!$last_register || ((time()-$last_register)>2*60*60)) { // срабатывало более 2х часов назад if (timeBetween('06:00', '12:00')) { // движение замечено утром runScript('morningGreeting'); // запускаем скрипт "доброе утро" } if (timeBetween('16:00', '01:00')) { // движение замечено вечером runScript('eveningGreeting'); // запускаем скрипт приветствия } } ////////////////////////// /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/Rooms_onActivity.php'); /* end injection of {SDevices} */
$this->setProperty('SomebodyHere',0); $this->callMethod("updateActivityStatus"); $rs=$this->getProperty('Relays_Свет'); if (getGlobal('ManualMode.status')) { // "Автоматический режим" if (getGlobal($rs.'.status')) { callMethod($rs.'.turnOff'); } } /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/Rooms_onIdle.php'); /* end injection of {SDevices} */
Объекты класса:
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SDevices_setUpdatedText.php'); /* end injection of {SDevices} */
require(DIR_MODULES.'devices/SDevices_statusUpdated.php');
require(DIR_MODULES.'devices/SDevices_logicAction.php');
Методы класса:
require(DIR_MODULES.'devices/SButtons_pressed.php');
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SCameras_motionDetected.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SCameras_updatePreview.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SCameras_takeSnapshot.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
require(DIR_MODULES.'devices/SControllers_turnOn.php');
require(DIR_MODULES.'devices/SControllers_turnOff.php');
require(DIR_MODULES.'devices/SControllers_switch.php');
Свойства класса:
Методы класса:
require(DIR_MODULES.'devices/SDimmers_levelUpdated.php');
require(DIR_MODULES.'devices/SDimmers_turnOn.php');
require(DIR_MODULES.'devices/SDimmers_turnOff.php');
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SRGB_colorUpdated.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SRGB_setColor.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SRGB_turnOn.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SRGB_turnOff.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SThermostats_valueUpdated.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SThermostats_tempUp.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SThermostats_tempDown.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SThermostats_statusUpdated.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SCounters_valueUpdated.php'); /* end injection of {SDevices} */
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SLeak_statusUpdated.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
require(DIR_MODULES.'devices/SMotions_motionDetected.php');
Объекты класса:
Свойства класса:
Методы класса:
require(DIR_MODULES.'devices/SOpenClose_statusUpdated.php');
Свойства класса:
Методы класса:
require(DIR_MODULES.'devices/SSensors_valueUpdated.php');
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SSmoke_statusUpdated.php'); /* end injection of {SDevices} */
Методы класса:
Объекты класса:
echo "status received: ".$params['status'];
global $voicemode; $voicemode='off'; processCommand($params['message']);
Свойства класса:
Методы класса:
Объекты класса:
$details=array(); $red_state=0; $yellow_state=0; if ((!isOnline('Internet')) || (!isOnline('Wifi'))) { $yellow_state=1; $details[]=LANG_GENERAL_NO_INTERNET_ACCESS; } if ($red_state) { $state='red'; $state_title=LANG_GENERAL_RED; if ($this->getProperty('stateColor')!=$state) callMethod("ПР2_LED_упр.setColor",array('color'=>'#ff0000')); // изменили статус на красный } elseif ($yellow_state) { $state='yellow'; $state_title=LANG_GENERAL_YELLOW; if ($this->getProperty('stateColor')!=$state) callMethod("ПР2_LED_упр.setColor",array('color'=>'#ffa500')); // изменили статус на желтый } else { $state='green'; $state_title=LANG_GENERAL_GREEN; if ($this->getProperty('stateColor')!=$state) callMethod("ПР2_LED_упр.setColor",array('color'=>'#00ff00')); // изменили статус на зеленый } $new_details=implode(". ",$details); if ($this->getProperty("stateDetails")!=$new_details) { $this->setProperty('stateDetails',$new_details); } if ($this->getProperty('stateColor')!=$state) { $this->setProperty('stateColor',$state); $this->setProperty('stateTitle',$state_title); if ($state!='green') { say(LANG_GENERAL_COMMUNICATION_STATE." ".LANG_GENERAL_CHANGED_TO." ".$state_title."."); say(implode(". ",$details)); } else { say(LANG_GENERAL_COMMUNICATION_STATE." ".LANG_GENERAL_RESTORED_TO." ".$state_title); } $this->callMethod('stateChanged'); }
$details=array(); $red_state=0; $yellow_state=0; $cycles=array('states'=>'states','main'=>'main','execs'=>'exec','scheduler'=>'scheduler'); foreach($cycles as $k=>$v) { $tm=getGlobal('ThisComputer.cycle_'.$k.'Run'); if (time()-$tm>5*60) { $red_state=1; $details[]=$v." ".LANG_GENERAL_CYCLE." ".LANG_GENERAL_STOPPED."."; } } // Слежение за папкой, и rss канал (статус системы) $cycles=array('ping'=>'ping','webvars'=>'webvars'); //,'watchfolders'=>'watch folders','rss'=>'RSS'); foreach($cycles as $k=>$v) { $tm=getGlobal('ThisComputer.cycle_'.$k.'Run'); if (time()-$tm>10*60) { $yellow_state=1; $details[]=$v." ".LANG_GENERAL_CYCLE." ".LANG_GENERAL_STOPPED."."; } } if ($red_state) { $state='red'; $state_title=LANG_GENERAL_RED; if ($this->getProperty('stateColor')!=$state) callMethod("ПР2_LED_упр.setColor",array('color'=>'#ff0000')); // изменили статус на красный } elseif ($yellow_state) { $state='yellow'; $state_title=LANG_GENERAL_YELLOW; if ($this->getProperty('stateColor')!=$state) callMethod("ПР2_LED_упр.setColor",array('color'=>'#ffa500')); // изменили статус на желтый } else { $state='green'; $state_title=LANG_GENERAL_GREEN; if ($this->getProperty('stateColor')!=$state) callMethod("ПР2_LED_упр.setColor",array('color'=>'#00ff00')); // изменили статус на зеленый } $new_details=implode(". ",$details); if ($this->getProperty("stateDetails")!=$new_details) { $this->setProperty('stateDetails',$new_details); } if ($this->getProperty('stateColor')!=$state) { $this->setProperty('stateColor',$state); $this->setProperty('stateTitle',$state_title); if ($state!='green') { say(LANG_GENERAL_SYSTEM_STATE." ".LANG_GENERAL_CHANGED_TO." ".$state_title."."); say(implode(". ",$details)); } else { say(LANG_GENERAL_SYSTEM_STATE." ".LANG_GENERAL_RESTORED_TO." ".$state_title); } $this->callMethod('stateChanged'); } /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/system_checkstate.php'); /* end injection of {SDevices} */
$details=array(); $red_state=0; $yellow_state=0; if ($red_state) { $state='red'; $state_title=LANG_GENERAL_RED; if ($this->getProperty('stateColor')!=$state) callMethod("ПР2_LED_упр.setColor",array('color'=>'#ff0000')); // изменили статус на красный } elseif ($yellow_state) { $state='yellow'; $state_title=LANG_GENERAL_YELLOW; if ($this->getProperty('stateColor')!=$state) callMethod("ПР2_LED_упр.setColor",array('color'=>'#ffa500')); // изменили статус на желтый } else { $state='green'; if ($this->getProperty('stateColor')!=$state) callMethod("ПР2_LED_упр.setColor",array('color'=>'#00ff00')); // изменили статус на зеленый $state_title=LANG_GENERAL_GREEN; } $new_details=implode(". ",$details); if ($this->getProperty("stateDetails")!=$new_details) { $this->setProperty('stateDetails',$new_details); } if ($this->getProperty('stateColor')!=$state) { $this->setProperty('stateColor',$state); $this->setProperty('stateTitle',$state_title); if ($state!='green') { say(LANG_GENERAL_SECURITY_STATE." ".LANG_GENERAL_CHANGED_TO." ".$state_title."."); say(implode(". ",$details)); } else { say(LANG_GENERAL_SECURITY_STATE." ".LANG_GENERAL_RESTORED_TO." ".$state_title); } $this->callMethod('stateChanged'); }
Свойства класса:
Методы класса:
//START openweather module $updateTime = gg('ow_setting.updateTime'); if($updateTime > 0) { $count = gg('ow_setting.countTime'); if($count >= $updateTime) { include_once(DIR_MODULES . 'app_openweather/app_openweather.class.php'); $app_openweather = new app_openweather(); $app_openweather->get_weather(gg('ow_city.id')); sg('ow_setting.countTime', 1); } else { $count++; sg('ow_setting.countTime', $count); } } // END openweather module
Объекты класса:
/* // раскидываем дату и время если изменилось в Windows $h=(int)date('G',time()); if (gg('ThisComputer.DateD')!=date("d", time())) { $day[0]="воскресенье"; $day[1]="понедельник"; $day[2]="вторник"; $day[3]="среда"; $day[4]="четверг"; $day[5]="пятница"; $day[6]="суббота"; $month[1]="января"; $monthAlt[1]="ЯНВАРЬ"; $monthShrt[1]="ЯНВ"; $month[2]="февраля"; $monthAlt[2]="ФЕВРАЛЬ"; $monthShrt[2]="ФЕВ"; $month[3]="марта"; $monthAlt[3]="МАРТ"; $monthShrt[3]="МАРТ"; $month[4]="апреля"; $monthAlt[4]="АПРЕЛЬ"; $monthShrt[4]="АПР"; $month[5]="мая"; $monthAlt[5]="МАЙ"; $monthShrt[5]="МАЙ"; $month[6]="июня"; $monthAlt[6]="ИЮНЬ"; $monthShrt[6]="ИЮНЬ"; $month[7]="июля"; $monthAlt[7]="ИЮЛЬ"; $monthShrt[7]="ИЮЛЬ"; $month[8]="августа"; $monthAlt[8]="АВГУСТ"; $monthShrt[8]="АВГ"; $month[9]="сентября"; $monthAlt[9]="СЕНТЯБРЬ"; $monthShrt[9]="СЕН"; $month[10]="октября"; $monthAlt[10]="ОКТЯБРЬ"; $monthShrt[10]="ОКТ"; $month[11]="ноября"; $monthAlt[11]="НОЯБРЬ"; $monthShrt[11]="НБР"; $month[12]="декабря"; $monthAlt[12]="ДЕКАБРЬ"; $monthShrt[12]="ДЕК"; //sg("ThisComputer.DateD",date( "d", time())); //sg("ThisComputer.DateM",date( "m", time())); //sg("ThisComputer.DateY",date( "Y", time())); //sg("ThisComputer.Date",date( "d.m.Y", time())); //sg("ThisComputer.Day",$day[date("w")]); //sg("ThisComputer.Month",$month[date("n")]); //sg("ThisComputer.MonthAlt",$monthAlt[date("n")]); //sg("ThisComputer.monthShrt",$monthShrt[date("n")]); } */ // UPS Блоки бесперебойного питания cm('UPS.update');
$h=(int)date('G',time()); $m=date('i',time()); if (isWeekDay()) { } if (($h>=8) && getGlobal('clockChimeEnabled')) { if ($m=="00") { say(timeNow(),1); } } // ============================================================== // Дома кто-то есть или Дома никого setGlobal('timeNow',date('H:i')); $homeStatus=date('H:i'); if (getGlobal('NobodyHomeMode.active')) { $homeStatus.=' Дома никого'; } else { $homeStatus.=' Дома кто-то есть'; } $homeStatus.=' '.getGlobal('Security.stateDetails'); $homeStatus.=' '.getGlobal('System.stateDetails'); $homeStatus.=' '.getGlobal('Communication.stateDetails'); setGlobal('HomeStatus',$homeStatus); // ============================================================== // Включаем режим "на улице темно" if (timeBetween(getGlobal('SunRiseTime'),getGlobal('SunSetTime')) && getGlobal('isDark')=="1") { setGlobal("isDark",0); callMethod('DarknessMode.deactivate'); } elseif (!timeBetween(getGlobal('SunRiseTime'),getGlobal('SunSetTime')) && getGlobal('isDark')!="1") { setGlobal("isDark",1); callMethod('DarknessMode.activate'); } // ============================================================== // Произносим фразу Всходит/заходит солнце if (timeIs(getGlobal('SunRiseTime'))) { say('Всходит солнце'); } if (timeIs(getGlobal('SunSetTime'))) { say('Солнце заходит',2); } // ============================================================== // Включаем экономный режим if (timeIs("23:30") && (gg("EconomMode.active")!="1") && (gg("NobodyHomeMode.active")=="1")) { say("Похоже никого нет сегодня, можно сэкономить немного."); callMethod('EconomMode.activate'); } // ============================================================== // Включаем или выключаем НОЧНОЙ РЕЖИМ if (timeIs('20:00')) { callMethod('NightMode.activate'); } elseif (timeIs('08:00')) { callMethod('NightMode.deactivate'); } // ============================================================== // Обслуживание системы ОПТИМИЗАЦИЯ GPS и phistory if (timeIs("03:00")) { runScript("systemMaintenance"); } // получем ЧАСЫ и МИНУТЫ отдельно //$timeH=date("H", time()); //$timeM=date("i", time()); //sg("ThisComputer.timeH",$timeH); //sg("ThisComputer.timeM",$timeM); // освещения для цветка //runScript("Ночной_режим"); // на лето (экономия электричества) //runScript("Бойлер"); //runScript("Отпуск"); /* Утренний будильник if (gg('ThisComputer.AlarmStatus') && timeIs(gg('ThisComputer.AlarmTime'))) { runScript('MorningAlarm'); } */
Свойства класса:
Методы класса:
Объекты класса:
$data = getURL($this->getProperty("URL"), 0); if(!$data) { setTimeOut('UPS_Timer',"cm('UPS.update');",5); return; } $data = explode("\r\n", $data); if(!$data[0] == "") { // Отсудствуют данные $this->setProperty("InputVoltage", $data[0]); // - входящие вольты/ = 240 V $this->setProperty("OutputVoltage", $data[1]); // - выходящие Вольты. = 220 V $this->setProperty("LoadLevel", $data[2]); // - Уровень загрузки ИБП в процентах. = 15 % $this->setProperty("InputFrequency", $data[3]); // - Цифровой индикатор частоты тока. = 50 Hz if($data[9] == "1") // Если 9 строка равно 1 частота тока входное $this->setProperty("OutputFrequency", $data[4]); if($data[9] == "2") // Если 9 строка равно 2 частота тока выходное $this->setProperty("Temperature", $data[4]); // - Цифровой индикатор температуры ИБП. = 53 °C $this->setProperty("BatteryLevel", $data[5]); // - Уровень заряда батареи в процентах. = 100 % $this->setProperty("AVRMode", $data[6]); $this->setProperty("UtilityState", $data[7]); // - Комплексное значение статусов ИБП. 1 сеть / 2 батарея $this->setProperty("UPSState", $data[8]); $this->setProperty("LastUpdated", time()); $this->setProperty("LastUpdatedTime", date("Y-m-d H:i:s")); } setTimeOut('UPS_Timer',"cm('UPS.update');",5);
$oldState = $params["OLD_VALUE"]; $state = $params["NEW_VALUE"]; if($state != $oldState) { $stateNames = array( "1"=>"Питание восстановлено", "2"=>"Питание от батареи", "3"=>"Низкий заряд батареи", ""=>"Проблемы" ); if($oldState == "1") { cm("powerDisconnected"); $stateNames["2"] = "Отключение питания"; } if($state == "1") { cm("powerConnected"); } say($stateNames[$state],2); } setTimeOut('UPS_Timer',"cm('UPS.update');",5);
Методы класса:
Объекты класса:
if ($params['serial']=='' && $params['devname']!='') { $params['serial']=$params['devname']; } $device=SQLSelectOne("SELECT * FROM usbdevices WHERE SERIAL LIKE '".$params['serial']."'"); if (!$device['ID']) { // new device connected //say("Подключено новое устройство",1); $device=array(); $device['SERIAL']=$params['serial']; $device['TITLE']='устройство '.$params['devname']; $device['FIRST_FOUND']=date('Y-m-d H:i:s'); $device['LAST_FOUND']=date('Y-m-d H:i:s'); $device['LOG'].=$device['FIRST_FOUND'].' подключено (впервые)'."\n"; $device['ID']=SQLInsert('usbdevices',$device); } else { // device already in our database //say("Подключено ".$device['TITLE'],1); if ($device['USER_ID']) { $user=SQLSelectOne("SELECT * FROM users WHERE ID='".$device['USER_ID']."'"); if ($user['ID']) { //$user['NAME']; // теперь мы знаем имя пользователя, связанного с этим устройством } } $device['LAST_FOUND']=date('Y-m-d H:i:s'); $device['LOG']=$device['LAST_FOUND'].' подключено'."\n".$device['LOG']; SQLUpdate('usbdevices',$device); if ($device['SCRIPT_ID']!='') { runScript($device['SCRIPT_ID'],$params); } elseif ($device['SCRIPT']!='') { eval($device['SCRIPT']); } }
Свойства класса:
Методы класса:
//$params["LOCATION_OBJECT"], $params["LOCATION"]
//$params["LOCATION_OBJECT"], $params["LOCATION"]
$Coordinates=$this->getProperty("Coordinates"); $lat=substr($Coordinates,0,strpos($Coordinates,",")); $lon=substr($Coordinates,strpos($Coordinates,",")+1); $this->setProperty("Location",Getgeocode($lon,$lat));
Объекты класса:
Свойства класса:
Объекты класса:
, Россия
На форуме: ILGAS
© 2024 - Site Built By SergeJey | Реквизиты: Курицын С. С. ИНН 762001394609 | Контакты | Публичный договор
SmartLiving