Свойства класса:
Методы класса:
$this->setProperty("status",0);
$this->setProperty("status",1);
$status=$this->getProperty("status"); if ($status) { $this->callMethod('turnOff'); } else { $this->callMethod('turnOn'); }
$status=$this->getProperty("status"); if ($status) { $this->callMethod('turnOn'); } else { $this->callMethod('turnOff'); }
$linked_object=$this->getProperty("LinkedObject"); if ($linked_object) { setGlobal($linked_object.'.status', $this->getProperty("status")); // setGlobal($linked_room.'.direction', $d); // setGlobal($linked_room.'.SetTemp', $gt); }
Объекты класса:
Свойства класса:
Методы класса:
Объекты класса:
if (isWeekEnd()){ // сегодня выходной день // все проснулись setGlobal("SleepAllMode.active",0); say('Пора вставать!'); // включим радио // callMethod("Radio.RadioPlay"); // запланируем выключить радио через 25 минут // SetTimeOut("AlarmWeekEnd_RadioStop",'callMethod("Radio.RadioStop");', 60*25); // запланируем напоминание о точном времени и доклад погоды // SetTimeOut("AlarmWeekEnd_timeNow1",'callMethod("сколько время.action");', 60*30); // SetTimeOut("AlarmWeekEnd_Pogoda", 'callMethod("погода на улице.action");', 60*35); // SetTimeOut("AlarmWeekEnd_timeNow2",'callMethod("сколько время.action");', 60*40); // SetTimeOut("AlarmWeekEnd_timeNow3",'callMethod("сколько время.action");', 60*50); // если на улице темно // if(timeBetween(gg("Yandex.SunSet"),gg("Yandex.SunRise"))){ // плавное включение Бра в спальне // runScript("nl_lowOn_SpalnyaBra"); // Запланируем выключить его через полчаса // SetTimeOut("AlarmWeekEnd_BraOff",'callMethod("NooLiteD_SpalnyBra.turnOff");', 30*60); // } }
// это однократный будильник, выключим его sg("AlarmOne.AlarmOn",0); // все проснулись setGlobal("SleepAllMode.active",0); $add_word=getGlobal('AlarmOne.AlarmText'); if ($add_word<>"") {sayto($add_word,5,"Admin_WIFI"); } if (gg("AlarmOne.AlarmSound")) { //playSound('alarm_num7'); }
if (isWeekDay()) { // сегодня рабочий день // все проснулись setGlobal("SleepAllMode.active",0); $add_word=getGlobal('AlarmWeekDay.AlarmText'); sayto(timeNow(),Admin_WIFI); say($add_word); sleep(2); getURL('http://localhost/popup/app_101ru.html?ajax=1&op=playstation&id=48', 0); // runScript("sayTodayAgenda"); getURL("http://10.195.30.40:8080/requests/status.xml?command=volume&val=70",0); }
Свойства класса:
Методы класса:
$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); $t=round($this->getProperty("Temperature"), 0); if (($t > 100) || ($t < -50)) { //Некорректные данные $this->setProperty("alive",0); return; } // Получение среднего значения из истории //Получить 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_t = 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)."' AND VALUE<>'85' AND VALUE<>'0'"); $avg_t=round($arr_t[AVG_V], 0); //Сравнение if ($t>$avg_t) { $d=1; } elseif ($t<$avg_t) { $d=-1; } else { $d=0; } $this->setProperty('direction',$d); $check=abs($t-$avg_t); if ($check>40) { return; } $x=$t; // не больше и не меньше 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); //$this->setProperty('temp',$t); // Передать данные слинкованной комнате //$linked_room=$this->getProperty("LinkedRoom"); //if ($linked_room) { // setGlobal($linked_room.'.Temperature', $t); //$this->setProperty ("direction", $d); // setGlobal($linked_room.'.SetTemp', $gt); //}
//$RS=$this->getProperty("status"); $CON=$this->getProperty("Code_on"); //$COF=$this->getProperty("Code_off"); $RF_IP=gg("ESP_RF_send.wanip"); //Echo "$rfpt"; //if ($RS==0) { // say ($RS." ".$CON); //$cmdUrl = "http://".$RF_IP."/rcremote?pin0&cmd=".$CON."&bits=24"; $cmdUrl = "http://".$RF_IP."/RCSwitch?".$CON.",24"; getURL($cmdUrl,0); say("Открытие/Закрытие ворот",0); //} elseif ($RS==1) { // say ($RS." ".$COF); //$cmdUrl = "http://".$RF_IP."/rcremote?pin0&cmd=".$COF."&bits=24"; $cmdUrl = "http://".$RF_IP."/RCSwitch?".$COF.",24"; //getURL($cmdUrl,0); //}
$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); $t=round($this->getProperty("Temperature"), 0); if (($t > 100) || ($t < -50)) { //Некорректные данные $this->setProperty("alive",0); return; } // Получение среднего значения из истории //Получить 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_t = 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)."' AND VALUE<>'85' AND VALUE<>'0'"); $avg_t=round($arr_t[AVG_V], 0); //Сравнение if ($t>$avg_t) { $d=1; } elseif ($t<$avg_t) { $d=-1; } else { $d=0; } $this->setProperty('direction',$d); $check=abs($t-$avg_t); if ($check>40) { return; } $x=$t; // не больше и не меньше 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); //$this->setProperty('temp',$t); // Передать данные слинкованной комнате //$linked_room=$this->getProperty("LinkedRoom"); //if ($linked_room) { // setGlobal($linked_room.'.Temperature', $t); //$this->setProperty ("direction", $d); // setGlobal($linked_room.'.SetTemp', $gt); //} $x = $this->getProperty('Temperature'); $RST = $this->getProperty('SetTemp'); $LRT = $this->getProperty('LinkedRelay_T'); $status=gg($LRT.'.status'); $ot=$this->object_title; //$RFT_status= gg('ESP_RF_send.alive'); $heat_status=gg('Heating.status'); //say ($x." - ".$RST." - ".$LRT." - ".$ot." - ".$status); //if (($RFT_status==1) && ($heat_status==1)){ if ($heat_status==1){ $Tsensors=array(); //$Tsensors['Livingroom']="отопление в столовой"; //$Tsensors['Kitchen']="отопление на кухне"; //$Tsensors['sauna']="датчик температуры в сауне"; //$Tsensors['WC']="подогрев полов в туалете"; //$Tsensors['Temp_otopl_pr']="датчик температуры отопления прямая"; //$Tsensors['Temp_otopl_obr']="датчик температуры отопления обратка"; //$Tsensors['dressing_room']="подогрев полов в предбаннике"; //$Tsensors['Temp_shower']="датчик температуры в душе"; $Tsensors['input_water']="подогрев воды на вводе"; //$Tsensors['Hall_1st_floor']="подогрев полов в коридоре первого этажа"; //$Tsensors['Hall_2sd_floor']="подогрев полов в коридоре второго этажа"; //$Tsensors['N_Bedroom']="подогрев полов в северной спальне"; //$Tsensors['S_Bedroom']="подогрев полов в южной спальне"; //$Tsensors['bend']="Отопление в бендежке"; //$Tsensors['henhouse']="Отопление в курятнике"; //$Tsensors['Sinoptik']="датчик температуры на улице"; //$sensors['sensorTempRemote2']="датчик температуры в спальне"; //$sensors['ws']="модуль погодной станции"; foreach($Tsensors as $k=>$v) { if ($k==$ot) {$ot_rus =$v;} } if (($x<>$RST) && ($RST) && ($LRT) && ($x)){ if (($x>$RST) && ($status==1)) {sg ($LRT.'.status', '0'); $ph="Выключаю "; say ($ph.$ot_rus,0); } elseif ($x>$RST) { // say ($x." ".$RST." ".$status." ".$ot_rus); sg ($LRT.'.status', '0');} if (($x<$RST) && ($status==0)) {sg ($LRT.'.status', '1'); $ph="Включаю "; say ($ph.$ot_rus,0); } elseif ($x<$RST) { // say ($x." ".$RST." ".$status." ".$ot_rus); sg ($LRT.'.status', '1');} } }
Объекты класса:
//say ($x); // получить тек. температуру,заданную и линк на реле $x = $this->getProperty('Temperature'); if (!$x) return; // не больше и не меньше if ($x<0) {$x=0;} elseif ($x>5) {$x=5;} // расчет величины цветовой шкалы $x = round( ($x)*156 ); $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);
Свойства класса:
Методы класса:
$volume=round(65535*$params['VALUE']/100); $this->setProperty('volumeLevel',$params['VALUE']); safe_exec('..\\apps\\nircmd\\nircmdc setsysvolume '.$volume); say("Изменилась громкость до ".$params['VALUE']." процентов");
$PS = $this->getProperty('BatteryStatus'); //$PS = preg_replace("/[^,.0-9]/", '', $PS); $ps_rus = "empty"; //say ($PS."-"); $PowerStatus=array(); $PowerStatus['1']="Питание от батареи,разряжается"; $PowerStatus['2']="Питание в норме"; $PowerStatus['3']="Питание от батареи, Батарея полностью заряжена"; $PowerStatus['4']="Питание от батареи, Батарея полностью разряжена"; $PowerStatus['5']="Питание от батареи, Батарея пуста"; $PowerStatus['6']="Питание от сети, идет зарядка"; $PowerStatus['7']="Питание от сети, батарея почти полная"; $PowerStatus['8']="Питание от сети, батарея почти пустая"; $PowerStatus['9']="Питание от сети, критическая разрядка"; $PowerStatus['10']="Статус питания неизвестен"; $PowerStatus['11']="Батарея частично заряжена"; foreach($PowerStatus as $k=>$v) { if ($k==$PS) {$ps_rus =$v;} } say ($ps_rus,4); $this->setProperty('BatteryStatus_rus',$ps_rus);
sg(("ThisComputer.CPU_temp"),round(gg("ThisComputer.CPUtemp"))); sg(("ThisComputer.MEM_load"),round(gg("ThisComputer.system_mem"))); sg(("ThisComputer.CPU_load"),round(gg("ThisComputer.CPUload")));
Объекты класса:
$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); sayreply('Задача принята',2); return; } global $voicemode; $voicemode='on'; sayreply('Сейчас '.timeNow(),2); } elseif (preg_match('/сколько время/is',$command)) { if ($dt>0) { addScheduledJob("command".$dt,"processCommand('".$short_command."');",$dt); sayreply('Задача принята'); echo $short_command; return; } sayreply('Сейчас '.timeNow()); } elseif (preg_match('/повтори (.+)/is',$command,$m) || preg_match('/скажи (.+)/is',$command,$m)) { if ($dt>0) { addScheduledJob("command".$dt,"processCommand('".$short_command."');",$dt); sayreply('Задача принята',2); return; } global $voicemode; $voicemode='on'; sayreply($m[1],2); } else { sayreply('Неизвестная команда...',2); }
say("Отключено питание");
Свойства класса:
Методы класса:
//$OW_Stat = trim((getGlobal('1-Wire.Status'))); //if ($OW_Stat == 'Online)') { // setGlobal('1-Wire.alive', '1'); //} //if ($OW_Stat == 'Offline)') { // setGlobal('1-Wire.alive', '1'); //} cm ('systemStates.checkState');
Объекты класса:
Методы класса:
Объекты класса:
if ($this->getProperty('alive')==1){ SG('Temp_WC.temp',$this->getProperty('temp')); SG('Temp_WC.status','Online');} else { SG('Temp_WC.temp',''); SG('Temp_WC.status','Offline');}
if ($this->getProperty('status')==1) { SG ('Fire_oven.status',$this->getProperty('status')); $alive_timeout=(int)$this->getProperty("aliveTimeOut"); if (!$alive_timeout) {$alive_timeout=30*60;} clearTimeOut("Fire_oven_status"); setTimeOut("Fire_oven_status","sg('Fire_oven.status',0);",$alive_timeout); }
//foreach($params as $k=>$v) { //say ($k." - ".$v); //} if ($this->getProperty('alive')==1){ //say ('esp_alive'); if (gg('Temp_henhouse.alive')==1){ SG('Temp_henhouse.temp',$this->getProperty('dhtt2')); SG('Hum_Henhouse.Humidity',$this->getProperty('dhth2'));} // SG('henhouse.Lighting',$this->getProperty('gpiout0')); // SG('henhouse.Heating',$this->getProperty('gpiout2')); if (gg('Temp_bend.alive')==1){ SG('Temp_bend.temp',$this->getProperty('dhtt1')); SG('Hum_Bend.Humidity',$this->getProperty('dhth1'));} // SG('bend.Lighting',$this->getProperty('gpiout5')); // SG('bend.Heating',$this->getProperty('gpiout4')); } else { SG ('Temp_henhouse.alive',0); SG ('Temp_bend.alive',0); SG ('Hum_henhouse.alive',0); SG ('Hum_bend.alive',0); //say ('ne_ali'); }
Свойства класса:
Методы класса:
$name='Cron_'.$this->object_title; SQLExec("DELETE FROM jobs WHERE title='".$name."'");
$this->setProperty('LastRun',date('Y-m-d H:i:s'));
Свойства класса:
Методы класса:
runscript ('CountPower');
Объекты класса:
Свойства класса:
Методы класса:
//$params["USER_OBJECT"]
//$params["USER_OBJECT"]
Свойства класса:
Методы класса:
// получить температуру $x = $this->getProperty('Temperature'); // не больше и не меньше if ($x<15) {$x=15;} elseif ($x>100) {$x=100;} // расчет величины цветовой шкалы $x = round( ($x)*7,65 ); $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);
if (gg("EconomMode.active")==0) { if ((!isWeekDay() && gg("NobodyHomeMode.active")==0) || (gg("GuestsMode.active")==1)) { if (gg("Heating.HP_state")!=2) { sg('Heating.HP_state',2); //say ("Устанавливаю профиль максимум"); } } else { //if (isWeekDay()) { if (gg("Heating.HP_state")!=1) { sg('Heating.HP_state',1); //say ("Устанавливаю профиль Норма"); } } //} } else { if (gg("NobodyHomeMode.active")==1) { if (gg("Heating.HP_state")!=3) { sg('Heating.HP_state',3); //say ("Устанавливаю профиль минимум"); } } else { if (gg("Heating.HP_state")!=1) { sg('Heating.HP_state',1); //say ("Устанавливаю профиль Норма"); } } } $p = gg("Heating.HP_state"); sg('Heating.temp_Profile',gg('Heating_profile_0'.$p.'.temp_Profile'));
$gt = $this->getProperty('TempGlobal'); $this->setProperty('SET_Floor_TempGlobal', $gt); $objects=getObjectsByClass("Rooms"); foreach($objects as $obj) { // переберем все комнаты if (gg($obj['TITLE'].".HeatingStatus") == 1){ setGlobal($obj['TITLE'].".RoomSetTemp", $gt);} } // получить температуру $x = $this->getProperty('TempGlobal'); // не больше и не меньше 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);
rs ('Set_heating_status');
// получить температуру $x_pr = $this->getProperty('Temperature_pr'); $x_obr = $this->getProperty('Temperature_obr'); // не больше и не меньше if ($x_pr<0) {$x_pr=0;} elseif ($x_pr>80) {$x_pr=80;} if ($x_obr<0) {$x_obr=0;} elseif ($x_obr>80) {$x_obr=80;} // расчет величины цветовой шкалы $x_pr = round( ($x_pr)*9,5 ); $x_obr = round( ($x_obr)*9,5 ); $hcolor_pr = '#'; $hcolor_obr = '#'; // расчет r $y_pr = $x_pr-255; $y_obr = $x_obr-255; if ($y_pr < 0) {$y_pr = 0;} elseif ($y_pr > 255) {$y_pr = 255;} if ($y_obr < 0) {$y_obr = 0;} elseif ($y_obr > 255) {$y_obr = 255;} $y_pr = dechex($y_pr); $y_obr = dechex($y_obr); if (strlen($y_pr) == 1) {$y_pr = '0'.$y_pr;} if (strlen($y_obr) == 1) {$y_obr = '0'.$y_obr;} $hcolor_pr = $hcolor_pr.$y_pr; $hcolor_obr = $hcolor_obr.$y_obr; // расчет g $y_pr = 255-$x_pr; $y_obr = 255-$x_obr; if ($y_pr < 0) {$y_pr = 0;} elseif ($y_pr > 255) {$y_pr = 255;} if ($y_obr < 0) {$y_obr = 0;} elseif ($y_obr > 255) {$y_obr = 255;} $y_pr = dechex($y_pr); $y_obr = dechex($y_obr); if (strlen($y_pr) == 1) {$y_pr = '0'.$y_pr;} if (strlen($y_obr) == 1) {$y_obr = '0'.$y_obr;} $hcolor_pr = $hcolor_pr.$y_pr; $hcolor_obr = $hcolor_obr.$y_obr; // расчет b $y_pr = 765-$x_pr; $y_obr = 765-$x_obr; if ($y_pr < 0) {$y_pr = 0;} elseif ($y_pr > 255) {$y_pr = 255;} if ($y_obr < 0) {$y_obr = 0;} elseif ($y_obr > 255) {$y_obr = 255;} $y_pr = dechex($y_pr); $y_obr = dechex($y_obr); if (strlen($y_pr) == 1) {$y_pr = '0'.$y_pr;} if (strlen($y_obr) == 1) {$y_obr = '0'.$y_obr;} $hcolor_pr = $hcolor_pr.$y_pr; $hcolor_obr = $hcolor_obr.$y_obr; // установить свойство цвета температуры $this->setProperty('TempHEX_pr', $hcolor_pr); $this->setProperty('TempHEX_obr', $hcolor_obr);
$p=$params['HP_status']; say ("параметр ".$p); if ((gg("Heating.HP_state")!=$p)&&($p!="")) {sg('Heating.HP_state',$p);} sg('Heating.temp_Profile',gg('Heating_profile_0'.$p.'.temp_Profile'));
$ft = $this->getProperty('Set_Floor_TempGlobal'); $objects=getObjectsByClass("SThermostats"); foreach($objects as $obj) { // переберем все термостаты // if (gg($obj['TITLE'].".Status") == 1){ setGlobal($obj['TITLE'].".normalTargetValue", $ft);//} }
Объекты класса:
$details=array(); $red_state=0; $yellow_state=0; $status=$this->getProperty("status"); // if (!isOnline('ESP_LIGHT')) { // $red_state=1; // $details[]="Недоступен датчик пламени"; // } // else if ($status) { $yellow_state=1; say ("Горит огонь в печи "); $this->setProperty('stat',"on"); $details[]="Горит огонь в печи"; if (GG ('Heating_pump.Status')==0) {SG ('Heating_pump.Status',1);} } else { $this->setProperty('stat',"off"); if (GG ('Heating_pump.Status')==1) {SG ('Heating_pump.Status',0);} } if ($red_state) { $state='red'; $state_title=LANG_GENERAL_RED; } elseif ($yellow_state) { $state='yellow'; $state_title=LANG_GENERAL_YELLOW; } else { $state='green'; $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_CHANGED_TO." ".$state_title."."); say(implode(". ",$details)); } else { say('Статус системы печного отопления '.LANG_GENERAL_RESTORED_TO." ".$state_title); } $this->callMethod('stateChanged'); }
// получить данные $x_pr = $this->getProperty('Temperature_pr'); //say ($x_pr); $x_pr_d = $this->getProperty('direction_pr'); //say ("x_pr_d ".$x_pr_d); $x_obr = $this->getProperty('Temperature_obr'); //say ("x_obr - ".$x_obr); $x_obr_d = $this->getProperty('direction_obr'); //say ("x_obr_d ".$x_pr_d); $getstatus = GG ('Heating_pump_Relay.status'); //$stove_temp = GG ('Stove.temperature'); //say ("$stove_temp ".$stove_temp); //$stove_d = GG ('Stove.direction'); //say ("$stove_d ".$stove_d); $Stove_status = GG ('Fire_Oven.status'); if ($x_pr_d ==1 || $x_obr_d == 1) { // say ("1x_pr_d ".$x_pr_d); // say ("$stove_d ".$stove_d); if ($getstatus == 0){ if (abs($x_pr-$x_obr)>2) { Say ("Включаю насос отопления"); SG('Heating_pump_Relay.status',1); SG('Heating_pump.Status',1);} } } if ($x_pr_d == -1 || $x_obr_d == -1) { // say ("2x_pr_d ".$x_pr_d); // say ("2x_obr_d ".$x_obr_d); if ($x_pr<3 || $x_obr<3){ if ($getstatus == 0) { Say ("Включаю насос отопления2"); SG('Heating_pump_Relay.status',1); SG('Heating_pump.Status',1);}} if ($x_pr<35 && $x_obr<35 && $getstatus == 1 && $Stove_status == 0 && abs($x_pr-$x_obr)<3) {Say ("Выключаю насос отопления1");SG('Heating_pump_Relay.status',0);SG('Heating_pump.Status',0);} } //if ($x_pr<30 && $x_obr<30 && $x_pr_d == -1 && $x_obr_d == -1 && $getstatus == 1 && abs($x_pr-$x_obr)<3) {Say ("Выключаю насос отопления");SG('Heating_pump.status',0);} if ($x_pr>5 && $x_pr<35 && $x_obr>5 && $x_obr<35 && $x_pr_d == 0 && $x_obr_d == 0 && $getstatus == 1 && $Stove_status == 0 && abs($x_pr-$x_obr)<3) {Say ("Выключаю насос отопления2");SG('Heating_pump_Relay.status',0);SG('Heating_pump.Status',0);} //if ($x_pr>30 && $x_obr>30 && $getstatus == 0 && abs($x_pr-$x_obr)>3) {Say ("Включаю насос отопления"); SG('Heating_pump.status',1);} //say ("Script finish"); //SG('Heating_pump_Relay.status',1);
$details=array(); $red_state=0; $yellow_state=0; $HP=gg('Heating.HP_state'); $HTP=array(); $HTP['1']="Норма"; $HTP['2']="Максимум"; $HTP['3']="Минимум"; foreach($HTP as $k=>$v) { if ($k==$HP) {$HP_rus =$v;} } sg('Heating.HP_state_txt',$HP_rus); say ("Устанавливаю профиль ".$HP_rus); if ($this->getProperty('status')==1){ $this->setProperty('stat',"on"); // $red_state=1; // $details[]="Система электрического отопления включена"; //if (!isOnline('192.168.0.1')) { // в модуле "Устройства Online" должна быть запись с IP-адресом либо названием "192.168.0.1" // $red_state=1; // $details[]="Не доступен шлюз и беспроводная сеть"; //} } else { $yellow_state=1; $this->setProperty('stat',"off"); $details[]="Система электрического отопления отключена"; } if ($red_state) { $state='red'; $state_title=LANG_GENERAL_RED; } elseif ($yellow_state) { $state='yellow'; $state_title=LANG_GENERAL_YELLOW; } else { $state='green'; $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_CHANGED_TO." ".$state_title."."); say(implode(". ",$details)); } else { say('Статус системы электрического отопления '.LANG_GENERAL_RESTORED_TO." ".$state_title); } $this->callMethod('stateChanged'); }
$day_month=(int)date('w'); $h=(int)date('G',time()); if ($day_month == 0) { $day_month = 7; } else { $day_month = $day_month ; }$string = gg('Heating.temp_Profile'); $arr = explode(" | ", $string); if (gg('Heating.TempGlobal') != $arr[$h]) { sg('Heating.TempGlobal',$arr[$h]); sg('Heating.Set_Floor_TempGlobal',$arr[$h]); callmethod('Heating.checkState'); say ("Устанавливаю температуру отопления ".gg('heating.tempglobal')." °C"); }
Свойства класса:
Методы класса:
//$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); }
Объекты класса:
Свойства класса:
Методы класса:
//$ts=trim($this->getProperty("Status")); $ts = substr($this->getProperty("Status"), 0, 2); //say ($ts); if ($ts == 'DH') { $this->setProperty("alive",1); } if (($ts == 'Of') || ($ts == 'No')) { $this->setProperty("alive",0); $linked_room=$this->getProperty("LinkedRoom"); if ($linked_room) { setGlobal($linked_room.'.Humidity', ""); // setGlobal($linked_room.'.direction', $d); // setGlobal($linked_room.'.SetTemp', $gt); } } //'';
$this->setProperty("updated",time()); $this->setProperty("updatedTime",date("H:i",time())); $this->setProperty("alive",1); //$gt = $this->getProperty("ThisComputer.TempGlobal"); $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); $h=round($this->getProperty("Humidity"), 0); if (($t > 100) || ($t < 0)) { //Некорректные данные $this->setProperty("alive",0); return; } // Получение среднего значения из истории //Получить id свойства $prop_id=$this->getPropertyByName('Humidity', $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_h = 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)."' AND VALUE<>'85' AND VALUE<>'0'"); $avg_h=round($arr_h[AVG_V], 0); //Сравнение if ($h>$avg_h) { $d=1; } elseif ($h<$avg_h) { $d=-1; } else { $d=0; } $this->setProperty('direction',$d); $check=abs($h-$avg_h); if ($check>40) { return; } //$this->setProperty('temp',$t); // получить температуру $x = $this->getProperty('Humidity'); // не больше и не меньше if ($x<0) {$x=0;} elseif ($x>100) {$x=100;} // расчет величины цветовой шкалы $x = round( ($x)*7,65 ); $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('HumHEX', $hcolor); // Передать данные слинкованной комнате $linked_room=$this->getProperty("LinkedRoom"); if ($linked_room) { setGlobal($linked_room.'.Humidity', $h); setGlobal($linked_room.'.HumDirection', $d); setGlobal($linked_room.'.HumHex', $hcolor); // setGlobal($linked_room.'.SetTemp', $gt); }
Объекты класса:
Свойства класса:
Методы класса:
say ('start'); if ($params['status']) { $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=12*60*60; } clearTimeOut($ot."_alive"); setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout);
$SB=($this->getProperty('status_bolid')); //say ($SB); if ($SB == 119) { // say ($params['status_bolid']); //callMethod('inhouseMovementSensors.statusChanged',1); $this->setProperty('status',1); //say ($this->getProperty('status')); } else { //callMethod('inhouseMovementSensors.statusChanged',0); }
Свойства класса:
Методы класса:
//say ('sss'); //$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 ($this->getProperty('status')==1) { // 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"); if (timeBetween('22:00','07:00')) {SetTimeOut("nobodyHome","callMethod('NobodyHomeMode.activate');", 10*60*60);} elseif (timeBetween('07:01','21:59')) { 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'); // запускаем скрипт "доброе утро" } }
Объекты класса:
Свойства класса:
Методы класса:
$LS = $this->getProperty('status'); $ot=$this->object_title; //$RFT_status= gg('ESP_RF_send.alive'); //if ($RFT_status==1) { $LR = $this->getProperty('LinkedRelay'); //$status=gg($LR.'.status'); $Tsensors=array(); $Tsensors['Spotlight_0']="Прожектор на столбе"; $Tsensors['Spotlight_1']="Прожектор перед входом"; //$Tsensors['WC']="подогрев полов в туалете"; foreach($Tsensors as $k=>$v) { if ($k==$ot) {$ot_rus =$v;} } if ($LS== '0') { callMethod($LR.'.turnOff'); $this->setProperty('Status_txt','Вкл.'); $ph="Выключаю "; say ($ph.$ot_rus); } if ($LS==1) { callMethod($LR.'.turnOn'); $this->setProperty('Status_txt','Выкл.'); $ph="Включаю "; say ($ph.$ot_rus); }
$this->setProperty("status",1);
$this->setProperty("status",0);
$status=$this->getProperty("status"); if ($status) { $this->callMethod('turnOff'); } else { $this->callMethod('turnOn'); }
Объекты класса:
Свойства класса:
Методы класса:
Объекты класса:
Объекты класса:
Свойства класса:
Методы класса:
$old=$params['OLD_VALUE']; $new=$params['NEW_VALUE']; if ($old !=$new) { $this->setProperty("updated",time()); $this->setProperty("updatedTime",date('H:i')); if ($this->getProperty('active')) { say("Режим ".$this->getProperty('title')." активирован.",3); $this->callMethod('activate'); } else { say("Режим ".$this->getProperty('title')." отключен.",3); $this->callMethod('deactivate'); } callMethod('Heating.tempProfileChanged'); //callMethod('General.AnyModeChanged'); }
$this->setProperty('active',1);
$this->setProperty('active',0);
Объекты класса:
$objects=getObjectsByProperty('allOffGroup','=','1'); if (is_array($objects)) { foreach($objects as $obj) { callMethod($obj.'.turnOff'); } } //callMethod('Heating.TempProfile_manual',array("HP_status"=>3)); /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/econommode_activate.php'); /* end injection of {SDevices} */
//callMethod('Heating.TempProfile_manual',array("HP_status"=>1)); /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/econommode_deactivate.php'); /* end injection of {SDevices} */
$h=(int)date('G',time()); //$m=date('i',time()); $GS=gg('AutoLighting.Status'); //say ($h.":".$m); if (($h<21) && (GG ("DarknessMode.active")==1) && ($GS==0)) {sg ('AutoLighting.Status',1);} SG ('ThisComputer.minMsgLevel',1); //if (timeIs(getGlobal('Sun.SunSetTime')) && ($GS==0) && (gg("NobodyHomeMode.active")=="0")) {sg ('General.status',1);} //if ($GS=="1") {sg ('General.status',0);} //sg ('EconomMode.active',0); //if (isWeekDay()) { // say ($h.":".$m); // if (($h=="18") && ($m=="00") && ($GS==0)) {sg ('General.status',1);} // if (($h=="21") && ($m=="00") && ($GS==1)) {sg ('General.status',0);} // if ((($h>"21") || ($h<getGlobal('Sun.SunSetTime'))) && ($GS==1)) {sg ('General.status',0);} //} //if (!isWeekDay()) { // say ($h.":".$m); // if (($h<"22") && (GG ("DarknessMode.active")== "1") && ($GS==0)) {sg ('General.status',1);} // if (timeBetween(getGlobal('Sun.SunSetTime'),"21") && GG ("DarknessMode.active")=="1") {sg ('General.status',1);} // if (timeIs(getGlobal('Sun.SunSetTime')) && ($GS==0)) {sg ('General.status',1);} // if ((($h>"22") || ($h<getGlobal('Sun.SunSetTime'))) && ($GS==1)) {sg ('General.status',0);} //} /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/nobodyhomemode_deactivate.php'); /* end injection of {SDevices} */
//$h=(int)date('G',time()); //$m=date('i',time()); //say ($h.":".$m); SG('ThisComputer.minMsgLevel',4); //if (timeIs(getGlobal('Sun.SunSetTime')) && ($GS==0) && (gg("NobodyHomeMode.active")=="0")) {sg ('General.status',1);} //if ($GS==1) { sg('General.status',0); } //sg ('EconomMode.active',1); //if (isWeekDay()) { // say ($h.":".$m); // if (($h=="18") && ($m=="00") && ($GS==0)) {sg ('General.status',1);} // if (($h=="21") && ($m=="00") && ($GS==1)) {sg ('General.status',0);} // if ((($h>"21") || ($h<getGlobal('Sun.SunSetTime'))) && ($GS==1)) {sg ('General.status',0);} //} //if (!isWeekDay()) { // say ($h.":".$m); // if (($h<"22") && (GG ("DarknessMode.active")== "1") && ($GS==0)) {sg ('General.status',1);} // if (timeBetween(getGlobal('Sun.SunSetTime'),"21") && GG ("DarknessMode.active")=="1") {sg ('General.status',1);} // if (timeIs(getGlobal('Sun.SunSetTime')) && ($GS==0)) {sg ('General.status',1);} // if ((($h>"22") || ($h<getGlobal('Sun.SunSetTime'))) && ($GS==1)) {sg ('General.status',0);} //} /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/nobodyhomemode_activate.php'); /* end injection of {SDevices} */
//$GS=gg('General.status'); if ((gg('AutoLighting.Status')==0) && (gg("NobodyHomeMode.active")==0)) {sg ('AutoLighting.Status',1);} /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/darknessmode_activate.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/darknessmode_deactivate.php'); /* end injection of {SDevices} */
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} */ getURL("http://10.195.30.40:8080/requests/status.xml?command=volume&val=90",0);
$this->setProperty("active",0); $this->setProperty("txt","Вкл."); //getURL("http://10.195.30.40:8080/requests/status.xml?command=pl_stop",0); //say ('Выключаю радио');
$this->setProperty("active",1); $this->setProperty("txt","Выкл."); //getURL("http://10.195.30.40:8080/requests/status.xml?command=pl_play",0); //say ('Включаю радио');
Свойства класса:
Методы класса:
Объекты класса:
$this->setProperty("updated",time()); $this->setProperty("updatedTime",date("H:i",time())); $this->setProperty("alive",1); //$gt = $this->getProperty("ThisComputer.TempGlobal"); $ot=$this->object_title; $alive_timeout=(int)$this->getProperty("aliveTimeOut"); if (!$alive_timeout) { $alive_timeout=20*60; } clearTimeOut($ot."_alive"); setTimeOut($ot."_alive","sg('".$ot.".alive',0);",$alive_timeout); $t=round($this->getProperty("TempOutside"), 0); if (($t > 84) || ($t < -50)) { //Некорректные данные $this->setProperty("alive",0); return; } // Получение среднего значения из истории //Получить id свойства $prop_id=$this->getPropertyByName('TempOutside', $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_t = 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)."' AND VALUE<>'85' AND VALUE<>'0'"); $avg_t=round($arr_t[AVG_V], 0); //Сравнение if ($t>$avg_t) { $d=1; } elseif ($t<$avg_t) { $d=-1; } else { $d=0; } $this->setProperty('direction',$d); $check=abs($t-$avg_t); if ($check>40) { return; } //say ($x); // получить тек. температуру,заданную и линк на реле $x = $this->getProperty('TempOutside'); //say ($x); if (!$x) return; // не больше и не меньше 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);
Свойства класса:
Методы класса:
runscript ('CountPower');
Объекты класса:
Свойства класса:
Методы класса:
$status=$this->getProperty("status"); if ($status) { $this->callMethod('turnOn'); } else { $this->callMethod('turnOff'); }
$status=$this->getProperty("status"); if ($status) { $this->callMethod('turnOff'); } else { $this->callMethod('turnOn'); }
$this->setProperty("status",0);
$this->setProperty("status",1);
$linked_object=$this->getProperty("LinkedObject"); if ($linked_object) { setGlobal($linked_object.'.status', $this->getProperty("status")); // setGlobal($linked_room.'.direction', $d); // setGlobal($linked_room.'.SetTemp', $gt); } //$url="http://"; //$url.=gg("ESP_BEND.wanip"); //$url.="/gpio?st="; //$url.=$this->getProperty("status"); //$url.="&pin="; //$url.=$this->getProperty("pin"); //getURL ($url,0); ////say ($url); ////if ($this->getProperty("status") == 1) {say ("1Включаю ".$this->getProperty("Description"));} ////if ($this->getProperty("status") == 0) {say ("1Выключаю ".$this->getProperty("Description"));}
Свойства класса:
Методы класса:
$this->setProperty("status",0); $Hostname=$this->getProperty("hostname"); $url="http://"; $url.=gg($Hostname.".wanip"); $url.="/gpio?st=0"; //$url.=$this->getProperty("status"); $url.="&pin="; $url.=$this->getProperty("pin"); getURL ($url,0);
$this->setProperty("status",1); $Hostname=$this->getProperty("hostname"); $url="http://"; $url.=gg($Hostname.".wanip"); $url.="/gpio?st=1"; //$url.=$this->getProperty("status"); $url.="&pin="; $url.=$this->getProperty("pin"); getURL ($url,0);
Объекты класса:
Свойства класса:
Методы класса:
$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);
Свойства класса:
Методы класса:
$RS=$this->getProperty("status"); $CON=$this->getProperty("Code_on"); $COF=$this->getProperty("Code_off"); //$RFTP=gg("ThisComputer.Rf_tm_port"); $RF_IP=gg("ESP_RF_send.wanip"); //Echo "$rfpt"; if ($RS==1) { // say ($RS." ".$CON); //$cmdUrl = "http://".$RF_IP."/rcremote?pin0&cmd=".$CON."&bits=24"; $cmdUrl = "http://".$RF_IP."/RCSwitch?".$CON.",24"; getURL($cmdUrl,0); cm ('status_changed'); // say ("send".$cmdUrl); //////////exec('stty -F /dev/ttyUSB'.$RFTP.' cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts -hupcl //////////'); //////////$cmd=('echo "'.$CON.'" > /dev/ttyUSB'.$RFTP.''); //echo "$cmd"; //////////exec ($cmd); //exec('echo "5719344" > /dev/ttyUSB0'); //say("включен",0); } elseif ($RS==0) { // say ($RS." ".$COF); //$cmdUrl = "http://".$RF_IP."/rcremote?pin0&cmd=".$COF."&bits=24"; $cmdUrl = "http://".$RF_IP."/RCSwitch?".$COF.",24"; getURL($cmdUrl,0); // say ("send".$cmdUrl); //////////exec('stty -F /dev/ttyUSB'.$RFTP.' cs8 9600 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts -hupcl //////////'); //////////$cmd=('echo "'.$COF.'" > /dev/ttyUSB'.$RFTP.''); //////////exec ($cmd); //exec('echo "5719488" > /dev/ttyUSB0'); //say("выключен",0); } //say ($cmdUrl);
$linked_object=$this->getProperty("LinkedObject"); if ($linked_object) { setGlobal($linked_object.'.status', $this->getProperty("status")); }
Объекты класса:
Свойства класса:
Методы класса:
$latestActivity=$this->getProperty('LatestActivity'); $this->setProperty('LatestActivity',time()); $this->setProperty('LatestActivityTime',date('H:i')); $this->setProperty('SomebodyHere',1); $ot=$this->object_title; 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"); /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/Rooms_onActivity.php'); /* end injection of {SDevices} */
$this->setProperty('SomebodyHere',0); /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/Rooms_onIdle.php'); /* end injection of {SDevices} */
$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']; } //say ("1"); if (!function_exists('cmp')) { //say ("2"); 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']) { if (getGlobal('NobodyHomeMode.active')) {$somebodyHomeText="Никого в доме. Были в ".date('H:i',$rooms[0]['time'])." (".$rooms[0]['room'].")";} elseif (getGlobal('Time.TimeH')>22) {$somebodyHomeText="Наверное, все спят. Легли в ".date('H:i',$rooms[0]['time']);} } 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} */
// получить тек. температуру,заданную и линк на реле $xR = $this->getProperty('Temperature'); //if (!$x) return; $RST = $this->getProperty('RoomSetTemp'); $LRT = $this->getProperty('LinkedRelay_T'); $x = $this->getProperty('Floor_Temp'); $HFT = gg ('Heating.Set_Floor_Temp'); $status=gg($LRT.'.status'); $ot=$this->object_title; $heat_status=gg('Heating.status'); if ($heat_status==1){ $Tsensors=array(); $Tsensors['Livingroom']="отопление в столовой"; //$Tsensors['sauna']="датчик температуры в сауне"; $Tsensors['WC']="подогрев полов в туалете"; //$Tsensors['Temp_otopl_pr']="датчик температуры отопления прямая"; //$Tsensors['Temp_otopl_obr']="датчик температуры отопления обратка"; $Tsensors['dressing_room']="подогрев полов в предбаннике"; //$Tsensors['Temp_shower']="датчик температуры в душе"; $Tsensors['Temp_input_water']="подогрев воды на вводе"; $Tsensors['Hall_1st_floor']="подогрев полов в коридоре первого этажа"; $Tsensors['Hall_2sd_floor']="подогрев полов в коридоре второго этажа"; $Tsensors['N_bedroom']="подогрев полов в северной спальне"; $Tsensors['S_bedroom']="подогрев полов в южной спальне"; //$Tsensors['Sinoptik']="датчик температуры на улице"; //$sensors['sensorTempRemote2']="датчик температуры в спальне"; //$sensors['ws']="модуль погодной станции"; foreach($Tsensors as $k=>$v) { if ($k==$ot) {$ot_rus =$v;} } //say ($x." - ".$RST." - ".$LRT." - ".$ot." - ".$status); if (($RST) && ($LRT) && ($x) ){ if (($x>$HFT) && ($status==1)) {sg ($LRT.'.status', '0'); $ph="Выключаю "; say ($ph.$ot_rus); } // elseif ($x>$RST) { // say ($x." ".$RST." ".$RF_status." ".$ot_rus); // sg ($LRT.'.status', '0');} if (($x<$RST) && ($status==0) && ($xR<$RST)) {sg ($LRT.'.status', '1'); $ph="Включаю "; say ($ph.$ot_rus); } // elseif ($x<$RST) { // say ($x." ".$RST." ".$RF_status." ".$ot_rus); // sg ($LRT.'.status', '0');} } }
//say ($x); // получить тек. температуру,заданную и линк на реле $x = $this->getProperty('Temperature'); //say ($x); if (!$x) return; //----------------------------------------------------------------------------------------- // не больше и не меньше 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); //---------------------------------------------------------------------------------------- $x = $this->getProperty('Temperature'); $RST = $this->getProperty('RoomSetTemp'); $LRT = $this->getProperty('LinkedRelay_T'); $status=gg($LRT.'.status'); $ot=$this->object_title; $RFT_status= gg('ESP_RF_send.alive'); $heat_status=gg('Heating.status'); //say ($x." - ".$RST." - ".$LRT." - ".$ot." - ".$status); //if (($RFT_status==1) && ($heat_status==1)){ if ($heat_status==1){ $Tsensors=array(); $Tsensors['Livingroom']="отопление в столовой"; $Tsensors['Kitchen']="отопление на кухне"; //$Tsensors['sauna']="датчик температуры в сауне"; $Tsensors['WC']="подогрев полов в туалете"; //$Tsensors['Temp_otopl_pr']="датчик температуры отопления прямая"; //$Tsensors['Temp_otopl_obr']="датчик температуры отопления обратка"; $Tsensors['dressing_room']="подогрев полов в предбаннике"; //$Tsensors['Temp_shower']="датчик температуры в душе"; $Tsensors['input_water']="подогрев воды на вводе"; $Tsensors['Cold_Hall']="отопление в холодном коридоре"; $Tsensors['Hall_1st_floor']="подогрев полов в коридоре первого этажа"; $Tsensors['Hall_2sd_floor']="подогрев полов в коридоре второго этажа"; $Tsensors['N_Bedroom']="подогрев полов в северной спальне"; $Tsensors['S_Bedroom']="подогрев полов в южной спальне"; $Tsensors['bend']="Отопление в бендежке"; $Tsensors['henhouse']="Отопление в курятнике"; //$Tsensors['Sinoptik']="датчик температуры на улице"; //$sensors['sensorTempRemote2']="датчик температуры в спальне"; //$sensors['ws']="модуль погодной станции"; foreach($Tsensors as $k=>$v) { if ($k==$ot) {$ot_rus =$v;} } if (($x<>$RST) && ($RST) && ($LRT) && ($x)){ if (($x>$RST) && ($status==1)) { callMethod($LRT.'.turnOff'); //sg ($LRT.'.status', '0'); $ph="Выключаю "; //say ($ph.$ot_rus,6); } elseif ($x>$RST) { // say ($x." ".$RST." ".$status." ".$ot_rus); // sg ($LRT.'.status', '0'); callMethod($LRT.'.turnOff');} if (($x<$RST) && ($status==0)) { callMethod($LRT.'.turnOn'); //sg ($LRT.'.status', '1'); $ph="Включаю "; //say ($ph.$ot_rus,6); } elseif ($x<$RST) { // say ($x." ".$RST." ".$status." ".$ot_rus); // sg ($LRT.'.status', '1'); callMethod($LRT.'.turnOn');} } }
callmethod ('systemStates.SetTempGlobal');
Объекты класса:
// получить температуру $x = $this->getProperty('Temperature'); // не больше и не меньше if ($x<15) {$x=15;} elseif ($x>100) {$x=100;} // расчет величины цветовой шкалы $x = round( ($x)*7,65 ); $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);
Свойства класса:
Методы класса:
require(DIR_MODULES.'devices/SDevices_logicAction.php');
require(DIR_MODULES.'devices/SDevices_statusUpdated.php');
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SDevices_setUpdatedText.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
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} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SCameras_takeSeries.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
require(DIR_MODULES.'devices/SControllers_switch.php');
require(DIR_MODULES.'devices/SControllers_turnOff.php');
require(DIR_MODULES.'devices/SControllers_turnOn.php');
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SDimmers_statusUpdated.php'); /* end injection of {SDevices} */
require(DIR_MODULES.'devices/SDimmers_turnOff.php');
require(DIR_MODULES.'devices/SDimmers_turnOn.php');
require(DIR_MODULES.'devices/SDimmers_levelUpdated.php');
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SDimmers_levelWorkUpdated.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SGroups_turnOn.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SGroups_turnOff.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SGroups_switch.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SGroups_statusUpdated.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/SRGB_turnOn.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_colorUpdated.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SThermostats_valueUpdated.php'); /* end injection of {SDevices} */ $t=round($this->getProperty("value"), 0); $linked_room=$this->getProperty("LinkedRoom"); setGlobal($linked_room.'.Temperature', $t);
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SThermostats_statusUpdated.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_switchEnable.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SThermostats_enable.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SThermostats_disable.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SThermostats_turnOn.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SThermostats_turnOff.php'); /* end injection of {SDevices} */
Объекты класса:
//http://10.195.30.125/configtermo?rmin0=11&rmax0=2&gpio0=12&st=1 $url="http://"; $url.=$this->getProperty("wanip"); $url.="/configtermo?rmin0="; $url.=$this->getProperty("normalTargetValue"); $url.="&rmax0="; $url.=$this->getProperty("threshold"); $url.="&gpio0=12&ln0=41&rmin1=0&rmax1=0&gpio1=0&ln1=41&rmin2=0&rmax2=0&gpio2=0&ln2=41&st=1"; //$url1="http://10.195.30.125/configtermo?rmin0=21&rmax0=1&gpio0=12&ln0=41&rmin1=0&rmax1=0&gpio1=0&ln1=41&rmin2=0&rmax2=0&gpio2=0&ln2=41&st=1 // //"; getURL ($url,0); //say ($url);
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SCounters_valueUpdated.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SCounters_valueWorkUpdated.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SCounters_refreshStats.php'); /* end injection of {SDevices} */
Свойства класса:
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SLeak_statusUpdated.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SLeak_unblockSensor.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SLeak_blockSensor.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SLeak_alert.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
require(DIR_MODULES.'devices/SMotions_motionDetected.php');
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SMotions_unblockSensor.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SMotions_blockSensor.php'); /* end injection of {SDevices} */
Объекты класса:
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SOpenable_close.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SOpenable_open.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SOpenable_switch.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SOpenable_statusUpdated.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
require(DIR_MODULES.'devices/SOpenClose_statusUpdated.php');
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SOpenClose_blockSensor.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SOpenClose_unblockSensor.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
require(DIR_MODULES.'devices/SSensors_valueUpdated.php');
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SSensors_unblockSensor.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SSensors_alert.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SSensors_blockSensor.php'); /* end injection of {SDevices} */
Свойства класса:
Свойства класса:
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SPowerSensors_valueUpdated.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SPowerSensors_loadStatusChanged.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
$this->setProperty("updated",time()); $this->setProperty("updatedText",date("H:i",time())); $this->setProperty("alive",1); $ot=$this->object_title; $alive_timeout=(int)$this->getProperty("aliveTimeOut"); if (!$alive_timeout) { $alive_timeout=20*60; } clearTimeOut($ot."_alive"); setTimeOut($ot."_alive","sg('".$ot.".alive',2);",$alive_timeout); $t=round($this->getProperty("value"), 0); if (($t > 84) || ($t < -50)) { //Некорректные данные $this->setProperty("alive",2); return; } // Получение среднего значения из истории //Получить id свойства $prop_id=$this->getPropertyByName('value', $this->class_id, $this->id); //Получаем VALUE_ID для следующей таблицы $pvalue=SQLSelectOne("SELECT * FROM pvalues WHERE PROPERTY_ID='".$prop_id."' AND OBJECT_ID='".$this->id."'"); //Получаем средние значения температуры за последние 90 минут $start_time=time()-90*60; // 90 минут $arr_t = 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)."' AND VALUE<>'85' AND VALUE<>'0'"); $avg_t=round($arr_t[AVG_V], 0); //Сравнение if ($t>$avg_t) { $d=1; } elseif ($t<$avg_t) { $d=-1; } else { $d=0; } $this->setProperty('direction',$d); $check=abs($t-$avg_t); if ($check>40) { return; } //получить цвет rs ('TEMP_HEX',array('temp'=>$t,'name'=>$ot)); // Передать данные слинкованной комнате $linked_room=$this->getProperty("LinkedRoom"); if ($linked_room) { setGlobal($linked_room.'.Temperature', $t); setGlobal($linked_room.'.direction', $d); // setGlobal($linked_room.'.SetTemp', $gt); }
Объекты класса:
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SSmoke_statusUpdated.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SSmoke_unblockSensor.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SSmoke_blockSensor.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SSmoke_alert.php'); /* end injection of {SDevices} */
Свойства класса:
Свойства класса:
Объекты класса:
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SMediaRenderer_stop.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SMediaRenderer_seekprevious.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SMediaRenderer_seeknext.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SMediaRenderer_previous.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SMediaRenderer_next.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SMediaRenderer_pause-unpause.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SMediaRenderer_volume.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SMediaRenderer_playUrl.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SMediaRenderer_mute-unmute.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SMediaRenderer_urllist.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SMediaRenderer_playNextUrl.php'); /* end injection of {SDevices} */
Объекты класса:
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SMediaServer_getFileList.php'); /* end injection of {SDevices} */
Объекты класса:
Методы класса:
Объекты класса:
echo "status received: ".$params['status'];
global $voicemode; $voicemode='off'; processCommand($params['message']);
Свойства класса:
Методы класса:
require(DIR_MODULES.'sys_states/sys_states.inc.php');
$gt = $this->getProperty('TempGlobal'); $objects=getObjectsByClass("Rooms"); foreach($objects as $obj) { // переберем все комнаты if (gg($obj['TITLE'].".HeatingStatus") == 1){ setGlobal($obj['TITLE'].".RoomSetTemp", $gt);} } // setGlobal('Dressing_room.RoomSetTemp', $gt); // setGlobal('Hall_1st_floor.RoomSetTemp', $gt); // setGlobal('Hall_2sd_floor.RoomSetTemp', $gt); // setGlobal('S_Bedroom.RoomSetTemp', $gt); // setGlobal('N_Bedroom.RoomSetTemp', $gt); // setGlobal('WC.RoomSetTemp', $gt); // получить температуру $x = $this->getProperty('TempGlobal'); // не больше и не меньше 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);
if (isWeekDay() && (gg("NobodyHomeMode.active")=="0")) { if (gg("Heating.HP_state")!=1) { sg('Heating.temp_Profile',gg('Heating_profile_01.temp_Profile')); sg('Heating.HP_state',1); say ("Устанавливаю профиль кто-то дома"); //$string = gg('Heating_profile_01.temp_Profile'); //$arr = explode(" | ", $string); //sg('Heating.TempGlobal',$arr[$h]); //say ("Устанавливаю температуру отопления ".gg('heating.tempglobal')." °C"." WeekDay"); } } if (!isWeekDay() && (gg("NobodyHomeMode.active")=="0")) { if (gg("Heating.HP_state")!=2) { sg('Heating.temp_Profile',gg('Heating_profile_02.temp_Profile')); sg('Heating.HP_state',2); say ("Устанавливаю профиль максимум"); //$string = gg('Heating_profile_02.temp_Profile'); //$arr = explode(" | ", $string); //sg('Heating.TempGlobal',$arr[$h]); //say ("Устанавливаю температуру отопления ".gg('heating.tempglobal')." °C"." WeekEnd"); } } if (gg("NobodyHomeMode.active")=="1") { if (gg("Heating.HP_state")!=3) { sg('Heating.temp_Profile',gg('Heating_profile_03.temp_Profile')); sg('Heating.HP_state',3); say ("Устанавливаю профиль минимум"); //$string = gg('Heating_profile_02.temp_Profile'); //$arr = explode(" | ", $string); //sg('Heating.TempGlobal',$arr[$h]); //say ("Устанавливаю температуру отопления ".gg('heating.tempglobal')." °C"." WeekEnd"); } } //say (gg('heating.tempglobal')." °C"); //if (isWeekDay()) { ////$num_period_of_day = floor($h/24*gg('Heating_profile_01.number_of_Periods_in_Day')); ////$num_of_position_in_array = ($day_month - 1)*gg('Heating_profile_01.number_of_Periods_in_Day') + ($num_period_of_day + 1); //$string = gg('Heating_profile_01.temp_Profile'); //$arr = explode(" | ", $string); ////say ('targetTemp'.($arr[$num_of_position_in_array-1])); //sg('Heating.TempGlobal',$arr[$h]); //} // //else { ////$num_period_of_day = floor($h/24*gg('Heating_profile_02.number_of_Periods_in_Day')); ////$num_of_position_in_array = $h; //$string = gg('Heating_profile_02.temp_Profile'); //$arr = explode(" | ", $string); ////say ($h); ////say ('targetTemp'.($arr[$h])); //sg('Heating.TempGlobal',$arr[$h]); //}
Объекты класса:
$details=array(); $red_state=0; $yellow_state=0; if ($red_state) { $state='red'; $state_title=LANG_GENERAL_RED; } elseif ($yellow_state) { $state='yellow'; $state_title=LANG_GENERAL_YELLOW; } else { $state='green'; $state_title=LANG_GENERAL_GREEN; } //if ((gg('sensorEntry.status')==0) && (gg('sensorGarage.status')==0)) { // $yellow_state=1; // $details[]="Ворота и гараж открыты"; //} elseif (gg('sensorEntry.status')==0) { // $yellow_state=1; // $details[]="Ворота открыты."; //} //if (!isOnline("192.168.0.115")) { // $yellow_state=1; // $details[]="Камера на втором этаже недоступна"; //} //if ((gg('ThisComputer.somebodyHome')==0) && (gg('sensorEntry.status')==0) && (gg('sensorGarage.status')==0)) { // $red_state=1; // $details[]="Дома никого нет, а ворота и гараж открыты"; //} $objects=getObjectsByClass("Users"); foreach($objects as $obj) { // переберем все комнаты $res = ($obj['TITLE']." - ".(gg('Сергей.CoordinatesUpdated'))); if (gg($obj['TITLE'].".atHome") ==1){ // say ($res); sg ('ThisComputer.UsersAtHome', $res); } else {sg ('ThisComputer.UsersAtHome', "");} } $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'); }
$ows=gg("1_Wire.alive"); if ($ows!=2) { $Tsensors=array(); $Tsensors['Temp_livingroom']="датчик температуры в столовой"; $Tsensors['Temp_sauna']="датчик температуры в сауне"; //$Tsensors['Temp_WC']="датчик температуры в туалете"; $Tsensors['Temp_otopl_pr']="датчик температуры отопления прямая"; $Tsensors['Temp_otopl_obr']="датчик температуры отопления обратка"; $Tsensors['Temp_dressing_room']="датчик температуры в предбаннике"; $Tsensors['Temp_shower']="датчик температуры в душе"; $Tsensors['Temp_input_water']="датчик температуры воды на вводе"; $Tsensors['Temp_Hall_1st_level']="датчик температуры в коридоре первого этажа"; $Tsensors['Temp_Hall_2sd_floor']="датчик температуры в коридоре второго этажа"; $Tsensors['Temp_N_bedroom']="датчик температуры в северной спальне"; //$Tsensors['Temp_S_bedroom']="датчик температуры в южной спальне"; //$Tsensors['Sinoptik']="датчик температуры на улице"; //$sensors['sensorTempRemote2']="датчик температуры в спальне"; //$sensors['ws']="модуль погодной станции"; foreach($Tsensors as $k=>$v) { if (!gg($k.'.alive')) { // $yellow_state=1; $details[]="Не обновляется ".$v; } } } else { // $red_state=1; $details[]="Не доступен котроллер 1-Wire, температурный контроль отключен"; } /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/system_checkstate.php'); /* end injection of {SDevices} */
//$details=array(); //$red_state=0; //$yellow_state=0; //if (!isOnline('Internet')) { // $yellow_state=1; // $details[]=LANG_GENERAL_NO_INTERNET_ACCESS; //} //if (!isOnline('Роутер')) { // $red_state=1; // $details[]="Не доступно ядро сети"; //} //if ($red_state) { // $state='red'; // $state_title=LANG_GENERAL_RED; //} elseif ($yellow_state) { // $state='yellow'; // $state_title=LANG_GENERAL_YELLOW; //} else { // $state='green'; // $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_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'); //}
if ($this->getProperty('OperationMode')){ $LS = $this->getProperty('status'); $objects=getObjectsByClass("Lights"); foreach($objects as $obj) { // переберем все комнаты sg ($obj['TITLE'].".status",$LS) ; } }
Свойства класса:
Методы класса:
$this->setProperty("updated",time()); $this->setProperty("updatedTime",date("H:i",time())); $this->setProperty("alive",1); //$gt = $this->getProperty("ThisComputer.TempGlobal"); $ot=$this->object_title; $alive_timeout=(int)$this->getProperty("aliveTimeOut"); if (!$alive_timeout) { $alive_timeout=20*60; } clearTimeOut($ot."_alive"); setTimeOut($ot."_alive","sg('".$ot.".alive',2);",$alive_timeout); $t=round($this->getProperty("temp"), 0); if (($t > 84) || ($t < -50)) { //Некорректные данные $this->setProperty("alive",2); return; } // Получение среднего значения из истории //Получить id свойства $prop_id=$this->getPropertyByName('temp', $this->class_id, $this->id); //Получаем VALUE_ID для следующей таблицы $pvalue=SQLSelectOne("SELECT * FROM pvalues WHERE PROPERTY_ID='".$prop_id."' AND OBJECT_ID='".$this->id."'"); //Получаем средние значения температуры за последние 90 минут $start_time=time()-90*60; // 90 минут $arr_t = 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)."' AND VALUE<>'85' AND VALUE<>'0'"); $avg_t=round($arr_t[AVG_V], 0); //Сравнение if ($t>$avg_t) { $d=1; } elseif ($t<$avg_t) { $d=-1; } else { $d=0; } $this->setProperty('direction',$d); $check=abs($t-$avg_t); if ($check>40) { return; } //Получить цвет rs ('TEMP_HEX',array('temp'=>$t,'name'=>$ot)); // Передать данные слинкованной комнате $linked_room=$this->getProperty("LinkedRoom"); if ($linked_room) { setGlobal($linked_room.'.Temperature', $t); setGlobal($linked_room.'.direction', $d); // setGlobal($linked_room.'.SetTemp', $gt); }
//$ts=trim($this->getProperty("Status")); $ts = substr($this->getProperty("Status"), 0, 2); //say ($ts); if ($ts == 'DH') { $this->setProperty("alive",1); } if (($ts == 'Of') || ($ts == 'No')) { $this->setProperty("alive",0); $linked_room=$this->getProperty("LinkedRoom"); if ($linked_room) { setGlobal($linked_room.'.Temperature', ""); // setGlobal($linked_room.'.direction', $d); // setGlobal($linked_room.'.SetTemp', $gt); } } //'';
Объекты класса:
$this->setProperty("updated",time()); $this->setProperty("updatedTime",date("H:i",time())); $this->setProperty("alive",1); //$gt = $this->getProperty("ThisComputer.TempGlobal"); $ot=$this->object_title; $alive_timeout=(int)$this->getProperty("aliveTimeOut"); if (!$alive_timeout) { $alive_timeout=5*60; } clearTimeOut($ot."_alive"); setTimeOut($ot."_alive","sg('".$ot.".alive',2);",$alive_timeout); $t=round($this->getProperty("temp"), 0); if (($t > 100) || ($t < -50)) { //Некорректные данные $this->setProperty("alive",2); return; } // Получение среднего значения из истории //Получить id свойства $prop_id=$this->getPropertyByName('temp', $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_t = 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)."' AND VALUE<>'85' AND VALUE<>'0'"); $avg_t=round($arr_t[AVG_V], 0); //Сравнение if ($t>$avg_t) { $d=1; } elseif ($t<$avg_t) { $d=-1; } else { $d=0; } $this->setProperty('direction',$d); $check=abs($t-$avg_t); if ($check>40) { return; } //$this->setProperty('temp',$t); // Передать данные слинкованной комнате $linked_room=$this->getProperty("LinkedRoom"); if ($linked_room) { setGlobal($linked_room.'.Temperature_obr', $t); setGlobal($linked_room.'.direction_obr', $d); // setGlobal($linked_room.'.SetTemp', $gt); }
$this->setProperty("updated",time()); $this->setProperty("updatedTime",date("H:i",time())); $this->setProperty("alive",1); //$gt = $this->getProperty("ThisComputer.TempGlobal"); $ot=$this->object_title; $alive_timeout=(int)$this->getProperty("aliveTimeOut"); if (!$alive_timeout) { $alive_timeout=5*60; } clearTimeOut($ot."_alive"); setTimeOut($ot."_alive","sg('".$ot.".alive',2);",$alive_timeout); $t=round($this->getProperty("temp"), 0); if (($t > 100) || ($t < -50)) { //Некорректные данные $this->setProperty("alive",2); return; } // Получение среднего значения из истории //Получить id свойства $prop_id=$this->getPropertyByName('temp', $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_t = 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)."' AND VALUE<>'85' AND VALUE<>'0'"); $avg_t=round($arr_t[AVG_V], 0); //Сравнение if ($t>$avg_t) { $d=1; } elseif ($t<$avg_t) { $d=-1; } else { $d=0; } $this->setProperty('direction',$d); $check=abs($t-$avg_t); if ($check>40) { return; } //$this->setProperty('temp',$t); // Передать данные слинкованной комнате $linked_room=$this->getProperty("LinkedRoom"); if ($linked_room) { setGlobal($linked_room.'.Temperature_pr', $t); setGlobal($linked_room.'.direction_pr', $d); // setGlobal($linked_room.'.SetTemp', $gt); }
Свойства класса:
Методы класса:
//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
////будильник //$objects=getObjectsByClass("AlarmClock"); //foreach($objects as $obj) { // переберем все будильники в системе // if (getGlobal($obj['TITLE'].".AlarmOn") && timeIs(getGlobal($obj['TITLE'].".AlarmTime"))){ //если будильник включен и время совпало // callMethod($obj['TITLE'].".AlarmRun"); // выполним метод будильника // } //}
Объекты класса:
$h=(int)date('G',time()); $m=date('i',time()); setGlobal('timeNow',date('H:i')); setGlobal ('Time.TimeH',$h); setGlobal ('Time.TimeM',$m); //sg (timeH,$h); //sg (timeM,$m); //say(timeNow(),1); //callMethod('General.AnyModeChanged'); //callMethod('General.refresh'); //runscript ('Spotlight'); rs ('RF_refresh'); rs ('Set_heating_status'); $ps_old = gg ('ThisComputer.BatteryStatus'); sg("ThisComputer.BatteryLevel", explode("\r\n", `WMIC PATH Win32_Battery Get EstimatedChargeRemaining`)[1]); $ps_new = (explode("\r\n", `WMIC PATH Win32_Battery Get BatteryStatus`)[1]); $ps_new = preg_replace("/[^,.0-9]/", '', $ps_new); if ($ps_old != $ps_new) { sg("ThisComputer.BatteryStatus", $ps_new); } //sg("ThisComputer.BatteryStatus", explode("\r\n", `WMIC PATH Win32_Battery Get BatteryStatus`)[1]); if (isWeekDay()) { } if (($h>=8) && getGlobal('clockChimeEnabled')) { if ($m=="00") { say(timeNow(),1); } } $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('Sun.SunRise'),getGlobal('Sun.SunSet')) && getGlobal('isDark')=="1") { setGlobal("isDark",0); callMethod('DarknessMode.deactivate'); } elseif (!timeBetween(getGlobal('Sun.SunRise'),getGlobal('Sun.SunSet')) && getGlobal('isDark')!="1") { setGlobal("isDark",1); callMethod('DarknessMode.activate'); } if (timeIs(getGlobal('Sun.SunRise'))) { sayReply('Всходит солнце'); } if (timeIs(getGlobal('Sun.SunSet'))) { sayReply('Солнце заходит',2); } if (timeIs("23:30") && (gg("EconomMode.active")!="1") && (gg("NobodyHomeMode.active")=="1")) { sayReply("Похоже никого нет сегодня, можно сэкономить немного."); callMethod('EconomMode.activate'); } if (timeIs('22:00')) { callMethod('NightMode.activate'); } elseif (timeIs('07:00')) { callMethod('NightMode.deactivate'); } //if (timeIs("03:00")) { // runScript("systemMaintenance"); //} //if (gg('ThisComputer.AlarmStatus') && timeIs(gg('ThisComputer.AlarmTime'))) { // runScript('MorningAlarm'); //} //будильник $objects=getObjectsByClass("AlarmClock"); foreach($objects as $obj) { // переберем все будильники в системе if (getGlobal($obj['TITLE'].".AlarmOn") && timeIs(getGlobal($obj['TITLE'].".AlarmTime"))){ //если будильник включен и время совпало callMethod($obj['TITLE'].".AlarmRun"); // выполним метод будильника } }
$h=(int)date('G',time()); $m=date('i',time()); runscript ("get_period"); callmethod('Heating.tempProfileChanged'); if (($h==0 and $m=="00")) { $days=array('воскресенье','понедельник','вторник','среда','четверг','пятница','суббота'); $months=array(1=>'январь','февраль','март','апрель','май','июнь','июль','август','сентябрь','октябрь','ноябрь','декабрь'); $months2=array(1=>'января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря'); $daymonth=array(1=>'первое','второе','третье','четвертое','пятое','шестое','седьмое','восьмое','девятое','десятое','одиннадцатое','двенадцатое','тринадцатое','четырнадцатое','пятнадцатое','шестнадцатое','семнадцатое','восемнадцатое','девятнадцатое','двадцатое','двадцать первое','двадцать второе','двадцать третье','двадцать четвертое','двадцать пятое','двадцать шестое','двадцать седьмое','двадцать восьмое','двадцать девятое','тридцатое','тридцать первое'); $day_num=(int)date('w'); $month_num=(int)date('m'); $day_month=(int)date('j'); $day_of_month=$daymonth[$day_month]; $day_of_week=$days[$day_num]; // say ($day_of_week); $month_txt1=$months[$month_num]; $month_txt2=$months2[$month_num]; setGlobal('Time.MonthNum',$month_num); setGlobal('Time.MonthTXT',$month_txt1); setGlobal('Time.MonthTXTalt',$month_txt2); setGlobal('Time.DayOfMonthNum',$day_month); setGlobal('Time.DayOfMonthTXT',$day_of_month); setGlobal('Time.DayOfWeekTXT',$day_of_week); setGlobal('Time.DayOfWeekNum',$day_num);} $windDirection = array('С', 'ССВ', 'СВ', 'ВСВ', 'В', 'ВЮВ', 'ЮВ', 'ЮЮВ', 'Ю', 'ЮЮЗ', 'ЮЗ', 'ЗЮЗ', 'З', 'ЗСЗ', 'СЗ', 'ССЗ', 'С'); $degree = gg('ow_fact.wind_direction'); $direction = $windDirection[round($degree / 22.5)]; sg('ow_fact.wind_directionTXT', $direction); $degree = gg('ow_day0.wind_direction'); $direction = $windDirection[round($degree / 22.5)]; sg('ow_day0.wind_directionTXT', $direction); $degree = gg('ow_day1.wind_direction'); $direction = $windDirection[round($degree / 22.5)]; sg('ow_day1.wind_directionTXT', $direction); $degree = gg('ow_day2.wind_direction'); $direction = $windDirection[round($degree / 22.5)]; sg('ow_day2.wind_directionTXT', $direction);
Свойства класса:
Методы класса:
Методы класса:
Объекты класса:
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']); } }
Свойства класса:
Методы класса:
$Coordinates=$this->getProperty("Coordinates"); $lat=substr($Coordinates,0,strpos($Coordinates,",")); $lon=substr($Coordinates,strpos($Coordinates,",")+1); $this->setProperty("Location",Getgeocode($lon,$lat));
//$params["LOCATION_OBJECT"], $params["LOCATION"]
//$params["LOCATION_OBJECT"], $params["LOCATION"]
Объекты класса:
Свойства класса:
Объекты класса:
, Россия
© 2024 - Site Built By SergeJey | Реквизиты: Курицын С. С. ИНН 762001394609 | Контакты | Публичный договор
SmartLiving