Свойства класса:
Методы класса:
if (gg("AlarmWeekDay.AlarmOn")) { setGlobal("AlarmMenu.AlarmMenuRun",Вкл); setGlobal("AlarmMenu.AlarmMenuLed",10); }elseif(gg("AlarmWeekEnd.AlarmOn")) { setGlobal("AlarmMenu.AlarmMenuRun",Вкл); setGlobal("AlarmMenu.AlarmMenuLed",10); }elseif(gg("AlarmOne.AlarmOn")) { setGlobal("AlarmMenu.AlarmMenuRun",Вкл); setGlobal("AlarmMenu.AlarmMenuLed",10); }else { setGlobal("AlarmMenu.AlarmMenuRun",Выкл); setGlobal("AlarmMenu.AlarmMenuLed",5); } if (gg("AlarmWeekDay.AlarmOn")) { setGlobal("AlarmMenu.AlarmMenu1Run",Вкл); }else { setGlobal("AlarmMenu.AlarmMenu1Run",Выкл); } if (gg("AlarmWeekEnd.AlarmOn")) { setGlobal("AlarmMenu.AlarmMenu2Run",Вкл); }else { setGlobal("AlarmMenu.AlarmMenu2Run",Выкл); } if (gg("AlarmOne.AlarmOn")) { setGlobal("AlarmMenu.AlarmMenu3Run",Вкл); }else { setGlobal("AlarmMenu.AlarmMenu3Run",Выкл); }
Объекты класса:
$stR=(gg("AlarmWeekDay.AlarmRing")); $urlU=gg("AlarmWeekEnd.URLR.URLR"); switch ($stR){ case 'Мелодия': $urlR=$urlU.'/requests/status.xml?command=in_play&input=file:///C:/_majordomo/htdocs/templates_alt/AlarmRing/alarm2.mp3'; break; case 'Сигнал': $urlR=$urlU.'/requests/status.xml?command=in_play&input=file:///C:/_majordomo/htdocs/templates_alt/AlarmRing/alarm7.mp3'; break; case 'Радио': $urlR=$urlU.'/requests/status.xml?command=in_play&input=http://212.56.209.70:8000/maestro'; break; } if (gg("AlarmWeekDay.ControlRing")) { getURL($urlR,0); }else { callMethod("AlarmWeekDay.AlarmRingStop"); } setGlobal('AlarmWeekDay.UrlAlarmRing',$urlR);
if (gg("AlarmWeekDay.ControlRing")) { }else { callMethod("AlarmWeekDay.AlarmRingStop"); sg("AlarmWeekDay.ControlRing",0); }
getURL(gg('AlarmWeekDay.UrlAlarmRing'),0);
getURL(gg("AlarmWeekEnd.URLR").'/requests/status.xml?command=pl_stop',0);
$vol=gg("AlarmWeekDay.AlarmVolume"); $url=gg("AlarmWeekDay.URLR"); getURL($url.'/requests/status.xml?command=volume&val='.$vol,0);
if (isWeekDay()){ // сегодня рабочий день say("Сегодня рабочий день!",5); // включим радио cm('RadioSetting.Control','play'); // Установим громкость радио в 50% cm('RadioSetting.Control','vol50'); // запланируем выключить радио AddScheduledJob("AlarmWeekDay_RadioStop",'cm("RadioSetting.Control",stop);', recognizeTime("в 9:20")); // запланируем напоминание о выходе из дома и доклад погоды //AddScheduledJob("AlarmWeekDay_timeNow",'callMethod("сколько время.action");', recognizeTime("в 9:30")); AddScheduledJob("AlarmWeekDay_Pogoda", 'runScript('sayWeatherYandex');', recognizeTime("в 9:31")); // AddScheduledJob("AlarmWeekDay_timeNow",'callMethod("сколько время.action");', recognizeTime("в 9:35")); // AddScheduledJob("AlarmWeekDay_timeNow",'callMethod("сколько время.action");', recognizeTime("в 9:40")); // все проснулись setGlobal("SleepAllMode.active",0); }
getURL(gg("AlarmWeekEnd.URLR").'/requests/status.xml?command=pl_stop',0);
getURL(gg('AlarmOne.UrlAlarmRing'),0);
$stR=(gg("AlarmOne.AlarmRing")); $urlU=gg("AlarmWeekEnd.URLR"); switch ($stR){ case 'Мелодия': $urlR=$urlU.'/requests/status.xml?command=in_play&input=file:///C:/_majordomo/htdocs/templates_alt/AlarmRing/alarm2.mp3'; break; case 'Сигнал': $urlR=$urlU.'/requests/status.xml?command=in_play&input=file:///C:/_majordomo/htdocs/templates_alt/AlarmRing/alarm7.mp3'; break; case 'Радио': $urlR=$urlU.'/requests/status.xml?command=in_play&input=http://radio.zaycev.fm:9002/ZaycevFM(256)'; break; } if (gg("AlarmOne.ControlRing")) { getURL($urlR,0); }else { callMethod("AlarmOne.AlarmRingStop"); } setGlobal('AlarmOne.UrlAlarmRing',$urlR);
$vol=gg("AlarmOne.AlarmVolume"); $url=gg("AlarmOne.URLR"); getURL($url.'/requests/status.xml?command=volume&val='.$vol,0);
if (gg("AlarmOne.ControlRing")) { }else { callMethod("AlarmOne.AlarmRingStop"); sg("AlarmOne.ControlRing",0); }
// это однократный будильник, выключем его sg("AlarmOne.AlarmOn",0); setGlobal("AlarmMenu.AlarmMenu3Run",Выкл); setGlobal("AlarmMenu.AlarmMenuRun",Выкл); setGlobal("AlarmMenu.AlarmMenuLed",5); // все проснулись setGlobal("SleepAllMode.active",0); say("Пора вставать!",5); // включим радио cm('RadioSetting.Control','play'); // Установим громкость радио в 50% cm('RadioSetting.Control','vol50'); // запланируем выключить радио через 1час SetTimeOut("AlarmOne_RadioStop",'cm("RadioSetting.Control",stop);', 3600);
getURL(gg("AlarmWeekEnd.URLR").'/requests/status.xml?command=pl_stop',0);
if (gg("AlarmWeekEnd.ControlRing")) { }else { callMethod("AlarmWeekEnd.AlarmRingStop"); sg("AlarmWeekEnd.ControlRing",0); }
getURL(gg('AlarmWeekEnd.UrlAlarmRing'),0);
$stR=(gg("AlarmWeekEnd.AlarmRing")); $urlU=gg("AlarmWeekEnd.URLR"); switch ($stR){ case 'Мелодия': $urlR=$urlU.'/requests/status.xml?command=in_play&input=file:///C:/_majordomo/htdocs/templates_alt/AlarmRing/alarm2.mp3'; break; case 'Сигнал': $urlR=$urlU.'/requests/status.xml?command=in_play&input=file:///C:/_majordomo/htdocs/templates_alt/AlarmRing/alarm7.mp3'; break; case 'Радио': $urlR=$urlU.'/requests/status.xml?command=in_play&input=http://212.56.209.70:8000/maestro'; break; } if (gg("AlarmWeekEnd.ControlRing")) { getURL($urlR,0); }else { callMethod("AlarmWeekEnd.AlarmRingStop"); } setGlobal('AlarmWeekEnd.UrlAlarmRing',$urlR);
if (isWeekEnd()){ // сегодня выходной день say("Сегодня выходной день!",5); // включим радио cm('RadioSetting.Control','play'); // Установим громкость радио в 50% cm('RadioSetting.Control','vo75'); // запланируем выключить радио !!!Здесь скорее всего будет другой вариант! SetTimeOut("AlarmOne_RadioStop",'cm("RadioSetting.Control",stop);', 3600); // запланируем напоминание о выходе из дома и доклад погоды // SetTimeOut("AlarmWeekDay_timeNow",'callMethod("сколько время.action");', 60); SetTimeOut("AlarmWeekDay_Pogoda", 'runScript('sayWeatherYandex');', 60*15); // SetTimeOut("AlarmWeekDay_timeNow",'callMethod("сколько время.action");', 120); // SetTimeOut("AlarmWeekDay_timeNow",'callMethod("сколько время.action");', 60*30); // все проснулись setGlobal("SleepAllMode.active",0); // запланируем выключить радио через 5минут (60*5)=300 // SetTimeOut("AlarmWeekEnd_AlarmRingStop",'callMethod("AlarmWeekEnd.AlarmRingStop");', 180); }
$vol=gg("AlarmWeekEnd.AlarmVolume"); $url=gg("AlarmWeekEnd.URLR"); getURL($url.'/requests/status.xml?command=volume&val='.$vol,0);
Методы класса:
Объекты класса:
// device lost
// new device $tm=registeredEventTime('btcall'); if ((time()-$tm)>60 || $tm<0) { registerEvent('btcall'); } if ($params['new']) { say('Обнаружено новое блютуз устройство',-1); } if ($params['user']!='') { say('Блютуз сканер обнаружил, что '.$params['user'].' уже дома',2); }
Свойства класса:
Методы класса:
$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); 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('Задача принята',2); echo $short_command; return; } sayReply('Сейчас '.timeNow(),2); } 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); }
sayReply("Отключено питание",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); }
Объекты класса:
Свойства класса:
Методы класса:
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);
Свойства класса:
Методы класса:
$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'); // запускаем скрипт "доброе утро" } }
Объекты класса:
Методы класса:
$player=getGlobal('LMSStatus.playerselect'); $id=getGlobal($player.'.IP'); SetGlobal('LMSStatus.PlayerIDselect', $id);
Объекты класса:
Свойства класса:
Объекты класса:
Свойства класса:
Методы класса:
$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')." активирован."); } else { say("Режим ".$this->getProperty('title')." выключен."); }
Объекты класса:
setGlobal('minMsgLevel','4'); /* 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} */
/* 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} */
Методы класса:
Объекты класса:
include_once(DIR_MODULES.'app_radio/app_radio.class.php'); $app_radio=new app_radio(); if(is_array($params)) { if(isset($params['sta'])) $app_radio->change_station($params['sta'],$app_radio); if(isset($params['cmd'])) $app_radio->control($params['cmd']); if(isset($params['vol'])) $app_radio->set_volume($params['vol'],$app_radio); } else { if($params=='play' || $params=='stop') $app_radio->control($params); else if(strpos($params, "vol")===0) $app_radio->set_volume((int)substr($params,3),$app_radio); else if(strpos($params, "sta:")===0) $app_radio->change_station(substr($params,4),$app_radio); }
Свойства класса:
Методы класса:
$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);
Объекты класса:
Объекты класса:
Свойства класса:
Методы класса:
$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";
$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);
Объекты класса:
Свойства класса:
Методы класса:
require(DIR_MODULES.'devices/SDevices_statusUpdated.php');
require(DIR_MODULES.'devices/SDevices_logicAction.php');
Методы класса:
require(DIR_MODULES.'devices/SButtons_pressed.php');
Свойства класса:
Методы класса:
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_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/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/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 (getGlobal('serverCPUTemp.Value')>40) { // $red_state=1; // $details[]="Критическая температура процессора"; //} elseif ((getGlobal('serverCPUTemp.Value')>37) && (getGlobal('serverCPUTemp.Value')<39)) { // $yellow_state=1; // $details[]="Превышена температура процессора"; //}; //if (gg('Radio.RadioIsPlay')==0) { // $red_state=1; // $details[]="Дома никого нет, а ворота и гараж открыты"; //} //if (getGlobal('TempCore1')>73) { // $red_state=1; // $details[]="Критическая температура процессора"; //} elseif ((getGlobal('TempCore1')>65) && (getGlobal('TempCore1')<73)) { // $yellow_state=1; // $details[]="Превышена температура процессора"; //}; //Проверяем температуру винчестера //if (getGlobal('serverHddTemp.value')>45) { // $red_state=1; //$details[]="Критическая температура винчестера"; //} elseif ((getGlobal('serverHddTemp.value')>42) && (getGlobal('serverHddTemp.value')<44)) { // $yellow_state=1; // $details[]="Превышена температура винчестера"; //}; // Проверяем наличие свободного места на винчестере //$bytes = disk_free_space("."); //$si_prefix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' ); //$base = 1024; //$class = min((int)log($bytes , $base) , count($si_prefix) - 1); //$temp = round($bytes / pow($base,$class)) . ' ' . $si_prefix[$class]; //$tempfree = substr($temp, 0, strpos($temp, ' ')); //$loadfree = round($tempfree, 1); //setGlobal('ServerFree.value', $loadfree); //if (getGlobal('ServerFree.value')<1) { // $red_state=1; //details[]="Критически недостаточно свободного места на системном диске"; //} elseif ((getGlobal('ServerFree.value')>2) && (getGlobal('ServerFree.value')<5)) { // $yellow_state=1; // $details[]="Заканчивается свободное место на системном диске"; //}; if ($red_state) { $state='red'; $state_title=LANG_GENERAL_RED; setGlobal('Server.IndicatorColor', "<img src=\"/templates_alt/icon/server_32_red.png\" align=\"absmiddle\">"); } elseif ($yellow_state) { $state='yellow'; $state_title=LANG_GENERAL_YELLOW; setGlobal('Server.IndicatorColor', "<img src=\"/templates_alt/icon/server_32_yellow.png\" align=\"absmiddle\">"); } else { $state='green'; $state_title=LANG_GENERAL_GREEN; setGlobal('Server.IndicatorColor', "<img src=\"/templates_alt/icon/server_32_green.png\" align=\"absmiddle\">"); } $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("Уровень стабильности сервера изменился на ".$state_title."."); say(implode(". ",$details)); } else { //say(LANG_GENERAL_COMMUNICATION_STATE." ".LANG_GENERAL_RESTORED_TO." ".$state_title); say("Уровень стабильности сервера восстановился на ".$state_title); } $this->callMethod('stateChanged'); }
$red_state=0; $yellow_state=0; // sensorPower.status if (getGlobal('UPS.powerfail')) { $red_state=1; $details[]="Нет электричества в сети"; } if ($red_state) { $state='red'; $state_title='Красный'; setGlobal('Power.IndicatorColor', "<img src=\"/templates_alt/icon/Power_32_red.png\" align=\"absmiddle\">"); } elseif ($yellow_state) { $state='yellow'; $state_title='Жёлтый'; setGlobal('Power.IndicatorColor', "<img src=\"/templates_alt/icon/Power_32_yellow.png\" align=\"absmiddle\">"); } else { $state='green'; $state_title='Зелёный'; setGlobal('Power.IndicatorColor', "<img src=\"/templates_alt/icon/Power_32_green.png\" align=\"absmiddle\">"); } $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("Пропало питание на ".$state_title."."); say(implode(". ",$details)); } else { say("Появилось питание на ".$state_title); } $this->callMethod('stateChanged'); }
$details=array(); $red_state=0; $yellow_state=0; if (!isOnline('Internet')) { $yellow_state=1; $details[]=LANG_GENERAL_NO_INTERNET_ACCESS; } if ($red_state) { $state='red'; $state_title=LANG_GENERAL_RED; setGlobal('Communication.IndicatorColor', "<img src=\"/templates_alt/icon/network_32_red.png\" align=\"absmiddle\">"); } elseif ($yellow_state) { $state='yellow'; $state_title=LANG_GENERAL_YELLOW; setGlobal('Communication.IndicatorColor', "<img src=\"/templates_alt/icon/network_32_yellow.png\" align=\"absmiddle\">"); } else { $state='green'; $state_title=LANG_GENERAL_GREEN; setGlobal('Communication.IndicatorColor', "<img src=\"/templates_alt/icon/network_32_green.png\" align=\"absmiddle\">"); } $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."."; } } /* $tm=getGlobal('Artem.CoordinatesUpdatedTimestamp'); if (time()-$tm>(2*60*60)) { $yellow_state=1; $details[]="Неизвестно местоположение Артёма"; } $tm=getGlobal('Olga.CoordinatesUpdatedTimestamp'); if (time()-$tm>(2*60*60)) { $yellow_state=1; $details[]="Неизвестно местоположение Ольги"; } if (!getGlobal('sensorPower.status')) { $red_state=1; $details[]="Нет электричества в сети"; } if (isOnline('Контроллер Arduino 2')!==1) { $red_state=1; $details[]="Недоступен исполнительный контроллер"; } if (isOnline('Контроллер Arduino Relay')!==1) { $red_state=1; $details[]="Недоступен контроллер реле"; } if (isOnline('Контроллер Arduino_RF_RCV')!==1) { $yellow_state=1; $details[]="Недоступен RF-приёмник"; } if (!isOnline('Контроллер Arduino 1')) { $red_state=1; $details[]="Недоступен контроллер датчиков"; } $sensors=array(); $sensors['sensorHumidityRemote3']="датчик влажности в спальне"; $sensors['sensorMovement1']="датчик движения в коридоре"; $sensors['sensorMovement2']="датчик движения в зале"; $sensors['sensorMovement3']="датчик движения в спальне"; $sensors['sensorMovement4']="датчик движения в ванной"; $sensors['sensorMovementRemote1']="датчик движения в гараже"; $sensors['sensorKotel']="датчик температуры на котле"; $sensors['sensorZal']="датчик температуры в зале"; $sensors['sensorTempRemote1']="датчик температуры в гараже"; $sensors['sensorTempRemote2']="датчик температуры в спальне"; $sensors['sensorTempRemote4']="датчик температуры на втором этаже"; $sensors['ws']="модуль погодной станции"; */ $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; setGlobal('system.IndicatorColor', "<img src=\"/templates_alt/icon/system_32_red.png\" align=\"absmiddle\">"); } elseif ($yellow_state) { $state='yellow'; $state_title=LANG_GENERAL_YELLOW; setGlobal('system.IndicatorColor', "<img src=\"/templates_alt/icon/system_32_yellow.png\" align=\"absmiddle\">"); } else { $state='green'; $state_title=LANG_GENERAL_GREEN; setGlobal('system.IndicatorColor', "<img src=\"/templates_alt/icon/system_32_green.png\" align=\"absmiddle\">"); } $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 (!isOnline("Camera")) { $yellow_state=1; $details[]="Камера недоступна"; } 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 (!isOnline("192.168.0.11")) { $yellow_state=1; $details[]="Камера в гостиной недоступна"; } if (gg('Radio.RadioIsPlay')==0) { $red_state=1; $details[]="Дома никого нет, а ворота и гараж открыты"; } */ if ($red_state) { $state='red'; $state_title=LANG_GENERAL_RED; setGlobal('Security.IndicatorColor', "<img src=\"/templates_alt/icon/lock_32_red.png\" align=\"absmiddle\">"); } elseif ($yellow_state) { $state='yellow'; $state_title=LANG_GENERAL_YELLOW; setGlobal('Security.IndicatorColor', "<img src=\"/templates_alt/icon/lock_32_yellow.png\" align=\"absmiddle\">"); } else { $state='green'; $state_title=LANG_GENERAL_GREEN; setGlobal('Security.IndicatorColor', "<img src=\"/templates_alt/icon/lock_32_green.png\" align=\"absmiddle\">"); } $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'); }
Свойства класса:
Методы класса:
//$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['t'])) { return; } $old_temp=$this->getProperty('temp'); $t=round($params['t'],1); if ($t>110) return; $this->setProperty('temp',$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.'.Temperature',$t); }
Объекты класса:
Свойства класса:
Методы класса:
runscript("WeatherFromYandex");
Объекты класса:
$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('Всходит солнце',1); } if (timeIs(getGlobal('SunSetTime'))) { say('Солнце заходит',1); } if (timeIs("23:30") && (gg("EconomMode.active")!="1") && (gg("NobodyHomeMode.active")=="1")) { say("Похоже никого нет сегодня, можно сэкономить немного.",1); callMethod('EconomMode.activate'); } if (timeIs('20:00')) { callMethod('NightMode.activate'); } elseif (timeIs('08: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"); // выполним метод будильника } } //Опрос UPS runScript('UPSOpros');
Свойства класса:
Объекты класса:
$byte_strin = gg('UPS.status'); // Получаем байт статуса от ИБП //echo $byte_strin; //отладка $bit_status = substr($byte_strin, 0, 1); // Выдергиваем 7бит(справа налево)отвечающий за наличие питания sg('UPS.powerfail',$bit_status); //записываем в свойство UPS.powerfail состояние бита. //echo $bit_status; //отладка
Методы класса:
Объекты класса:
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']); } }
Свойства класса:
Объекты класса:
© 2025 - Site Built By SergeJey | Реквизиты: Курицын С. С. ИНН 762001394609 | Контакты | Публичный договор
SmartLiving