Свойства класса:
Методы класса:
Объекты класса:
if (isWeekDay()){ // сегодня рабочий день // все проснулись setGlobal("SleepAllMode.active",0); //say('Пора вставать!',2); playSound("chasy_s_kukushkoj_3.mp3"); if (gg('Balkon.RTemp') < 2) { say('Внимание! Температура на балконе '.gg('Balkon.RTemp'),2); } // включим радио RunScript("PlayRadio_Zone".$this->GetProperty("StartAlarmZone")); // откроем шторы RunScript("OpenBlind"); // откроем жалюзи RunScript("OpenSunBlind"); // запланируем напоминание о выходе из дома и доклад погоды SetTimeOut("AlarmWeekDay_Pogoda",'RunScript("readWeatherToday");', 1200); // запланируем включить радио через 15 минут на кухне // сначала включаем в одной зоне, потом выключаем в другой, чтобы был не заметен переход SetTimeOut("AlarmWeekDay_RadioZone3",'RunScript("PlayRadio_Zone3");', 900); // запланируем выключить радио через 15 минут $name = "StandBy_Zone".$this->GetProperty("StartAlarmZone"); SetTimeOut("AlarmWeekDay_RadioStop",'RunScript("'.$name.'");', 900); // запланируем выключить радио через 35 минут // SetTimeOut("AlarmWeekDay_RadioOff",'cm("VuSolo2.SwitchOnOff");', 2100); SetTimeOut("AlarmWeekDay_RadioStopZ3",'RunScript("StandBy_Zone3");', 2100); // сделаем погромче //$vol = 35; //sg('OnkyoMain.VolumeLevel',$vol); //cm('OnkyoMain.VolumeChanged'); }
// все проснулись setGlobal("SleepAllMode.active",0); //say('Пора вставать!',2); playSound("chasy_s_kukushkoj_3.mp3"); if (gg('Balkon.RTemp') < 3) { say('Внимание! Температура на балконе '.gg('Balkon.RTemp'),2); } // откроем шторы // RunScript("OpenBlind"); // включим радио RunScript("PlayRadio_Zone".$this->GetProperty("StartAlarmZone")); // запланируем включить радио через 15 минут на кухне // сначала включаем в одной зоне, потом выключаем в другой, чтобы был не заметен переход SetTimeOut("AlarmWeekDay_RadioZone3",'RunScript("PlayRadio_Zone3");', 900); // запланируем выключить радио через 15 минут $name = "StandBy_Zone".$this->GetProperty("StartAlarmZone"); SetTimeOut("AlarmWeekDay_RadioStop",'RunScript("'.$name.'");', 900); // запланируем напоминание о событиях и доклад погоды SetTimeOut("AlarmWeekDay_Pogoda",'RunScript("readWeatherToday");', 1200); // запланируем выключить радио через 35 минут SetTimeOut("AlarmWeekDay_RadioStopZ3",'RunScript("StandBy_Zone3");', 2100); // сделаем погромче $vol = 35; sg('OnkyoMain.VolumeLevel',$vol); cm('OnkyoMain.VolumeChanged'); // выключим разовый будильник $this->SetProperty("AlarmOn",0);
if (isWeekEnd()){ // сегодня выходной день // все проснулись setGlobal("SleepAllMode.active",0); //say('Пора вставать!',2); playSound("chasy_s_kukushkoj_3.mp3"); // откроем шторы RunScript("OpenBlind"); // откроем жалюзи RunScript("OpenSunBlind"); // включим радио RunScript("PlayRadio_Zone".$this->GetProperty("StartAlarmZone")); // запланируем выключить радио через 20 минут $name = "StandBy_Zone".$this->GetProperty("StartAlarmZone"); SetTimeOut("AlarmWeekDay_RadioStop",'RunScript("'.$name.'");', 1200); // запланируем напоминание о выходе из дома и доклад погоды SetTimeOut("AlarmWeekDay_Pogoda",'RunScript("readWeatherToday");', 1500); // запланируем включить радио через 20 минут на кухне // SetTimeOut("AlarmWeekDay_RadioOff",'cm("VuSolo2.SwitchOnOff");', 1200); SetTimeOut("AlarmWeekDay_RadioZone3",'RunScript("PlayRadio_Zone3");', 1200); // запланируем выключить радио через 50 минут // SetTimeOut("AlarmWeekDay_RadioOff",'cm("VuSolo2.SwitchOnOff");', 3000); SetTimeOut("AlarmWeekDay_RadioStopZ3",'RunScript("StandBy_Zone3");', 3000); // сделаем погромче $vol = 35; sg('OnkyoMain.VolumeLevel',$vol); cm('OnkyoMain.VolumeChanged'); }
Свойства класса:
Методы класса:
$command='!1HDO'.$this->GetProperty('HDMIOUT'); $ot=$this->object_title; //получить имя объекта callMethod($ot.'.SendCommand',array('OnkyoCommand'=>$command));
$command=$params['OnkyoCommand']; //say($command); $receiveripnumber=$this->GetProperty('IP_address'); $receiverlistenport="60128"; $fp = pfsockopen($receiveripnumber, $receiverlistenport, $errno, $errstr, 30); $length=strlen($command); $length=$length+1; $total=$length+16; $code=chr($length); // total eiscp packet to send $line="ISCP\x00\x00\x00\x10\x00\x00\x00$code\x01\x00\x00\x00".$command."\x0D"; fwrite($fp, $line); fclose($fp);
$command='!1'.$this->GetProperty('PowerCommand').'0'.$this->GetProperty('Status'); $ot=$this->object_title; //получить имя объекта callMethod($ot.'.SendCommand',array('OnkyoCommand'=>$command));
$command='!1NPR0'.$this->GetProperty('RadioNum'); cm('OnkyoMain.SendCommand',array('OnkyoCommand'=>$command));
$command='!1'.$this->GetProperty('SelectorCommand').$this->GetProperty('Source'); $ot=$this->object_title; //получить имя объекта callMethod($ot.'.SendCommand',array('OnkyoCommand'=>$command));
$command='!1NTCPLAY'; $ot=$this->object_title; //получить имя объекта callMethod($ot.'.SendCommand',array('OnkyoCommand'=>$command));
$command='!1NTCSTOP'; $ot=$this->object_title; //получить имя объекта callMethod($ot.'.SendCommand',array('OnkyoCommand'=>$command));
function send_onkyo_cmd($cmd, $fp, $debug){ $length=strlen($cmd); $length=$length+1; $total =$length+16; $code =chr($length); $line ="ISCP\x00\x00\x00\x10\x00\x00\x00$code\x01\x00\x00\x00".$cmd."\x0D"; if ($debug) { DebMes("\n*** send_cmd:".$line); } fwrite($fp, $line); return $line; } function get_status($cmd, $fp, $debug){ do { send_onkyo_cmd($cmd, $fp, $debug); $status = ""; $status = fread($fp, 80); $status = substr($status, strpos($status, "!")); $status = substr($status, 0, strlen($status)-3); if ($debug) { DebMes("\n*** get_status:".$cmd." : ".$status); } } while ((substr_compare($status, "!1NLS", 0, 5) == 0)or (substr_compare($status, "!1NLT", 0, 5) == 0)or (substr_compare($status, "!!1NL", 0, 5) == 0)); return $status; } $receiveripnumber=$this->GetProperty('IP_address'); $receiverlistenport="60128"; $fp = pfsockopen($receiveripnumber, $receiverlistenport, $errno, $errstr, 30); $VolCommand=$this->GetProperty('VolumeCommand'); $command='!1'.$VolCommand.'QSTN'; $status=get_status($command,$fp,false); $status=hexdec(str_replace('!1'.$VolCommand,'',$status)); $this->SetProperty('VolumeLevel',$status); //say($status); $PwrCommand=$this->GetProperty('PowerCommand'); $command='!1'.$PwrCommand.'QSTN'; $status=get_status($command,$fp,false); //say($status); $status=str_replace('!1'.$PwrCommand,'',$status)+0; //say($status); $this->SetProperty('Status',$status); //say($status); //$command='!1SLIQSTN'; //$status=get_status($command,$fp,false); //say($status); fclose($fp);
$vol=$this->GetProperty('VolumeLevel'); if ($vol>60) {$vol=60;}//запретим превышать громкость if ($vol == 0) { $command=strtoupper('!1'.$this->GetProperty('VolumeCommand')."00"); } else { $command=strtoupper('!1'.$this->GetProperty('VolumeCommand').dechex($vol)); } $ot=$this->object_title; //получить имя объекта callMethod($ot.'.SendCommand',array('OnkyoCommand'=>$command));
Объекты класса:
Свойства класса:
Объекты класса:
Свойства класса:
Методы класса:
$this->setProperty("Alive",1); $ot=$this->object_title; $alive_timeout=(int)$this->getProperty("AliveTimeOut"); if (!$alive_timeout) { $alive_timeout=30*60; // если поле пустое, то по дефолту 30 мин } else { $alive_timeout=$alive_timeout*60; } clearTimeOut($ot."_alive"); setTimeOut($ot."_alive","sg('".$ot.".Alive',0);",$alive_timeout);
//if ($this->GetProperty("Status") == 1) { // $this->callMethod("TurnOn"); //}; //if ($this->GetProperty("Status") == 0) { // $this->callMethod("TurnOff"); //};
$this->SetProperty("State", Round($this->GetProperty("ADC")/100));
$this->SetProperty('Status',1);
$this->SetProperty('Status',0);
$command=$params['State']; $this->SetProperty('State',$command);
Объекты класса:
GetUrl("http://192.168.0.162/gpio?st=1&pin=234");
GetUrl("http://192.168.0.162/gpio?st=1&pin=230");
GetUrl("http://192.168.0.162/gpio?st=1&pin=237");
GetUrl("http://192.168.0.162/gpio?st=1&pin=233");
$this -> SetProperty("Status",0); // запланируем остановить через 40 секунд SetTimeOut("StopScreen",'sg("ProjectorScreen.Status",2);', 40);
$this -> SetProperty("Status",1); // запланируем остановить через 40 секунд SetTimeOut("StopScreen",'sg("ProjectorScreen.Status",2);', 40);
if ($this->GetProperty('status') == 0) { $this->SetProperty('BUp',1); } if ($this->GetProperty('status') == 1) { $this->SetProperty('BDown',1); } if ($this->GetProperty('status') == 2) { $this->SetProperty('BStop',1); }
if ($this->GetProperty("Status") == 0) { // $this->SetProperty("Stop",1); GetUrl("http://".$this->GetProperty("IpAddress")."/gpio?st=1&pin=12"); GetUrl("http://".$this->GetProperty("IpAddress")."/gpio?st=0&pin=12"); }; if ($this->GetProperty("Status") == 1) { // $this->SetProperty("Close",1); GetUrl("http://".$this->GetProperty("IpAddress")."/gpio?st=1&pin=13"); GetUrl("http://".$this->GetProperty("IpAddress")."/gpio?st=0&pin=13"); }; if ($this->GetProperty("Status") == 2) { // $this->SetProperty("Open",1); DebMes("Откроем шторы"); GetUrl("http://".$this->GetProperty("IpAddress")."/gpio?st=1&pin=14"); GetUrl("http://".$this->GetProperty("IpAddress")."/gpio?st=0&pin=14"); };
GetUrl("http://192.168.0.162/gpio?st=1&pin=232");
GetUrl("http://192.168.0.162/gpio?st=1&pin=231");
GetUrl("http://192.168.0.162/gpio?st=1&pin=239");
GetUrl("http://192.168.0.162/gpio?st=1&pin=241");
GetUrl("http://192.168.0.162/gpio?st=1&pin=242");
GetUrl("http://192.168.0.162/gpio?st=1&pin=240");
if ($this->GetProperty("Status") == 0) { // $this->SetProperty("Stop",1); GetUrl("http://".$this->GetProperty("IpAddress")."/gpio?st=1&pin=13"); sleep(1); GetUrl("http://".$this->GetProperty("IpAddress")."/gpio?st=0&pin=13"); }; if ($this->GetProperty("Status") == 1) { // $this->SetProperty("Close",1); GetUrl("http://".$this->GetProperty("IpAddress")."/gpio?st=1&pin=14"); sleep(1); GetUrl("http://".$this->GetProperty("IpAddress")."/gpio?st=0&pin=14"); }; if ($this->GetProperty("Status") == 2) { // $this->SetProperty("Open",1); DebMes("Откроем шторы"); GetUrl("http://".$this->GetProperty("IpAddress")."/gpio?st=1&pin=12"); sleep(1); GetUrl("http://".$this->GetProperty("IpAddress")."/gpio?st=0&pin=12"); };
Свойства класса:
Методы класса:
Объекты класса:
$ip = 'udp://'.$this->GetProperty('IP').':'.$this->GetProperty('Port'); $command=$params['file_name']; if ($command == '') { $command = "./broadlink_cmd/".$this->GetProperty('FileName'); } echo $command; //$command = "./broadlink_cmd/LG_Home"; if($socket = stream_socket_client($ip, $errno, $errormsg)){ $data = file_get_contents($command); fputs($socket, $data); fclose($socket); }
Свойства класса:
Методы класса:
//$volume=round(65535*$params['VALUE']/100); //$this->setProperty('volumeLevel',$params['VALUE']); //safe_exec('..\\apps\\nircmd\\nircmdc setsysvolume '.$volume); //say("Изменилась громкость до ".$params['VALUE']." процентов"); $t="sudo amixer cset numid=1 -- ".$this->GetProperty('volumeLevel')."%"; say("Изменилась громкость до ".$this->GetProperty('volumeLevel')." процентов"); safe_exec($t);
Объекты класса:
$connection = ssh2_connect($this->GetProperty('IP_address'), 22); ssh2_auth_password($connection, $this->GetProperty('Ssh_login'), $this->GetProperty('Ssh_pass')); //ssh2_exec($connection, 'sudo mount -t cifs -o username=admin,password='.$this->GetProperty('Ssh_pass').' //Freenas/wd2/media/music /media/music'); //ssh2_exec($connection, 'sudo mount -t nfs Freenas:mnt/wd2/media/music /media/music'); //ssh2_exec($connection, 'sudo mount -t nfs 192.168.0.10:/media/hdd /media/vuuno');
$connection = ssh2_connect($this->GetProperty('IP_address'), 22); ssh2_auth_password($connection, $this->GetProperty('Ssh_login'), $this->GetProperty('Ssh_pass')); //ssh2_exec($connection, 'sudo umount -l /media/music'); //ssh2_exec($connection, 'sudo umount -l /media/vuuno');
// прежде, сохраним данные RunScript('Manual_DB_save'); $connection = ssh2_connect($this->GetProperty('IP_address'), 22); ssh2_auth_password($connection, $this->GetProperty('Ssh_login'), $this->GetProperty('Ssh_pass')); ssh2_exec($connection, 'sudo reboot');
say("Отключено питание");
$command=$params['command']; $short_command=''; $dt=recognizeTime($command,$short_command); $polite=0; $add_word=''; if (preg_match('/пожалуйста/is',$command,$m)) { $polite=1; $add_word='С удовольствием. '; $command=str_replace($m[0],'',$command); } /* $command=preg_replace('/\s+/is',' ',$command); if ($dt>0) { addScheduledJob("command".$dt,"processCommand('".$short_command."');",$dt); say($add_word.'Задача принята',5); return; } if (preg_match('/сейчас .+лес.+/is',$command)) { if (time()-getGlobal('Alesya.CoordinatesUpdatedTimestamp')>2*60*60) { say('Извините, но место нахождения Алеси неизвестно',5); } elseif (getGlobal('Alesya.seenAt')!='') { say("Алеся находится в ".getGlobal('Alesya.seenAt'),5); } else { say("Координаты известны, но нет названия места. Обратитесь пожалуйста к карте."); } } elseif (preg_match('/сейчас .+ергей/is',$command)) { if (time()-getGlobal('Serge.CoordinatesUpdatedTimestamp')>2*60*60) { say('Извините, но место нахождения Сергея неизвестно',5); } elseif (getGlobal('Serge.seenAt')!='') { say("Сергей находится в ".getGlobal('Serge.seenAt'),5); } else { say("Координаты известны, но нет названия места. Обратитесь пожалуйста к карте."); } } elseif (preg_match('/какая температура дома/is',$command) || preg_match('/что у нас дома/is',$command)) { say($add_word.'Температура воздуха в гостиной '.getGlobal('sensorZal.temp').' градусов цельсия. В спальне '.getGlobal('sensorTempRemote2.temp').' градусов цельсия, влажность '.getGlobal('sensorHumidityRemote3.humidity').' процента',5); } elseif (preg_match('/какая температура на улице/is',$command) || preg_match('/что у нас на улице/is',$command)) { say($add_word.'Температура воздуха '.getGlobal('ws.tempOutside').' градусов цельсия. Ветер '.getGlobal('ws.windAverage').' метров в секунду.',5); } elseif (preg_match('/открой штор/is',$command)) { say('Открываю шторы в спальне',1); callMethod('BedroomCurtains.open'); } elseif (preg_match('/закрой штор/is',$command)) { say('Закрываю шторы в спальне',1); callMethod('BedroomCurtains.close'); } elseif (preg_match('/будильник на (\d+) (\d+)/is',$command,$m)) { $hour=$m[1]; $minute=$m[2]; say("Ставлю будильник на $hour $minute. Постарайтесь не проспать.",5); setGlobal('ThisComputer.AlarmStatus',1); setGlobal('ThisComputer.AlarmTime',$hour.':'.$minute); } elseif (preg_match('/ключи будильник/is',$command,$m)) { setGlobal('ThisComputer.AlarmStatus',0); say($add_word.'Выключаю будильник',5); } elseif (preg_match('/новая задача (.+)/is',$command,$m)) { say("Добавляю задачу: ".$m[1]); $task=array(); $task['ADDED']=date('Y-m-d H:i:s'); $task['TITLE']=$m[1]; $task['IS_TASK']=1; $task['IS_NODATE']=1; $task['LOG']=date('Y-m-d H:i:s').' Добавлена голосом'; SQLInsert('calendar_events',$task); } else { //say('Неизвестная команда...'); } */
$connection = ssh2_connect($this->GetProperty('IP_address'), 22); ssh2_auth_password($connection, $this->GetProperty('Ssh_login'), $this->GetProperty('Ssh_pass')); ssh2_exec($connection, 'shutdown -p now');
$mac = $this->GetProperty('MacAddress'); magicPacket($mac); function magicPacket($mac,$addr='255.255.255.255',$socket_number=7) { //split up the mac address based upon the colons in the string $addr_byte = explode(':', $mac); $hw_addr = ''; for ($a=0; $a <6; $a++) $hw_addr .=chr(hexdec($addr_byte[$a])); //convert the hex to its decimal equivalent, encode as a character, and repeat 16 times $msg = str_repeat(chr(255),6); //FF in decimal is 255, which is then encoded as a char as with our mac address for ($a = 1; $a <= 16; $a++) $msg .= $hw_addr; $s = socket_create(AF_INET, SOCK_DGRAM, SOL_UDP); //create our socket if ($s == false) { echo "Error creating socket!\n"; echo "Error code is '".socket_last_error($s)."'- " . socket_strerror(socket_last_error($s)); return false; } else { // setting a broadcast option to socket: //$opt_ret = socket_set_option($s, 1, 6, TRUE); $opt_ret = socket_set_option($s,SOL_SOCKET,SO_BROADCAST,true); if($opt_ret <0) { echo "setsockopt() failed, error: " . strerror($opt_ret) ."\n"; return false; } if(socket_sendto($s, $msg, strlen($msg), 0, $addr,$socket_number)) { socket_close($s); return true; } else { return false; } } }
$status=$this->getProperty("status"); if ($status) { cm('FreeNas.WakedUp'); } else { cm('FreeNas.Shutdown'); }
$connection = ssh2_connect($this->GetProperty('IP_address'), 22); $sshauth =ssh2_auth_password($connection, $this->GetProperty('Ssh_login'), $this->GetProperty('Ssh_pass')); if ($sshauth) { echo "Authentication Successful!\n"; } else { die('Authentication Failed...'); } $stream = ssh2_exec($connection, '/mnt/HD/HD_a2/chroot/chroot-debian.sh start'); $errorStream = ssh2_fetch_stream($stream, SSH2_STREAM_STDERR); // Enable blocking for both streams stream_set_blocking($errorStream, true); stream_set_blocking($stream, true); // Whichever of the two below commands is listed first will receive its appropriate output. The second command receives nothing echo "Output: " . stream_get_contents($stream); echo "Error: " . stream_get_contents($errorStream); // Close the streams fclose($errorStream); fclose($stream);
Свойства класса:
Методы класса:
$this->setProperty('LastRun',date('Y-m-d H:i:s'));
$name='Cron_'.$this->object_title; SQLExec("DELETE FROM jobs WHERE title='".$name."'");
Объекты класса:
include(DIR_MODULES . 'backup/backup.class.php'); $backup_module = new backup(); $backup_module->create_backup($out,0);
// отправим показания счетчика 23 числа каждого месяца в 21:00 RunScript("SendReading");
// новогодние куранты playSound("Kremlin_Chimes.mp3");
if ((gg("EconomMode.active")!="1") && (gg("NobodyHomeMode.active")=="1")) { say("Похоже никого нет сегодня, можно сэкономить немного."); callMethod('EconomMode.activate'); }
RunScript('HappyBirthday'); //Поздравляю с днем рождения
// обновим курс cm('cbr.update'); say('Обновлены курсы валют');
Свойства класса:
Методы класса:
$query = "https://api.cryptonator.com/api/full/".$this->GetProperty("Type"); $data = getURL($query); $curCourse = json_decode($data); if ($curCourse->cod == "404") { DebMes($curCourse->message); return; } if($curCourse!=false && !empty($curCourse)) { $i = 0; $this->setProperty("UpTime",date("d.m.Y H:i:s",$curCourse->timestamp)); $mkets = $curCourse->ticker; foreach($mkets->markets as $market){ if (($this->GetProperty("Type") == 'btc-usd') and ($market->market == "YoBit")) { $this->SetProperty('Price', round ($market->price,0)); $this->SetProperty('Volume', round ($market->volume,1)); } if (($this->GetProperty("Type") == 'btc-rur') and ($market->market == "Exmo")) { $this->SetProperty('Price', round ($market->price,0)); $this->SetProperty('Volume', round ($market->volume,1)); } $i++; } }
Объекты класса:
Свойства класса:
Методы класса:
Объекты класса:
//$file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=09.08.2015"); // вычисляем завтрашний день $cdate = date("d-m-Y", (time()+3600*24)); //say($cdate); $file = simplexml_load_file("http://www.cbr.ru/scripts/XML_daily.asp?date_req=".$cdate); if (!$file){ DebMes("CBR error"); return; } // USD $xml = $file->xpath("//Valute[@ID='R01235']"); $valute = strval($xml[0]->Value); $this->setProperty('USD', round(str_replace(",",".",$valute)*100)/100); // EURO $xml = $file->xpath("//Valute[@ID='R01239']"); $valute = strval($xml[0]->Value); $this->setProperty('EURO', round(str_replace(",",".",$valute)*100)/100); // GBP $xml = $file->xpath("//Valute[@ID='R01035']"); $valute = strval($xml[0]->Value); $this->setProperty('GBP', round(str_replace(",",".",$valute)*100)/100); $this->setProperty("uptime",date("d m Y H:i:s",time()));
Свойства класса:
Методы класса:
//$params["USER_OBJECT"]
//$params["USER_OBJECT"]
Свойства класса:
Методы класса:
$status=$this->GetProperty('Status'); $obj=getObject($this->object_title); //получить имя объекта if ($status) { $obj->setProperty("Status",0); } else { $obj->setProperty("Status",1); }
Объекты класса:
Свойства класса:
Методы класса:
Объекты класса:
// вкл/выкл света по команде с пульта If ($this->GetProperty("Code") == 3249185118) { sg("IRHumiditySensor.Livolo_State",106); }
// вкл/выкл света по команде с пульта If ($this->GetProperty("Code") == 884212477) { sg("Switch_Hall.BOnOff",1); } // управление экраном If ($this->GetProperty("Code") == 884228797) //вниз { cm("ProjectorScreen.TurnOn"); } If ($this->GetProperty("Code") == 884245117) // вверх { cm("ProjectorScreen.TurnOff"); } If ($this->GetProperty("Code") == 884261437) // стоп { sg("ProjectorScreen.BStop",1); }
Свойства класса:
Методы класса:
Объекты класса:
callMethod('Broadlink.Run',array('file_name'=>"./broadlink_cmd/Philips_PowerOn"));
sg("Minix.btPower",1);
Свойства класса:
Методы класса:
$python = '/home/pi/ssd1306/'; $fp = fopen($python."oled.txt", "a"); // Открываем файл в режиме записи ftruncate($fp, 0); // очищаем файл #$mytext = $this->GetProperty("Text"); //$mytext = 'Темп. дома '.gg('Livingroom.RTemp')." °C\n"; setlocale(LC_TIME, ''); $mytext = date('d.m.Y ').strftime("%a")." ".gg('timeNow')." \n\n"; $test = fputs($fp, $mytext); // Запись в файл $mytext = 'Темп. на улице '.gg('Rostov.Temp')." °C\n"; $test = fputs($fp, $mytext); // Запись в файл //$mytext = 'Влажность '.getGlobal('Rostov.Humidity').' %'."\n"; //$test = fputs($fp, $mytext); // Запись в файл $mytext = "Скорость ветра ".round(getGlobal('Rostov.WindSpeed')).' м/с'."\n"; $test = fputs($fp, $mytext); // Запись в файл $mytext = 'Яндекс-пробки '.gg('yt_info.level')." баллов\n"; $test = fputs($fp, $mytext); // Запись в файл $mytext = 'Время до работы '.getGlobal('admin.GEO_duration_in_traffic')."\n"; $test = fputs($fp, $mytext); // Запись в файл #$mytext = "Это строку\n Добро пожаловать"; // Исходная строка if ($test) echo 'Данные в файл успешно занесены.'; else echo 'Ошибка при записи в файл.'; fclose($fp); //Закрытие файла $pyscript = 'Text2Screen.py'; $python = '/home/pi/ssd1306/'; $cmd='sudo python '.$python.$pyscript; safe_exec($cmd);
$pyscript = 'Off.py'; $python = '/home/pi/ssd1306/'; $cmd='sudo python '.$python.$pyscript; safe_exec($cmd);
$pyscript = 'Off.py'; $python = '/home/pi/ssd1306/'; $cmd='sudo python '.$python.$pyscript; safe_exec($cmd);
$this->CallMethod("Show");
Объекты класса:
if ($this->GetProperty("Status") == 1) { cm("Rasp_OLED.Show"); } else { cm("Rasp_OLED.Off"); }
Объекты класса:
Свойства класса:
Методы класса:
$this->setProperty('active',1);
$this->setProperty('active',0);
$this->setProperty("updated",time()); $this->setProperty("updatedTime",date('H:i')); $this->setProperty("updatedDateTime",date("d.m.Y H:i:s")); $ptitle = $this->getProperty('title'); if ($this->getProperty('active')!=$this->getProperty('old_status')) { if ($this->getProperty('active')){ say("Режим ".$ptitle." активирован."); } else { say("Режим ".$ptitle." выключен."); } $this->SetProperty('old_status',$this->getProperty('active')); }
Объекты класса:
// режим экономии // выключим FreeNas $fstatus = gg('FreeNAS.Status'); if ($fstatus = 1) { say('Выключаем FreeNas'); cm('FreeNAS.Shutdown'); sg('FreeNAS.Status',0); } /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/econommode_activate.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/econommode_deactivate.php'); /* end injection of {SDevices} */
$DTR=strtotime(gg('LG_Hombot.LastRunTime')); $strdateR=date('d.m.Y',$DTR); $strtimeR=date('H:i',$DTR); $DTU=strtotime(gg('NobodyHomeMode.updatedDateTime')); $strdateU=date('d.m.Y',$DTU); $strtimeU=date('H:i',$DTU); $timeR = new DateTime($strtimeR); // время запуска $timeU = new DateTime($strtimeU); // время снятия с охраны // Проверяем, если было снято после запуска даты совпадают if ($timeU > $timeR && $strdateR == $strdateU) { $dCheck = true; } $dCheck = false; if ($dCheck && ($this->GetProperty('active') == 0)) { say("В ваше отсутствие производилась уборка",1); }; if (($this->GetProperty('active') == 1) && (gg('PowerMeter.Usage') > 1000)) { say("Вы не забыли отключить плиту или утюг?",1); playsound("na_sms_num18.mp3"); }; if ($this->GetProperty('active') == 1) { playsound("Myau.mp3"); say('Приоткройте ванну котику',2); // выключим ресивер, раз никого нет дома sg('OnkyoMain.Status',0); cm('OnkyoMain.turnChanged'); sg('OnkyoZone2.Status',0); cm('OnkyoZone2.turnChanged'); sg('OnkyoZone3.Status',0); cm('OnkyoZone3.turnChanged'); // выключим экран if (gg("Rasp_OLED.Status") == 1){ sg("Rasp_OLED.Status",0); } // выключим свет в коридоре //callMethod('Broadlink.Run',array('file_name'=>"./broadlink_cmd/AllOff")); //выключим свет в коридоре // if (gg('IRHumiditySensor.Livolo_State') == 72){ // sg('IRHumiditySensor.Livolo_State',106); // } } else { // включим свет в коридоре //callMethod('Broadlink.Run',array('file_name'=>"./broadlink_cmd/Button_5")); // if (gg('IRHumiditySensor.Livolo_State') == 106){ // sg('IRHumiditySensor.Livolo_State',72); // } // включим экран на 1 мин if (gg("Rasp_OLED.Status") == 0) { sg("Rasp_OLED.Status",1); SetTimeOut("Show_Oled_1min",'sg("Rasp_OLED.Status",0);',60); } }
/* 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} */
/* 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} */
Свойства класса:
Методы класса:
$this->SetProperty('TotalKWh', Round($this->GetProperty('Total')/1000,1)); $this->SetProperty('TotalKWh_CurMonth',$this->GetProperty('TotalKWh')-$this->GetProperty('TotalKWh_LastMonth')); $this->setProperty("updated",time()); $this->setProperty("updatedTime",date('H:i')); $this->setProperty("updatedDateTime",date("d.m.Y H:i:s"));
Объекты класса:
Объекты класса:
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'); }
getURL('http://192.168.0.77/gpio?st='.$this->getProperty("status").'&pin='.$this->getProperty("pin").'&flash=1', 0);
$this->setProperty("status",0);
$this->setProperty("status",1);
Объекты класса:
Свойства класса:
Методы класса:
$this->setProperty("status",1); $this->callMethod("sendCommand",array('command'=>'-on_ch'.$this->getProperty("channel")));
$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")));
$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); }
Свойства класса:
Методы класса:
$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);
$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);
Свойства класса:
Методы класса:
$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);
Объекты класса:
Свойства класса:
Методы класса:
/*округлим температуру до 1 знака после запятой*/ $t=$this->getProperty('Temperature'); if (is_numeric($t) and ($t < 70)) { $t=round($t,1); // $this->setProperty('RTemp',$t); // уменьшаем температуру на 1 градус $this->setProperty('RTemp',$t-1.5); // вычислим процент от некомфортной температуры в 45 гр.С $this->setProperty('PrcComfortTemp',round(($t-1.5)/45*100,0)); }; //посчитаем среднее значение по всем комнатам $objects=getObjectsByClass("Rooms"); $total=count($objects); if ($total>0) { $sum=0; for($i=0;$i<$total;$i++) { $sum+=(float)getGlobal($objects[$i]['TITLE'].".Temperature"); } $avg=round($sum/$total,1); SetGlobal('ThisComputer.AvgTempInside',$avg); }
$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']; } function cmp($a, $b) { if ($a['diff'] == $b['diff']) { return 0; } return ($a['diff'] < $b['diff']) ? -1 : 1; } usort($rooms,"cmp"); if (!$rooms[0]['active']) { $somebodyHomeText="Никого нет дома. Были в ".date('H:i',$rooms[0]['time'])." (".$rooms[0]['room'].")"; } else { $res_rooms=array(); for($i=0;$i<$total;$i++) { if ($rooms[$i]['active']) { $res_rooms[]=$rooms[$i]['room']; } } $somebodyHomeText="Кто-то дома: ".implode(", ",$res_rooms); } setGlobal('somebodyHomeText',$somebodyHomeText); //echo "Updated"; /* begin injection of {SDevices} */ require(DIR_MODULES.'devices/Rooms_updateActivityStatus.php'); /* end injection of {SDevices} */
$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} */
Объекты класса:
Свойства класса:
Методы класса:
$n=getGlobal('ThisNews.ListN'); $sql="SELECT * FROM `rss_items` ORDER BY rss_items.ADDED DESC LIMIT 0 , ".$n; $values=SQLSelect($sql); $total=count($values); for($i=0;$i<$total;$i++){ $sql="SELECT * FROM `rss_items` WHERE ID =".$values[$i]['ID']; $value=SQLSelectOne($sql); $outs = "<a href=\"".$value['URL']."\" target=\"_blank\" >".$value['TITLE']."</a><br>".$value['BODY']."<hr>"; echo $outs; }
$last_id=getGlobal('ThisNews.LastNewsId'); if ($last_id == 0) { say("Ошибка! Пустой параметр ластайди", 1); exit; } $values=SQLSelect("SELECT * FROM `rss_items` WHERE ID >".$last_id); if($values) { $total=count($values); say("Новости", 1); for($i=0;$i<$total;$i++){ $sql="SELECT * FROM `rss_items` WHERE ID =".$values[$i]['ID']; $value=SQLSelectOne($sql); say($value['TITLE']); }; $last_id=$value['ID']; setGlobal('ThisNews.LastNewsId',$last_id); //say('Вот и все новости на сегодня! Хорошего дня!'); } else {say("Нет свежих новостей", 1);};
Объекты класса:
Свойства класса:
Методы класса:
$queryString = 377; callMethod('VuSolo2.RemoteKey',array('SATCommand'=>$queryString));
$smessage=$params['SATCommand']; $ip=$this->GetProperty('Ip_address'); $port=$this->GetProperty('Port'); // подменяем пробелы, иначе не отправляется сообщение $smessage = str_replace(' ','%20',$smessage); $url="http://".$ip.":".$port."/web/message?text=".$smessage."&type=1&timeout=20"; debmes($url); $result=getURL($url);
$scommand=$params['SATCommand']; $ip=$this->GetProperty('Ip_address'); $port=$this->GetProperty('Port'); $url="http://".$ip.":".$port."/web/remotecontrol?command=".$scommand; debmes($url); $result=getURL($url);
$ip=$this->GetProperty('Ip_address'); $port=$this->GetProperty('Port'); getURL('http://'.$ip.':'.$port.'/web/powerstate?newstate=0', 0);
$command=$params['SATCommand']; $command =mb_strtoupper($command, 'UTF-8'); if (($command == "ФУТБОЛ 1 HD") or ($command == "ФУТБОЛ 2 HD") or ($command == "ФУТБОЛ 3 HD") or ($command == "АРЕНА HD") or ($command == "ИГРА HD") ) { $command = "МАТЧ! ".$command; } if (($command == "МАТЧ HD") or ($command == "МАТЧ ТВ HD")){ $command = "МАТЧ! HD"; } say($command); $ip=$this->GetProperty('Ip_address'); $port=$this->GetProperty('Port'); $data_file='http://'.$ip.':'.$port.'/web/getservices?sRef=1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "userbouquet.favourites.tv" ORDER BY bouquet'; $xml = simplexml_load_file($data_file); foreach ($xml->e2service as $service) { $serviceName=$service->e2servicename; $sRef=$service->e2servicereference; // $pos = strpos(mb_strtolower($serviceName, 'UTF-8'), mb_strtolower($command, 'UTF-8')); // say("pos = ".$pos); if ((mb_strtolower($serviceName, 'UTF-8')) == (mb_strtolower($command, 'UTF-8'))) // if ($pos === true) { // say("ServiceName ".$serviceName); // say("Ref ".$sRef); $url='http://'.$ip.':'.$port.'/web/zap?sRef='.$sRef; $result=getURL($url); say('Переключаю на '.$command); //say($result); break; } }
$queryString = 385; callMethod('VuSolo2.RemoteKey',array('SATCommand'=>$queryString));
Объекты класса:
Свойства класса:
Методы класса:
require(DIR_MODULES.'devices/SDevices_statusUpdated.php');
require(DIR_MODULES.'devices/SDevices_logicAction.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_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_motionDetected.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
require(DIR_MODULES.'devices/SControllers_turnOn.php');
require(DIR_MODULES.'devices/SControllers_turnOff.php');
require(DIR_MODULES.'devices/SControllers_switch.php');
Свойства класса:
Методы класса:
require(DIR_MODULES.'devices/SDimmers_levelUpdated.php');
require(DIR_MODULES.'devices/SDimmers_turnOn.php');
require(DIR_MODULES.'devices/SDimmers_turnOff.php');
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SRGB_colorUpdated.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SRGB_setColor.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SRGB_turnOn.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SRGB_turnOff.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SThermostats_valueUpdated.php'); /* end injection of {SDevices} */
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SThermostats_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/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');
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SOpenClose_statusUpdated.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
require(DIR_MODULES.'devices/SSensors_valueUpdated.php');
Свойства класса:
Методы класса:
/* begin injection of {SDevices} */ require(DIR_MODULES.'devices/SSmoke_statusUpdated.php'); /* end injection of {SDevices} */
Свойства класса:
Методы класса:
//$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); }
Свойства класса:
Объекты класса:
Методы класса:
//$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=30*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'); // запускаем скрипт "доброе утро" } }
Объекты класса:
Свойства класса:
Методы класса:
if ($this->GetProperty('State') == 1) { $this->setProperty('BOn',1); } if ($this->GetProperty('State') == 0) { $this->setProperty('BOff',1); }
Объекты класса:
Методы класса:
Объекты класса:
echo "status received: ".$params['status'];
global $voicemode; $voicemode='off'; processCommand($params['message']);
Свойства класса:
Методы класса:
Объекты класса:
$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; } $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'); }
$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."."; } } $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; } 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_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('Internet')) { $yellow_state=1; $details[]=LANG_GENERAL_NO_INTERNET_ACCESS; } 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'); }
Свойства класса:
Методы класса:
//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
Объекты класса:
$h=(int)date('G',time()); $m=date('i',time()); $this->SetProperty('timeH', $h); $this->SetProperty('timeM',$m); $today=strftime("%d"); // говорить время, если больше 8 утра и включено в настройках if (($h >= 8) && ($h < 22) && getGlobal('clockChimeEnabled')) { if ($m=="00") { say(timeNow(),1); } } setGlobal('timeNow',date('H:i')); $homeStatus=date('H:i'); if (getGlobal('NobodyHomeMode.active')) { $homeStatus.=' Дома никого'; } else { $homeStatus.=' Дома кто-то есть'; // отключим режим экономии cm('EconomMode.deactivate'); } $homeStatus.=' '.getGlobal('Security.stateDetails'); $homeStatus.=' '.getGlobal('System.stateDetails'); $homeStatus.=' '.getGlobal('Communication.stateDetails'); setGlobal('HomeStatus',$homeStatus); if (timeBetween(getGlobal('Rostov.SunRise'),getGlobal('Rostov.SunSet')) && getGlobal('ThisComputer.isDark')=="1") { setGlobal("ThisComputer.isDark",0); callMethod('DarknessMode.deactivate'); } elseif (!timeBetween(getGlobal('Rostov.SunRise'),getGlobal('Rostov.SunSet')) && getGlobal('ThisComputer.isDark')!="1") { setGlobal("ThisComputer.isDark",1); callMethod('DarknessMode.activate'); } if (timeIs(getGlobal('Rostov.SunRise'))) { say('Всходит солнце'); } if (timeIs(getGlobal('Rostov.SunSet'))) { //if (timeIs("18:30")) { // say('Солнце заходит'); say('Закрываем шторы'); RunScript('CloseBlind'); // закрываем жалюзи RunScript("CloseSunBlind"); } //обновим пробки, маршрут до работы и включим экран, через 28 мин с момента запуска будильника рабочих дней, если он был включен есс-но if (isWeekDay() && gg("AlarmWeekDay.AlarmOn") && timeIs(date('H:i',strtotime("+28 min",strtotime(gg("AlarmWeekDay.AlarmTime")))))){ CallMethod('yt_settings.update'); sg("admin.GEO_toAddress","работы"); RunScript("GetRouteToWork"); sg("Rasp_OLED.Status",1); // выключим экран через 15 минут SetTimeOut("OLED_Off",'sg("Rasp_OLED.Status",0);', 900); } if (timeIs(gg('NightMode.activateTime'))) { callMethod('NightMode.activate'); } elseif (timeIs(gg('NightMode.deactivateTime'))) { callMethod('NightMode.deactivate'); } //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"); // выполним метод будильника } } //Запуск скрипта по сбору информации малинки runScript("SysInfo"); // обновим индикаторы ресивера // не работает, ошибка при вызове функции //cm('OnkyoMain.GetStatus'); //cm('OnkyoZone2.GetStatus'); //cm('OnkyoZone3.GetStatus'); // снизим на ночь громкость if (timeIs('22:30')) { sg("ThisComputer.Volumelevel",0); } elseif (timeIs('07:00')) { sg("ThisComputer.Volumelevel",80); } if(gg("LocalBackup.enabled")=="1") { if(timeIs(gg("LocalBackup.worktime"))){ runScript('FullBackup2Net'); } } // если экран включен, то обновляем данные на нем if (gg("Rasp_OLED.status") == 1) { cm("Rasp_OLED.Show"); } // запуск пылесоса if(timeIs(gg("LG_Hombot.TimeShedule")) && gg("LG_Hombot.RunShedule")=="1"){ if(gg("LG_Hombot.OnlyNoBodyHome")=="1" && gg("NobodyHomeMode.active")=="1") { cm("LG_Hombot.Run"); } if(gg("LG_Hombot.OnlyNoBodyHome") =="0"){ cm("LG_Hombot.Run"); } }
//runScript('Погода от Яндекс'); //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 if ($this->GetProperty('DateD')!=date("d", time())) { $day[0]="воскресенье"; $day[1]="понедельник"; $day[2]="вторник"; $day[3]="среда"; $day[4]="четверг"; $day[5]="пятница"; $day[6]="суббота"; $month[1]="января"; $monthAlt[1]="ЯНВАРЬ"; $month[2]="февраля"; $monthAlt[2]="ФЕВРАЛЬ"; $month[3]="марта"; $monthAlt[3]="МАРТ"; $month[4]="апреля"; $monthAlt[4]="АПРЕЛЬ"; $month[5]="мая"; $monthAlt[5]="МАЙ"; $month[6]="июня"; $monthAlt[6]="ИЮНЬ"; $month[7]="июля"; $monthAlt[7]="ИЮЛЬ"; $month[8]="августа"; $monthAlt[8]="АВГУСТ"; $month[9]="сентября"; $monthAlt[9]="СЕНТЯБРЬ"; $month[10]="октября"; $monthAlt[10]="ОКТЯБРЬ"; $month[11]="ноября"; $monthAlt[11]="НОЯБРЬ"; $month[12]="декабря"; $monthAlt[12]="ДЕКАБРЬ"; $this->SetProperty("DateD",date( "d", time())); $this->SetProperty("DateM",date( "m", time())); $this->SetProperty("DateY",date( "Y", time())); $this->SetProperty("Date",date( "d.m.Y", time())); $this->SetProperty("Day",$day[date("w")]); $this->SetProperty("Month",$month[date("n")]); $this->SetProperty("MonthAlt",$monthAlt[date("n")]); } // обновим курс криптовалюты //cm("Crypto_BTC_RUR.Update"); //cm("Crypto_BTC_USD.Update");
Методы класса:
Объекты класса:
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']); } }
Свойства класса:
Методы класса:
$name=$this->getProperty('fullname'); if (!$this->getProperty('atHome')) { $this->setProperty('atHome',1); say($name.' уже здесь',2); } if ($this->object_title!='Slava' && $this->object_title!='Helen') { setTimeout($this->object_title.'athometimer','sg("'.$this->object_title.'.atHome",0);',8*60*60); if ($name) { say('К нам подъехал '.$name,2); setTimeout($this->object_title.'greetingTimer','say("'.$name.', добрый день!",1);',5*60); } } $this->setProperty('isGoingHome',0);
$this->setProperty('atHome',0);
//$params["LOCATION_OBJECT"], $params["LOCATION"]
$Coordinates=$this->getProperty("Coordinates"); $lat=substr($Coordinates,0,strpos($Coordinates,",")); $lon=substr($Coordinates,strpos($Coordinates,",")+1); $this->setProperty("Location",Getgeocode($lon,$lat));
// отправим сообщение на почту $to = $this->GetProperty('EMail'); $from = gg('ThisComputer.EMail'); $subject = "Алиса пишет"; $message = $this->GetProperty('MailMessage'); $headers = "Content-type: text/plain; charset=utf-8 \r\n"; $headers .= "From: Что желаете <$from>\r\n"; mail($to, $subject, $message, $headers);
//$params["LOCATION_OBJECT"], $params["LOCATION"]
$this->setProperty('isGoingHome',1); setTimeOut('goingHomeTimer'.$this->id,"setGlobal('".$this->object_title.".isGoingHome',0);",2*60*60);
Объекты класса:
Свойства класса:
Методы класса:
$this->setProperty("LastRunTime",date("d.m.Y H:i:s")); if ($this->GetProperty("RunCount") < 4){ $this->setProperty("RunCount",$this->GetProperty("RunCount") + 1); } else { $this->setProperty("RunCount",0); // Сообщим через 6 часов SetTimeOut("Say_Clear_LG",'say("Почистите контейнер пылесоса",1);', 21600); } say("Начинаю уборку");
Объекты класса:
Свойства класса:
Методы класса:
$this->setProperty("updated",time()); $this->setProperty("updatedTime",date('H:i')); $this->setProperty("updatedDateTime",date("d.m.Y H:i:s")); $this->setProperty("Alive",1); $ot=$this->object_title; $alive_timeout=(int)$this->getProperty("AliveTimeOut"); if (!$alive_timeout) { $alive_timeout=30*60; // если поле пустое, то по дефолту 30 мин } else { $alive_timeout=$alive_timeout*60; } clearTimeOut($ot."_alive"); setTimeOut($ot."_alive","sg('".$ot.".Alive',0);",$alive_timeout);
Объекты класса:
Свойства класса:
Методы класса:
Объекты класса:
$wstatus_old = $this->GetProperty('OldStatusB'); $wstatus = $this->GetProperty('StatusB'); if (($wstatus == 1) and ($wstatus_old == 0)) { $this->SetProperty('OldStatusB',1); RunScript('AlarmWater'); }
if ($this->GetProperty('StatusB')==0) { $this->SetProperty('OldStatusB',0); $this->SetProperty('StatusB',0); }
Свойства класса:
Методы класса:
$this->setProperty("updatedDateTime",date("d.m.Y H:i")); $this->setProperty("Alive",1); $ot=$this->object_title; $alive_timeout=(int)$this->getProperty("AliveTimeOut"); if (!$alive_timeout) { $alive_timeout=30*60; // если поле пустое, то по дефолту 30 мин } else { $alive_timeout=$alive_timeout*60; } clearTimeOut($ot."_alive"); setTimeOut($ot."_alive","sg('".$ot.".Alive',0);",$alive_timeout);
Объекты класса:
Свойства класса:
Объекты класса:
Методы класса:
include_once(DIR_MODULES."app_yatraffic/app_yatraffic.class.php"); $app_yatraffic=new app_yatraffic(); $app_yatraffic->get_traffic(gg("yt_settings.reg_id"));
$updateTime = gg("yt_settings.updateTime"); if($updateTime > 0){ $count = gg("yt_settings.countTime"); if($count >= $updateTime){ include_once(DIR_MODULES."app_yatraffic/app_yatraffic.class.php"); $app_yatraffic=new app_yatraffic(); $app_yatraffic->get_traffic(gg("yt_settings.reg_id")); sg("yt_settings.countTime",1); } else { $count++; sg("yt_settings.countTime",$count); } }
Объекты класса:
, Россия
© 2024 - Site Built By SergeJey | Реквизиты: Курицын С. С. ИНН 762001394609 | Контакты | Публичный договор
SmartLiving