Class properties:
Class methods:
Class objects:
$command=$params['command']; $short_command=''; $dt=recognizeTime($command,$short_command); if (preg_match('/скажи сколько время/is',$command)) { if ($dt>0) { addScheduledJob("command".$dt,"processCommand('".$short_command."');",$dt); say('Задача принята'); return; } global $voicemode; $voicemode='on'; say('Сейчас '.timeNow()); } elseif (preg_match('/сколько время/is',$command)) { if ($dt>0) { addScheduledJob("command".$dt,"processCommand('".$short_command."');",$dt); say('Задача принята'); echo $short_command; return; } say('Сейчас '.timeNow()); } elseif (preg_match('/повтори (.+)/is',$command,$m) || preg_match('/скажи (.+)/is',$command,$m)) { if ($dt>0) { addScheduledJob("command".$dt,"processCommand('".$short_command."');",$dt); say('Задача принята'); return; } global $voicemode; $voicemode='on'; say($m[1]); } else { say('Неизвестная команда...'); }
say("Отключено питание");
Class properties:
Class methods:
$this->setProperty('updated',time()); $this->setProperty('updatedTime',date("H:i d-m-Y",time())); $this->setProperty('updatedTime2',date("H:i",time()));
Class objects:
$this->setProperty('updatedTime',time()); $this->setProperty('updatedTime2',date("H:i",time())); if ($params['VALUE']) { say('Входная дверь закрыта'); $this->setProperty('statusText','Закрыто'); } else { say('Входная дверь открыта',1); $this->setProperty('statusText','Открыто'); } if ($params['STATUS_CHANGED']) { if ($params['STATUS']) { say("Датчик Door доступен"); } else { say("Датчик Door недоступен"); } }
if ($params['VALUE']) { $this->setProperty("status","1"); //say('Освещение включено'); $this->setProperty('statusText','Включено'); } else { $this->setProperty("status","0"); //say('Освещение выключено'); $this->setProperty('statusText','Выключено'); } if ($params['STATUS_CHANGED']) { if ($params['STATUS']) { say("Ключ Rele_1 доступен"); } else { say("Ключ Rele_1 недоступен"); } }
Class properties:
Class methods:
$params['output'] = $this->getProperty('outputPort'); $params['value'] = 0; DebMes('Light.switchOff method: '.print_r($params, true)); callMethod($this->getProperty('outputDevice').'.setOutput', $params); $this->callMethod('getOutputPortState');
$this->callMethod('toggleSwitch');
// Read current state of output $params['output'] = $this->getProperty('outputPort'); $params['propertyName'] = $this->object_title.'.enabled'; DebMes('Light.getOutputPortState method: '.print_r($params, true)); callMethod($this->getProperty('outputDevice').'.getOutput', $params);
$params['output'] = $this->getProperty('outputPort'); $params['value'] = 1; DebMes('Light.switchOn method: '.print_r($params, true)); callMethod($this->getProperty('outputDevice').'.setOutput', $params); $this->callMethod('getOutputPortState');
$this->callMethod('getOutputPortState'); if ($this->getProperty('enabled') == 1) $this->callMethod('switchOff'); else $this->callMethod('switchOn');
Class objects:
Class properties:
Class methods:
$this->setProperty('updated',time()); $this->setProperty('updatedTime',date("H:i d-m-Y",time())); $this->setProperty('updatedTime2',date("H:i",time()));
Class objects:
Class properties:
Class methods:
// Expects 'output' and 'value' in $params DebMes('Megadevice.getOutput method: '.print_r($params, true)); $cmdUrl = sprintf ("http://%s/%s/?pt=%d&cmd=get", $this->getProperty('IpAddress'), $this->getProperty('Password'), $params['output']); $state = trim(file_get_contents($cmdUrl)); DebMes(sprintf('Megadevice.getOutput method: %s returned %s', $cmdUrl, $state)); if ($state == 'ON') setGlobal($params['propertyName'], 1); else setGlobal($params['propertyName'], 0);
// Expects 'output' and 'value' in $params $cmdUrl = sprintf("http://%s/%s/?cmd=%d:%d", $this->getProperty('IpAddress'), $this->getProperty('Password'),$params['output'], $params['value']); DebMes('Megadevice.setOutput '.$cmdUrl); getURL($cmdUrl,0);
// Try to resolve MegaD object by IP $ip = $_SERVER['REMOTE_ADDR']; $objects=getObjectsByClass("Megadevice"); foreach($objects as $obj) { if (getGlobal($obj['TITLE'].".ipAddress") == $ip) $megaD = $obj; } if(!$megaD) { DebMes('Cannot find Megadevice with ip = '.$ip); exit; } // Try to find Light objects (by device and input port) $inputDevice = $megaD['TITLE']; $inputPort = $params['pt']; $objects=getObjectsByClass("Light"); foreach($objects as $obj) { if (getGlobal($obj['TITLE'].".inputDevice") == $inputDevice && getGlobal($obj['TITLE'].".inputPort") == $inputPort) $light = $obj; } if(!$light) { DebMes(sprintf('Cannot find Light with inputDevice = %s and inputPort = %d', $inputDevice, $inputPort)); exit; } callMethod($light['TITLE'].'.switchPressed');
Class objects:
if ($params['pt']==7) { say("Что-то включилось"); } else { say("Что-то выключилось"); }
Class properties:
Class methods:
$this->setProperty('status',$params['status']); $this->setProperty('updatedTimestamp',time()); $this->setProperty('updatedTime',date("H:i d-m-Y",time())); $this->setProperty('updatedTime2',date("H:i",time()));
Class objects:
$this->setProperty('status',$params['status']); $this->setProperty('updatedTimestamp',time());
Class properties:
Class methods:
Class objects:
$this->setProperty('updated',time()); $this->setProperty('updatedTime',date("H:i d-m-Y",time())); $this->setProperty('updatedTime2',date("H:i",time()));
Class methods:
Class objects:
echo "status received: ".$params['status'];
global $voicemode; $voicemode='off'; processCommand($params['message']);
Class properties:
Class methods:
Class objects:
$details=array(); $red_state=0; $yellow_state=0; if ((gg('Door.status')==0)) { $red_state=1; //$details[]="Входная дверь открыта"; } if ($red_state) { $state='red'; $state_title='Открыта'; } else { $state='green'; $state_title='Закрыта'; } $this->setProperty('stateDetails',implode(". ",$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 (getGlobal('temp_4.temp')<40) { $red_state=1; //$details[]="Температура на датчике 1 ниже 20 градусов"; } if ($red_state) { $state='red'; $state_title='Отключена'; } elseif ($yellow_state) { $state='yellow'; $state_title='Жёлтый'; } else { $state='green'; $state_title='Включена'; } $this->setProperty('stateDetails',implode(". ",$details)); if ($this->getProperty('stateColor')!=$state) { $this->setProperty('stateColor',$state); $this->setProperty('stateTitle',$state_title); if ($state!='green') { say("Горячая вода отключена",1); //say("Уровень безопасности изменился на ".$state_title."."); //say(implode(". ",$details)); } else { say("Горячая вода включена",1); //say("Уровень безопасности восстановился на ".$state_title); } $this->callMethod('stateChanged'); }
$details=array(); $red_state=0; $yellow_state=0; if (!isOnline('Google')) { // в модуле "Устройства Online" должна быть запись с названием "Google" $yellow_state=1; //$details[]="Нет доступа в интернет"; } if (!isOnline('Synology')) { // в модуле "Устройства Online" должна быть запись с IP-адресом либо названием "Synology" $red_state=1; //$details[]="Не доступен шлюз и беспроводная сеть"; } if ($red_state) { $state='red'; $state_title='Сеть недоступна'; } elseif ($yellow_state) { $state='yellow'; $state_title='Доступна только локальная сеть'; } else { $state='green'; $state_title='Интернет доступен'; } $this->setProperty('stateDetails',implode(". ",$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 ((gg('sensorMovement1.status')==0)) { $red_state=1; //$details[]="Входная дверь открыта"; } if ($red_state) { $state='green'; $state_title='Движение отсутствует'; } else { $state='red'; $state_title='Обнаружено движение'; } $this->setProperty('stateDetails',implode(". ",$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'); }
Class properties:
Class methods:
if (is_numeric($params['t']) and ($params['t'] <> 85)) { $t=round($params['t']*2)/2; $this->setProperty('temp',$t); $this->setProperty('updated',time()); $this->setProperty('updatedTime',date("H:i d-m-Y",time())); $this->setProperty('updatedTime2',date("H:i",time())); } if ($t>$old_temp) { $d=1; } elseif ($t<$old_temp) { $d=-1; } else { $d=0; } $old_temp=$this->getProperty('temp'); $this->setProperty('direction',$d);
Class objects:
if ($params['STATUS_CHANGED']) { if ($params['STATUS']) { say("Термометр temp_1 доступен"); } else { say("Термометр temp_1 недоступен"); } }
if ($params['STATUS_CHANGED']) { if ($params['STATUS']) { say("Термометр temp_2 доступен"); } else { say("Термометр temp_2 недоступен"); } }
if ($params['STATUS_CHANGED']) { if ($params['STATUS']) { say("Термометр temp_3 доступен"); } else { say("Термометр temp_3 недоступен"); } }
if ($params['STATUS_CHANGED']) { if ($params['STATUS']) { say("Термометр temp_4 доступен"); } else { say("Термометр temp_4 недоступен"); } }
if ($params['STATUS_CHANGED']) { if ($params['STATUS']) { say("Термометр temp_1 доступен"); } else { say("Термометр temp_1 недоступен"); } }
Class properties:
Class methods:
Class objects:
$h=(int)date('G',time()); $m=date('i',time()); if (isWeekDay()) { } if (timeIs('17:25')) { say('Все системы работают нормально',1); //say(timeNow()); } if (timeIs('15:00')) { say('Все системы работают нормально',1); //say(timeNow()); } if (timeIs(getGlobal('Moscow.SunRise'))) { say('Уже всходит солнце!',1); } if (timeIs(getGlobal('Moscow.SunSet'))) { say('Солнце уже садится!',1); } if (($h>=0)) { if ($m=="00") { say(timeNow()); } } if (isWeekDay()) { if (timeIs('23:30')) { runScript('Aqua_Off'); //say("Подсветка аквариума выключена"); } } if (isWeekEnd()) { if (timeIs('19:47')) { runScript('Aqua_Off'); //say("Подсветка аквариума выключена"); } }
runScript("Weather_Yandex"); if (isWeekDay()) { if (timeIs('08:00')) { runScript('Aqua_On'); //say("Подсветка аквариума включена"); } } if (isWeekEnd()) { if (timeIs('11:00')) { runScript('Aqua_On'); //say("Подсветка аквариума включена"); } }
Class methods:
Class objects:
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']); } }
Class properties:
Class methods:
Class objects:
$this->setProperty('updated',time()); $this->setProperty('updatedTime',date("H:i d-m-Y",time())); $this->setProperty('updatedTime2',date("H:i",time()));
Class properties:
Class objects:
, Россия
© 2024 - Site Built By SergeJey | Реквизиты: Курицын С. С. ИНН 762001394609 | Контакты | Public agreement
SmartLiving