Сценарии
...
filesClearOld
|
Проверить старые файлы
keepLatestLimitedBySize('/var/www/media/webcam',500*1024*1024); //500Mb
keepLatestLimitedBySize('/var/www/media/webcam_sorted',500*1024*1024); //500Mb
keepLatestLimitedBySize('/var/www/backup',500*1024*1024); //500Mb
keepLatestLimitedBySize('/var/www/cached',50*1024*1024); //50Mb
|
maintenance
|
Автоматическое обслуживание системы
require(ROOT.'scripts/startup_maintenance.php');
|
playFavoriteMusic
|
// вытягиваем историю из переменной
$alreadyPlayed=gg("AlreadyPlayedMusic");
if (!$alreadyPlayed) {
$alreadyPlayed='0';
}
// выбираем случайную папку
$rec=SQLSelectOne("SELECT * FROM media_favorites WHERE ID NOT IN (".$alreadyPlayed.") ORDER BY RAND()");
if (!$rec['ID']) {
// папок больше не осталось, поэтому выбираем случайную и сбрасываем истоирю
$rec=SQLSelectOne("SELECT * FROM media_favorites ORDER BY RAND()");
$alreadyPlayed='0';
}
if ($rec['ID']) {
// добавляем выбранную папку в историю
$alreadyPlayed.=','.$rec['ID'];
sg("AlreadyPlayedMusic",$alreadyPlayed);
// запускаем на проигрывание
$collection=SQLSelectOne("SELECT * FROM collections WHERE ID=".(int)$rec['COLLECTION_ID']);
$path=$collection['PATH'].$rec['PATH'];
playMedia($path);
//setTimeOut('VLCPlayer_update',"callMethod('VLCPlayer.update');",10);
}
|
playPause
|
getURL('http://localhost/popup/app_player.html?ajax=1&command=pause',0);
|
reportStatus
|
$res='';
if (gg('Security.stateColor')=='green' && gg('System.stateColor')=='green' && gg('Communication.stateColor')=='green') {
$res='Все системы работают в штатном режиме';
} else {
if (gg('Security.stateColor')!='green') {
$res.=" Проблема безопасности: ".getGlobal('Security.stateDetails');
}
if (gg('System.stateColor')!='green') {
$res.=" Системная проблема: ".getGlobal('System.stateDetails');
}
if (gg('Communication.stateColor')!='green') {
$res.=" Проблема связи: ".getGlobal('Communication.stateDetails');
}
}
say($res,5);
|
rssProcess
|
/*
$params['URL'] --link
$params['TITLE'] -- title
$params['BODY'] -- body
$params['CHANNEL_ID'] -- channel ID
$params['CHANNEL_TITLE'] -- channed title
*/
//say($params['TITLE']); // reading news
|
tellIPAddress
|
произнести текущий IP-адрес
$url="https://api.2ip.ua/provider.json?ip=";
//Работаем со строкой JSON
$data = json_decode(file_get_contents($url), true);
$ip=$data["ip"]; // что искали
echo "IP адрес ".$ip;
say("Ай-пи адрес ".$ip,2);
//runScript('updateCPUId');
//$res=exec('hostname -I');
//$ipv6_regex='/(\w{4})/is';
//$res = trim(preg_replace($ipv6_regex,'',$res));
//$ipv6_regex='/:(\w+)/is';
//$res = trim(preg_replace($ipv6_regex,'',$res));
//$res = trim(str_replace(':','',$res));
//say("Ай-пи адрес ".$res,2);
|
timeNow
|
|
updateCPUId
|
$data=trim(exec("cat /proc/cpuinfo | grep Serial | cut -d ':' -f 2"));
$data=ltrim($data,'0');
echo $data;
if ($data) {
setGlobal("ThisComputer.Serial",$data);
}
|
Интернет
|
Про интернет к которому я подключена.
say ('Про интернет к которому я подключена.');
$url="https://api.2ip.ua/provider.json?ip=";
//Работаем со строкой JSON
$data = json_decode(file_get_contents($url), true);
$ip=$data["ip"]; // что искали
$name_ripe=$data["name_ripe"];
$name_rus=$data["name_rus"];
$site=$data["site"];
echo $ip;
$msgtxt = "IP адрес ".$ip;
say ("Провайдер ".$name_rus,5);
say ("Сайт провайдера ".$site,5);
say($msgtxt,9);
rs(SendSticker_v, array('stickerbody' => $msgtxt));
$url2="https://api.2ip.ua/geo.json?ip=".$ip;
echo $url2;
//Работаем со строкой JSON
$data = json_decode(file_get_contents($url2), true);
$country_rus=$data["country_rus"]; // что искали
$region_rus=$data["region_rus"];
$city_rus=$data["city_rus"];
say ("Мое местонахождение по мнению других:",5);
say ($country_rus,5);
//say ($region_rus,5);
say ($city_rus,5);
|
Тест возврата IP
|
$url=$params['url'];
$ip=$params['ip'];
if ($ip == "") {
$ip=$_SERVER['REMOTE_ADDR'];
}
echo $ip;
|
<#LANG_GENERAL_OPERATIONAL_MODES#>
rebootSystem
|
Перезапуск системы
$filename = ROOT . '/database_backup/db.sql';
$mysqlDumpPath = "/usr/bin/mysqldump";
$mysqlDumpParam = " --user=" . DB_USER . " --password=" . DB_PASSWORD;
$mysqlDumpParam .= " --no-create-db --add-drop-table --databases " . DB_NAME;
if (file_exists($filename)) rename($filename, $filename . '.prev');
exec($mysqlDumpPath . $mysqlDumpParam . " > " . $filename);
say("Подготовка к перезагрузке",2);
setTimeout("shutdownTimer","safe_exec('shutdown -r now');",15);
|
shutDown
|
Выключение системы
$filename = ROOT . '/database_backup/db.sql';
$mysqlDumpPath = "/usr/bin/mysqldump";
$mysqlDumpParam = " --user=" . DB_USER . " --password=" . DB_PASSWORD;
$mysqlDumpParam .= " --no-create-db --add-drop-table --databases " . DB_NAME;
if (file_exists($filename)) rename($filename, $filename . '.prev');
exec($mysqlDumpPath . $mysqlDumpParam . " > " . $filename);
say("Подготовка к выключению",2);
setTimeout("shutdownTimer","safe_exec('shutdown -h now');",15);
|
Безопасность
camImagesProcess
|
Сортировка изображений с веб-камеры
$src='/var/www/media/webcam'; // откуда брать фотографии
clearTimeout('camImagesTimer');
$base_path='/var/www/dvr/unsorted';
$dst='/var/www/dvr/sorted';
safe_exec('chown pi:pi -Rf '.$base_path.'/*');
safe_exec('chmod 0777 -f '.$base_path.'/*');
setTimeout('camImagesTimer','runScript("camImagesProcess");',10*60);
if (is_dir($base_path)) {
if ($dir = @opendir($base_path)) {
while (($file = readdir($dir)) !== false) {
if ($file!='.' && $file!='..' && is_dir($base_path.'/'.$file)) {
$src=$base_path.'/'.$file;
echo $src.'<br/>';
processLine($src." -> ".$dst."/%Y/%m - %F/%d/".$file);
}
}
closedir($dir);
}
} else {
echo "Cannot open $base_path";
}
processLine("CLEAR ".$dst." 30 DAYS OLD");
|
checkFreeSpace
|
Проверка свободного места на диске
$max_usage=90; //%
$output=array();
exec('df',$output);
//var_dump($output);
$problems=0;
$problems_details='';
foreach($output as $line) {
if (preg_match('/(\d+)% (\/.+)/',$line,$m))
$proc=$m[1];
$path=$m[2];
if ($proc>$max_usage) {
$problems++;
$problems_details.="$path: $proc; ";
}
//echo "$path: $proc%<br/>";
}
sg("ThisComputer.SpaceProblems",$problems);
sg("ThisComputer.SpaceProblems_Details",$problems_details);
setTimeOut('checkFreeSpace','runScript("checkFreeSpace");',5*60);
|
manageConnectService
|
Включение/выключение сервиса синхронизации через облако
include_once(DIR_MODULES.'connect/connect.class.php');
$cn=new connect();
$cn->getConfig();
if ($params['start']) {
$cn->config['CONNECT_SYNC']='1';
$cn->saveConfig();
}
if ($params['stop']) {
$cn->config['CONNECT_SYNC']='0';
$cn->saveConfig();
}
echo $cn->config['CONNECT_SYNC'];
|
manageWebCamMotion
|
Включение/выключение детектора движений на камере
if ($params['start']) {
DebMes("Starting web-cam motion detection");
getURL('http://localhost:8080/0/detection/start',0);
}
if ($params['stop']) {
DebMes("Stopping web-cam motion detection");
getURL('http://localhost:8080/0/detection/pause',0);
}
|
manageWebCamService
|
Включение/выключение вебкамеры
if ($params['start']) {
safe_exec('cp /etc/motion/motion_enabled /etc/default/motion');
safe_exec('service motion start');
}
if ($params['stop']) {
safe_exec('cp /etc/motion/motion_disabled /etc/default/motion');
safe_exec('service motion stop');
}
|
Даты
Ручной перезапуск дат
|
// Дата и время
$h=(int)date('G',time());
// раскидываем дату и время если сейчас 00:00 час
if (($h!="00")) {
$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]="ДЕКАБРЬ";
sg("ThisComputer.DateD",date( "d", time()));
sg("ThisComputer.DateM",date( "m", time()));
sg("ThisComputer.DateY",date( "Y", time()));
sg("ThisComputer.Date",date( "d.m.Y", time()));
sg("ThisComputer.Day",$day[date("w")]);
sg("ThisComputer.Month",$month[date("n")]);
sg("ThisComputer.MonthAlt",$monthAlt[date("n")]);
}
$paths=array('/var/log/*.1','/var/log/*.2',
'/var/log/*.1.*',
'/var/log/*.2.*',
'/var/log/*.3.*',
'/var/log/*.4.*',
'/var/log/*.5.*',
'/var/log/*.6.*',
'/var/log/*.7.*'
);
foreach($paths as $p) {
safe_exec('rm '.$p);
}
runScript('Hourly');
runScript('filesClearOld');
runScript('Сезон');
|
Сезон
|
$Mes;
$Sez;
$Mes = getGlobal('ThisComputer'.'.'.'DateM');
if ($Mes == 12 || $Mes == 1 || $Mes == 2) {
$Sez = 1;
} else if ($Mes == 3 || $Mes == 4 || $Mes == 5) {
$Sez = 2;
} else if ($Mes == 6 || $Mes == 7 || $Mes == 8) {
$Sez = 3;
} else if ($Mes == 9 || $Mes == 10 || $Mes == 11) {
$Sez = 4;
}
setGlobal('ThisComputer'.'.'.'Sezon', $Sez);
|
Погода
weatherReceived
|
Получить температуру снаружи
setGlobal('ThisComputer.tempOutside',getGlobal('TempSad.value'));
|
Картинка
|
if (isset($params["level"])) $level = $params["level"]; else $level = 1;
if (!isOnline('Internet')) { say("Нет доступа в Интернет!", $level); return; }
if (isset($params["change"])) $change = $params["change"];
$page_url = "https://sinoptik.ua/%D0%BF%D0%BE%D0%B3%D0%BE%D0%B4%D0%B0-%D0%BF%D0%BE%D0%BA%D1%80%D0%BE%D0%B2%D1%81%D0%BA-303012327";
//----делаем до 13 запроса
for ($i = 0; $i <= 13; $i++) {
if (!$page_cont) $page_cont = file_get_contents($page_url);
}
if ($page_cont) {
//---- Картинка погоды ----
$sample1 = "/.rc=\"(.*?)\" src.et=/"; //Шаблон
preg_match_all($sample1, $page_cont, $nebo); //Поиск
$nebo1 = $nebo[1][0];
$nebo2 = str_replace("\"","V",$nebo1); // меняем символ
$nebo2 = str_replace("V", "", $nebo2); // меняем символ
var_dump($nebo); //дамп информации о переменной.
$nebourl = "https://sinoptik.ua" . $nebo2;
echo "<br>" . $nebo[0][0];
echo "<br>" . "--------";
echo "<br>" . $nebourl ;
echo "<br>" . "____WWWWWW_____ ";
}
//---- Запись значений ----
sg( "pog_fact.img", $nebourl); //URL картинки
|
Луна
|
Фаза луны
if (isset($params["level"])) $level = $params["level"]; else $level = 1;
if (!isOnline('Internet')) { say("Нет доступа в Интернет!", $level); return; }
if (isset($params["change"])) $change = $params["change"];
$page_url = "https://weather.com/ru-EE/weather/tenday/l/8d0e8176a90be5e941d5336b1c4345151e521459234aed9f2ba098128cc5ee57";
//----делаем до 13 запросоа
for ($i = 0; $i <= 13; $i++) {
if (!$page_cont) $page_cont = file_get_contents($page_url);
}
if ($page_cont) {
//$page_cont = str_replace("\r", "", $page_cont);
//$page_cont = str_replace("\n", "", $page_cont);
//---- Фаза луны.
$res_f = "/<span data-testid=\"moonPhase\" class=\"DetailsTable--moonPhrase--AB7uO\">(.*?)<\/span>/"; //Шаблон
preg_match_all($res_f, $page_cont, $lun_f); //Поиск
//var_dump($lun); //дамп информации о переменной.
$luna_f = strip_tags($lun_f[0][0]); //Убираем тэги
echo "<br>" . " ------------------------ ";
echo "<br>" . $luna_f;
echo "<br>" . " ------------------------- ";
//---- Восход луны.
$res_v = "/<span data-testid=\"MoonriseTime\" class=\"DetailsTable--value--pWEVz\">(.*?)<\/span>/"; //Шаблон
preg_match_all($res_v, $page_cont, $lun_v); //Поиск
//var_dump($lun); //дамп информации о переменной.
$luna_v = strip_tags($lun_v[0][0]); //Убираем тэги
echo "<br>" . " ------------------------ ";
echo "<br>" . $luna_v;
echo "<br>" . " ------------------------- ";
//---- Заход луны.
$res_z = "/<span data-testid=\"MoonsetTime\" class=\"DetailsTable--value--pWEVz\">(.*?)<\/span>/"; //Шаблон
preg_match_all($res_z, $page_cont, $lun_z); //Поиск
//var_dump($lun); //дамп информации о переменной.
$luna_z = strip_tags($lun_z[0][0]); //Убираем тэги
echo "<br>" . " ------------------------ ";
echo "<br>" . $luna_z;
echo "<br>" . " ------------------------- ";
}
sg( "pog_fact.luna_faza", $luna_f ); //Фаза луны
sg( "pog_fact.luna_vosxod", $luna_v ); //Восход луны
sg( "pog_fact.luna_zaxod", $luna_z ); //Заход луны
|
Погода сейчас
|
Погода сейчас (говорить)
say ('Температура в кабинете '.gg('TempKuxnya.value').' градусов цельсия. На улице '.gg('TempSad.value').' градусов, '.gg('pog_fact.pogoda').', ветер, '.gg('pog_fact.veter_napr').' , '.gg('pog_fact.veter_skorost').' километров в час, влажность '.gg('HumSad.value').' процентов.'.gg('pog_fact.pgd_razvernuto'),2);
|
Прогноз на завтра
|
if (isset($params["level"])) $level = $params["level"]; else $level = 1;
if (!isOnline('Internet')) { say("Нет доступа в Интернет!", $level); return; }
if (isset($params["change"])) $change = $params["change"];
$page_url = "https://weather.com/ru-EE/weather/tenday/l/8d0e8176a90be5e941d5336b1c4345151e521459234aed9f2ba098128cc5ee57";
//----делаем до 13 запросоа
for ($i = 0; $i <= 13; $i++) {
if (!$page_cont) $page_cont = file_get_contents($page_url);
}
if ($page_cont) {
//$page_cont = str_replace("\r", "", $page_cont);
//$page_cont = str_replace("\n", "", $page_cont);
//---- Погода завтра развёрнуто.
$re3 = "/<p data-testid=\"wxPhrase\" class=\"DailyContent--narrative--jqi6P\">(.*?)<\/p><\/div>/"; //Шаблон
preg_match_all($re3, $page_cont, $seg); //Поиск
//var_dump($seg); //дамп информации о переменной.
$zet = strip_tags($seg[0][1]); //Убираем тэги
echo "<br>" . " ------------------------ ";
echo "<br>" . $zet;
echo "<br>" . " ------------------------- ";
}
sg( "pog_prognoz.pgd_razvernuto", $zet ); //Погода развёрнуто
|
Прогноз погоды
|
Прогноз погоды (говорить)
$weather.="Сегодня : ".str_replace('°',' ',getGlobal('pog_fact.pgd_razvernuto'));
$weather.=". Завтра : ".str_replace('°',' ',getGlobal('pog_prognoz.pgd_razvernuto'));
$weather.=". Сейчас на улице ".getGlobal('TempSad.value').' градусов.';
$weather=str_replace('°','',$weather);
say($weather,2);
|
Световой день
|
$datetime1 = date_create(gg( "pog_fact.vosxod", $svden ));
$datetime2 = date_create(gg( "pog_fact.zakat", $svden ));
$interval = date_diff($datetime1, $datetime2);
echo $interval->format('%h часов %i минут');
$svden = $interval->format('%h часов %i минут');
sg( "pog_fact.svet_den", $svden ); //Световой день
|
Синоптик
|
Парсер
if (isset($params["level"])) $level = $params["level"]; else $level = 1;
if (!isOnline('Internet')) { say("Нет доступа в Интернет!", $level); return; }
if (isset($params["change"])) $change = $params["change"];
$page_url = "https://weather.com/ru-EE/weather/today/l/8d0e8176a90be5e941d5336b1c4345151e521459234aed9f2ba098128cc5ee57";
$page_url_2 = "https://weather.com/ru-EE/weather/hourbyhour/l/8d0e8176a90be5e941d5336b1c4345151e521459234aed9f2ba098128cc5ee57#detailIndex4";
//----делаем до 13-х запросов
for ($i = 0; $i <= 13; $i++) {
if (!$page_cont) $page_cont = file_get_contents($page_url);
}
//----делаем до 13-х запросов
for ($n = 0; $n <= 13; $n++) {
if (!$page_cont_2) $page_cont_2 = file_get_contents($page_url_2);
}
if ($page_cont) {
echo "<br>" . "--------";
echo "<br>" . "Подключено";
echo "<br>" . "--------";
/* //---- Картинка погоды ----
$sample1 = "/src=\"\/resources\/icons\/(.*?)\" alt=/"; //Шаблон
preg_match_all($sample1, $page_cont, $nebo); //Поиск
$nebo1 = $nebo[1][0];
$nebo2 = str_replace("\"","V",$nebo1); // меняем символ
$nebo2 = str_replace("V", "", $nebo2); // меняем символ
var_dump($nebo); //дамп информации о переменной.
$nebourl = "https:" . $nebo2;
echo "<br>" . $nebo[0][0];
echo "<br>" . "--------";
echo "<br>" . $nebourl ;
*/
/*********************************************************/
echo "<br>" . "---- Описание погоды кратко: ----";
$sample2 = "/lass=\"CurrentConditions--phraseValue---VS-k\">(.*?)<\/div>/"; //Шаблон
preg_match_all($sample2, $page_cont, $pgd); //Поиск
// var_dump($pgd); //дамп информации о переменной.
$pog = $pgd[1][0];
echo "<br>" . " ";
echo "<br>" . $pog;
echo "<br>" . " ";
/*********************************************************/
echo "<br>" . "---- Описание погоды развёрнуто: ----";
$sample3 = "/<p class=\"InsightNotification--text--wOZxZ\">(.*?)<\/p>/"; //Шаблон
preg_match_all($sample3, $page_cont, $seg); //Поиск
//var_dump($seg); //дамп информации о переменной.
$zet = $seg[1][0]; //Убираем тэги
echo "<br>" . " ";
echo "<br>" . $zet;
echo "<br>" . " ";
/*********************************************************/
echo "<br>" . "---- Температура сейчас ----";
$sample4 = "/class=\"CurrentConditions--tempValue--zUBSz\" dir=\"ltr\">(.*?)<span class=/"; //Шаблон
preg_match_all($sample4, $page_cont, $temp_s); //Поиск
$t_s = $temp_s [1][0];
echo "<br>" . $t_s . "°C";
/*********************************************************/
echo "<br>" . "---- Ощущение температуры ----";
$sample5 = "/class=\"TodayDetailsCard--feelsLikeTempValue--8WgHV\" dir=\"ltr\">(.*?)<span>°<\/span>/"; //Шаблон
preg_match_all($sample5, $page_cont, $tempos); //Поиск
$tos = $tempos [1][0];
echo "<br>" . "_____Ощущается как:_____ ";
echo "<br>" . $tos . "°C";
/*********************************************************/
echo "<br>" . "---- Температурный минимум ----";
$sample6 = "/<span data-testid=\"TemperatureValue\" dir=\"ltr\">(.*?)<span>°<\/span>/"; //Шаблон
preg_match_all($sample6, $page_cont, $temp_); //Поиск
$tempmin = $temp_ [1][1];
echo "<br>" . " ";
// echo "<br>" . "минимум";
echo "<br>" . $tempmin;
echo "<br>" . " ";
// var_dump($tempmin); //дамп информации о переменной.
echo "<br>" . "---- Температурный максимум ----";
$tempmax = $temp_ [1][0];
echo "<br>" . " ";
// echo "<br>" . "максимум";
echo "<br>" . $tempmax;
echo "<br>" . " ";
/*********************************************************/
echo "<br>" . "---- Осадки: ----";
$ret = $pog;
if ($ret) {
echo "<br>" . $ret ;
}
$sneg = "Снег";
$dozd = "Дождь";
$dozdN = "Небольшой дождь";
$dozdL = "Ливневый дождь";
$dozdV = "Дождь/ветрено";
$tuman = "Туман";
$groza = "Гроза";
if ($ret == $sneg) {
echo "<br>" ."Вхождение найдено.";
echo "<br>" ."Снег.";
} else {
echo "<br>" ."Снег - Вхождение не найдено.";
}
if (($ret == $dozd)||($ret == $dozdL)||($ret == $dozdN)||($ret == $dozdV)){
echo "<br>" ."Вхождение найдено.";
echo "<br>" ."Дождь.";
$osadki = "Дождь.";
} else {
echo "<br>" ."Дождь - Вхождение не найдено.";
}
if (preg_match("/.роз.+/U", $ret)) {
echo "<br>" ."Вхождение найдено.";
echo "<br>" ."Гроза.";
$osadki = "Гроза.";
} else {
echo "<br>" ."Гроза - Вхождение не найдено.";
}
if ($ret == $tuman) {
echo "<br>" ."Вхождение найдено.";
echo "<br>" ."Туман.";
$osadki = "Туман.";
} else {
echo "<br>" ."Туман - Вхождение не найдено.";
}
if (($ret !== $sneg)&($ret !== $dozd)&($ret !== $tuman)&($ret !== $dozdL )&($ret !== $dozdN )&($ret !== $dozdV )){
echo "<br>" ." ";
echo "<br>" ."Без осадков";
$osadki = "Без осадков.";
}
echo "<br>" . " ";
/*********************************************************/
echo "<br>" . "---- Солнце: ----";
$sample7 = "/<p class=\"TwcSunChart--dateValue--TzXBr\">(.*?)<\/p>/"; //Шаблон
preg_match_all($sample7, $page_cont, $san); //Поиск
$vosxod = $san [1][0];
$zakat = $san [1][1];
/*
// Вывод для отладки
echo "<br>" . "---1-----";
echo "<br>" . $san[0][0];
echo "<br>" . "---2-----";
echo "<br>" . $san[1][0];
echo "<br>" . "---3-----";
echo "<br>" . $san[2][0];
echo "<br>" . "---4-----";
echo "<br>" . $san[0][1];
echo "<br>" . "---5-----";
echo "<br>" . $san[1][1];
echo "<br>" . "---6-----";
echo "<br>" . $san[0][3];
echo "<br>" . "---7-----";
echo "<br>" . $san[0][3];
echo "<br>" . "---8-----";
echo "<br>" . $san[0][0];
echo "<br>" . "--------";
*/
echo "<br>" . " ";
echo "<br>" . "Восход";
echo "<br>" . $vosxod;
echo "<br>" . "--------";
echo "<br>" . "Закат";
echo "<br>" . $zakat;
/*********************************************************/
echo "<br>" . "---- Скорость и направление ветра ----";
$sample8_2 = "/<span data-testid=\"Wind\" class=\"Wind--windWrapper--NsCjc DetailsTable--value--pWEVz\"><span>(.*?)<\/span><span>/"; //Шаблон
preg_match_all($sample8_2, $page_cont_2, $matches_2); //Поиск
$sample8 = "/\"><\/path><\/svg><\/span><span>(.*?)<\/span>/"; //Шаблон
preg_match_all($sample8, $page_cont, $matches); //Поиск
// var_dump($matches); //дамп информации о переменной.
/* // Вывод для отладки
echo "<br>" . $matches[0][0];
echo "<br>" . $matches[1][0];
echo "<br>" . $matches[2][0];
echo "<br>" . $matches[3][0];
echo "<br>" . $matches[0][1];
echo "<br>" . $matches[0][2];
echo "<br>" . $matches[0][3];
echo "<br>" . $matches[0][4];
*/
$napr = $matches_2[1][0];
$vtr = $matches[1][0];
echo "<br>" . "Ветер сейчас: ";
echo "<br>" . $napr . " " . $vtr . " км/ч";
/*********************************************************/
echo "<br>" . "---- Вероятность осадков ----";
$sample9 = "/<span class=\"Column--precip--YkErk\"><span class=\"Accessibility--visuallyHidden--n\+vd9\">.*?<\/span>(.*?)<\/span>/"; //Шаблон
preg_match_all($sample9, $page_cont, $ver); //Поиск
//var_dump($ver); //дамп информации о переменной.
$veros = $ver [1][4];
echo "<br>" . $veros;
/*********************************************************/
echo "<br>" . "---- Индекс УФ ----";
$sample11 = "/<span data-testid=\"UVIndexValue\">(.*?)<\/span>/"; //Шаблон
preg_match_all($sample11, $page_cont, $ufind); //Поиск
$ufindeks = $ufind [1][0];
echo "<br>" . $ufindeks;
/*********************************************************/
echo "<br>" . "---- Видимость ----";
$sample12 = "/<span data-testid=\"VisibilityValue\"><span>(.*?)<\/span><span>/"; //Шаблон
preg_match_all($sample12, $page_cont, $vid); //Поиск
$vidim = $vid [1][0];
echo "<br>" . $vidim . "км";
/*********************************************************/
echo "<br>" . "____zzzzz_____ ";
}
//---- Запись значений ----
sg( "pog_fact.img", $nebourl); //URL картинки
sg( "pog_fact.vosxod", $vosxod ); //Восход
sg( "pog_fact.zakat", $zakat ); //Закат
sg( "pog_fact.veroyatnost_osadkov", $veros ); //Вероятность осадков
sg( "pog_fact.osadki", $osadki ); //Осадки
sg( "pog_fact.veter_skorost", $vtr ); //Скорость ветра
sg( "pog_fact.veter_napr", $napr); //Направление ветра
sg( "pog_fact.temp_max", $tempmax ); //Температура max
sg( "pog_fact.temp_min", $tempmin ); //Температура min
sg( "pog_fact.pogoda", $pog ); //Погода кратко
sg( "pog_fact.pgd_razvernuto", $zet ); //Погода развёрнуто
sg( "pog_fact.temp_chuvstva", $tos ); //Температура чувствуется как
sg( "pog_fact.UFindecs", $ufindeks ); //УФ индекс
sg( "pog_fact.vidimost", $vidim ); //Видимость
|
Точка росы
|
/*
Tp = b*f(T,Rh) / (a-f(T,Rh))
f(T,Rh) = (a*T) / (b+T) + ln(Rh/100)
a = 17.27
b = 237.7
*/
$Rh = gg("pog_fact.vlaznost");
$Rh_1 = $Rh / 100;
$Ln = log($Rh_1);
$Dl = 237.7 + gg("pog_fact.temp_fact");
$D = 17.27 * gg("pog_fact.temp_fact");
$z = $D / $Dl;
$f = $z + $Ln;
$D1 = 237.7 * $f;
$Dl1 = 17.27 - $f;
$Ros = $D1 / $Dl1;
$Tros = round($Ros, 1, PHP_ROUND_HALF_UP);
sg("pog_fact.tochka_rosi", $Tros);
echo "<br>" . "Точка росы:" ;
echo "<br>" . $Ros ;
echo "<br>" . $Tros;
|
Реле
turnOffEverything
|
Выключить все приборы
$objects=array('R1_kab','R2_kab','R3_kab','R4_kab','S1_kab','S2_kab','S1_kux');
foreach($objects as $o) {
callMethod($o.'.turnoff');
}
|
Включить поддув
|
Включает термостат поддува
callMethod('Kotel_Vent'.'.'.'enable');
|
Отключить поддув
|
Отключает термостат поддува
callMethod('Kotel_Vent'.'.'.'disable');
|
Рабочее место
|
Включить розетку_1
$objects=array('R1_kab','R4_kab');
foreach($objects as $w) {
callMethod($w.'.turnOn');
}
say ("Готово.",2);
|
События
Hourly
|
Выполняется каждый час
|
motionDetected
|
Сработал детектор движения на веб-камере
DebMes("Motion detected: ".serialize($params));
callMethod('MotionSensorCam.motionDetected');
setTimeOut('motionDetectedTimer','runScript("camImagesProcess");',10);
if (getGlobal('ThisComputer'.'.'.'WebCamMotionAuto')) {
setTimeOut('stopWebCamDetection', " runScript('manageWebCamMotion', array('stop'=>'1'));", (int)('60'));
}
|
NobodyHome
|
Срабатывает, когда никого дома нет
say('Свет выключать придётся мне', 2);
callMethod('EconomMode'.'.'.'activate');
|
SomebodyHome
|
Срабатывает в том случае, когда кто-то появился дома
say('Приветствую ! Располагайтесь где удобно.', 1);
callMethod('EconomMode'.'.'.'deactivate');
|
startUp
|
Система загружена
say('Система загружена', 2);
runScript('tellIPAddress', array());
|
Классы/объекты
Класс
Computer
- Компьютер
Свойства класса:
checked
- время последней проверки
minMsgLevel
- мин. уровень сообщения
tempOutside
- температура снаружи
Методы класса:
WakedUp
- Проснулся
onIdle
- на холостом ходу
StartUp
- Запуск
commandReceived
- получение новой команды
powerConnected
- Питание подключено
powerDisconnected
- Питание отключено
VolumeLevelChanged
- Уровень громкости изменен
$this->setProperty('volumeLevel',$params['VALUE']);
if (IsWindowsOs()) {
$volume=round(65535*$params['VALUE']/100);
safe_exec('..\\apps\\nircmd\\nircmdc setsysvolume '.$volume);
} else {
safe_exec('amixer sset PCM,0 '.$params['VALUE'].'%');
}
say("Изменилась громкость до ".$params['VALUE']." процентов");
Объекты класса:
ThisComputer
Методы объекта:
commandReceived
$command=$params['command'];
$short_command='';
$dt=recognizeTime($command,$short_command);
if (preg_match('/скажи сколько врем/uis',$command)) {
if ($dt>0) {
addScheduledJob("command".$dt,"processCommand('".$short_command."');",$dt);
say('Задача принята',2);
return;
}
global $voicemode;
$voicemode='on';
say('Сейчас '.timeNow(),2);
} elseif (preg_match('/сколько время/uis',$command)) {
if ($dt>0) {
addScheduledJob("command".$dt,"processCommand('".$short_command."');",$dt);
say('Задача принята');
echo $short_command;
return;
}
say('Сейчас '.timeNow());
} elseif (preg_match('/повтори (.+)/uis',$command,$m) || preg_match('/скажи (.+)/uis',$command,$m)) {
if ($dt>0) {
addScheduledJob("command".$dt,"processCommand('".$short_command."');",$dt);
say('Задача принята',2);
return;
}
global $voicemode;
$voicemode='on';
say($m[1],2);
} else {
say('Неизвестная команда...',2);
}
powerDisconnected
say("Отключено питание");
Класс
Cron
- Cron scheduler
Свойства класса:
Enable
- Вкл - 1, выкл - 0
Crontab
- Периодичность выполнения (cron синтаксис)
LastRun
- Последний запуск
Category
- Категория
Методы класса:
Run
- Исполняемый метод
$this->setProperty('LastRun',date('Y-m-d H:i:s'));
Update
- Обновление задачи
$name='Cron_'.$this->object_title;
SQLExec("DELETE FROM jobs WHERE title='".$name."'");
Объекты класса:
Pogoda zavtra
- Каждые 2 часа
Методы объекта:
Run
runScript('Прогноз на завтра');
Rosa
- Каждый час
Методы объекта:
Sezon
- Номер сезона (1-й день месяца)
Методы объекта:
Sinoptik
- Каждый час
Методы объекта:
Kartinka pogodi
- Каждый час
Методы объекта:
Класс
openweather
- Погода Open Weather Map
Объекты класса:
ow_city
- Местоположение
ow_setting
- Настройки
ow_ws
- Погодная станция (экспорт)
ow_fact
- Текущая температура
ow_day0
- Прогноз погоды на день
ow_day1
- Прогноз погоды на завтра
ow_day2
- Прогноз погоды на послезавтра
Класс
OperationalModes
- Режимы работы
Свойства класса:
active
title
updated
updatedTime
Методы класса:
modeChanged
$this->setProperty("updated",time());
$this->setProperty("updatedTime",date('H:i'));
if ($this->getProperty('active')) {
say("Режим ".$this->getProperty('title')." активирован.");
} else {
say("Режим ".$this->getProperty('title')." выключен.");
}
activate
$this->setProperty('active',1);
deactivate
$this->setProperty('active',0);
Объекты класса:
EconomMode
- Режим экономии
Методы объекта:
activate
$objects=getObjectsByProperty('groupEco','=','1');
if (is_array($objects)) {
foreach($objects as $obj) {
callMethod($obj.'.turnOff');
}
}
$objects=getObjectsByProperty('allOffGroup','=','1');
if (is_array($objects)) {
foreach($objects as $obj) {
callMethod($obj.'.turnOff');
}
}
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/econommode_activate.php');
/* end injection of {SDevices} */
deactivate
if (gg('DarknessMode.active')) {
$objects=getObjectsByProperty('greetingOnGroup','=','1');
if (is_array($objects)) {
foreach($objects as $obj) {
callMethod($obj.'.turnOn');
}
}
}
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/econommode_deactivate.php');
/* end injection of {SDevices} */
NobodyHomeMode
- Режим "Никого нет дома"
Методы объекта:
activate
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/nobodyhomemode_activate.php');
/* end injection of {SDevices} */
deactivate
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/nobodyhomemode_deactivate.php');
/* end injection of {SDevices} */
SecurityArmedMode
- Режим охраны
GuestsMode
- Гостевой режим
DarknessMode
- Режим темноты
Методы объекта:
deactivate
$objects=getObjectsByProperty('groupSunrise','=','1');
if (is_array($objects)) {
foreach($objects as $obj) {
callMethod($obj.'.turnOff');
}
}
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/darknessmode_deactivate.php');
/* end injection of {SDevices} */
activate
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/darknessmode_activate.php');
/* end injection of {SDevices} */
NightMode
- Ночной режим
Методы объекта:
activate
setGlobal('minMsgLevel','2');
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/nightmode_activate.php');
/* end injection of {SDevices} */
deactivate
setGlobal('minMsgLevel','1');
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/nightmode_deactivate.php');
/* end injection of {SDevices} */
Класс
Pogoda
- Погода
Объекты класса:
pog_fact
- Фактическая, сейчас
pog_prognoz
- Прогноз
Класс
Rooms
- Rooms/Locations
Свойства класса:
LatestActivity
LatestActivityTime
SomebodyHere
- Somebody in the room
Temperature
- Temperature
TempHEX
- HEX значение цвета
Humidity
- Humidity
Title
- Заголовок
IdleDelay
- Время активности (секунд)
turnOffLightsOnIdle
- Выключать освещение в комнате по истечение периода активности
Методы класса:
onActivity
- Rooms Activity
$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} */
onIdle
- Rooms Idle
$this->setProperty('SomebodyHere',0);
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/Rooms_onIdle.php');
/* end injection of {SDevices} */
updateActivityStatus
- Update activity status
$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} */
onTempChanges
- Изменения температуры
Объекты класса:
Zal
Kabinet
Kuxnya
Koridor
Detskaya
Kotelnaya
Класс
SDevices
- General Devices Class
Свойства класса:
status
- Статус
alive
- Alive
linkedRoom
- LinkedRoom
updated
- Updated Timestamp
updatedText
- Обновленное время (текст)
aliveTimeout
- Допустимое время отсутствия данных (часов)
batteryOperated
- Устройство работает от батареи
batteryLevel
- Уровень заряда батареи
batteryWarning
- Предупреждение о низком заряде батареи
connected_ip
- Сетевой адрес
connected_status
- Статус подключения к сети
Методы класса:
setUpdatedText
- Изменить обновленный текст
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SDevices_setUpdatedText.php');
/* end injection of {SDevices} */
batteryLevelUpdated
- Battery level updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SDevices_batteryLevelUpdated.php');
/* end injection of {SDevices} */
logicAction
- Logic Action
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SDevices_logicAction.php');
/* end injection of {SDevices} */
statusUpdated
- Status updated event
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SDevices_statusUpdated.php');
/* end injection of {SDevices} */
keepAlive
- Alive update
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SDevices_keepAlive.php');
/* end injection of {SDevices} */
Класс
SDevices >
SButtons
- Кнопки
Свойства класса:
icon
- Изображение
isActivity
- Изменение означает активность в помещении
Методы класса:
pressed
- Нажать
require(DIR_MODULES.'devices/SButtons_pressed.php');
Класс
SDevices >
SCameras
- Камеры
Свойства класса:
streamURL
- URL видео-потока (LQ)
streamURL_HQ
- URL видео-потока (HQ)
cameraUsername
- Имя пользователя
cameraPassword
- Пароль
snapshotURL
- URL статического снимка
snapshot
- Снимок
previewHTML
- Preview HTML
streamTransport
- Транспорт потока
previewType
- Предпросмотр
clickAction
- Действие по нажатию на изображение
snapshotPreviewURL
- Snapshot Preview URL
activeHTML
- Active HTML
series
- Снимок
ignoreNobodysHome
- Игнорировать события от устройства, когда никого нет дома
timeout
- Время активности (секунд)
Методы класса:
motionDetected
- Motion Detected
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SCameras_motionDetected.php');
/* end injection of {SDevices} */
updatePreview
- Update preview code
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SCameras_updatePreview.php');
/* end injection of {SDevices} */
takeSnapshot
- Take snapshot
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SCameras_takeSnapshot.php');
/* end injection of {SDevices} */
takeSeries
- Takes image series
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SCameras_takeSeries.php');
/* end injection of {SDevices} */
Класс
SDevices >
SControllers
- Controllable device
Свойства класса:
groupEco
- Выключать в режиме экономии
groupSunrise
- Выключать с рассветом
groupEcoOn
- Включать при выходе из режима экономии
isActivity
- Изменение означает активность в помещении
loadType
- Тип устройства
groupSunset
- Включать с закатом
groupNight
- Выключать при входе в ночной режим
icon
- Изображение
poweredStatus
- Включено / выключено
Методы класса:
turnOn
- Включить
require(DIR_MODULES.'devices/SControllers_turnOn.php');
turnOff
- Выключить
require(DIR_MODULES.'devices/SControllers_turnOff.php');
switch
- Switch
require(DIR_MODULES.'devices/SControllers_switch.php');
Класс
SControllers >
SAirConditioners
Свойства класса:
value
- Текущая температура
currentTargetValue
- Целевая температура
tempStep
- Шаг изменения температуры
fanSpeed
- Fan Speed
fanSpeedModes
- Обдув
fanSpeedModesHTML
- FanSpeedModes HTML
thermostat
- Thermostat
thermostatModes
- Термостат
thermostatModesHTML
- ThermostatModes HTML
Методы класса:
setTargetTemperature
- Set target temperature
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SAirConditioners_setTargetTemperature.php');
/* end injection of {SDevices} */
setThermostatMode
- Set thermostat mode
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SAirConditioners_setThermostatMode.php');
/* end injection of {SDevices} */
setFanSpeedMode
- Set fan speed mode
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SAirConditioners_setFanSpeedMode.php');
/* end injection of {SDevices} */
configUpdated
- Config updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SAirConditioners_configUpdated.php');
/* end injection of {SDevices} */
fanSpeedUpdated
- Fan Speed updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SAirConditioners_fanSpeedUpdated.php');
/* end injection of {SDevices} */
thermostatUpdated
- Thermostat updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SAirConditioners_thermostatUpdated.php');
/* end injection of {SDevices} */
tempUp
- Increase target temperature
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SAirConditioners_tempUp.php');
/* end injection of {SDevices} */
tempDown
- Descrease target temperature
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SAirConditioners_tempDown.php');
/* end injection of {SDevices} */
Класс
SControllers >
SDimmers
Свойства класса:
level
- Current brightness level
levelSaved
- Latest level saved
levelWork
- Brightness level (work)
minWork
- Мин. уровень (рабочий)
maxWork
- Макс. уровень (рабочий)
switchLevel
- Не изменять уровень при переключении
setMaxTurnOn
- Устанавливать максимальную яркость при включении
Методы класса:
levelUpdated
- Level Updated
require(DIR_MODULES.'devices/SDimmers_levelUpdated.php');
turnOn
- Включить
require(DIR_MODULES.'devices/SDimmers_turnOn.php');
turnOff
- Выключить
require(DIR_MODULES.'devices/SDimmers_turnOff.php');
setLevel
- Set brightness level
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SDimmers_setLevel.php');
/* end injection of {SDevices} */
statusUpdated
- Status Updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SDimmers_statusUpdated.php');
/* end injection of {SDevices} */
levelWorkUpdated
- Level Work Updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SDimmers_levelWorkUpdated.php');
/* end injection of {SDevices} */
Класс
SControllers >
SGroups
Свойства класса:
groupName
- Group system name
Методы класса:
turnOn
- Включить
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SGroups_turnOn.php');
/* end injection of {SDevices} */
turnOff
- Выключить
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SGroups_turnOff.php');
/* end injection of {SDevices} */
switch
- Switch
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SGroups_switch.php');
/* end injection of {SDevices} */
statusUpdated
- Status Updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SGroups_statusUpdated.php');
/* end injection of {SDevices} */
Класс
SControllers >
SMedias
Свойства класса:
volume
- Volume
source_num
- Source number
channel_num
- Channel number
Методы класса:
pause
- Pause
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SMedias_pause.php');
/* end injection of {SDevices} */
setSource
- Set source
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SMedias_setSource.php');
/* end injection of {SDevices} */
setChannel
- Set channel
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SMedias_setChannel.php');
/* end injection of {SDevices} */
setVolume
- Set volume
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SMedias_setVolume.php');
/* end injection of {SDevices} */
Класс
SControllers >
SRelays
Объекты класса:
Bt_Sad_Nasos
- Полив
R4_kab
- Лампа
Методы объекта:
R3_kab
- Кофеварка
Методы объекта:
R2_kab
- Фонарь
Методы объекта:
R1_kab
- Клавиатура
Методы объекта:
R5_kab
- не подключено
R6_kab
- не подключено
S1_kab
- Софиты
S1_kux
- Столешница
S2_kab
- Свет
Класс
SControllers >
SRGB
Свойства класса:
color
- Current color
colorSaved
- Saved color
brightness
- Current brightness
Методы класса:
colorUpdated
- Color Updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SRGB_colorUpdated.php');
/* end injection of {SDevices} */
setColor
- Color Set
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SRGB_setColor.php');
/* end injection of {SDevices} */
turnOn
- Включить
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SRGB_turnOn.php');
/* end injection of {SDevices} */
turnOff
- Выключить
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SRGB_turnOff.php');
/* end injection of {SDevices} */
Класс
SControllers >
STermostat
- Термостат
Свойства класса:
relay_status
- Статус реле
value
- Текущая температура
currentTargetValue
- Целевая температура
normalTargetValue
- Обычная целевая температура
ecoTargetValue
- ECO целевая температура
threshold
- Порог срабатывания термостата (0.25 по-умолчанию)
ncno
- Тип устройства/сенсора
disabled
- Disabled
Методы класса:
valueUpdated
- Value Updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_valueUpdated.php');
/* end injection of {SDevices} */
statusUpdated
- Status Updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_statusUpdated.php');
/* end injection of {SDevices} */
tempUp
- Increase target temperature
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_tempUp.php');
/* end injection of {SDevices} */
tempDown
- Descrease target temperature
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_tempDown.php');
/* end injection of {SDevices} */
setTargetTemperature
- Установить желаемую температуру
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_setTargetTemperature.php');
/* end injection of {SDevices} */
switchEnable
- Switch Enable
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_switchEnable.php');
/* end injection of {SDevices} */
enable
- Enable
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_enable.php');
/* end injection of {SDevices} */
disable
- Режим: Выкл
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_disable.php');
/* end injection of {SDevices} */
turnOn
- Режим: Обычный
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_turnOn.php');
/* end injection of {SDevices} */
turnOff
- Режим: Эко
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_turnOff.php');
/* end injection of {SDevices} */
Класс
SControllers >
SThermostats
Свойства класса:
disabled
- Disabled
ncno
- Тип устройства/сенсора
threshold
- Порог срабатывания термостата (0.25 по-умолчанию)
ecoTargetValue
- ECO целевая температура
currentTargetValue
- Целевая температура
value
- Текущая температура
relay_status
- Статус реле
normalTargetValue
- Обычная целевая температура
Атас
Методы класса:
setTargetTemperature
- Установить желаемую температуру
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_setTargetTemperature.php');
/* end injection of {SDevices} */
valueUpdated
- Value Updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_valueUpdated.php');
/* end injection of {SDevices} */
statusUpdated
- Status Updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_statusUpdated.php');
/* end injection of {SDevices} */
tempUp
- Increase target temperature
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_tempUp.php');
/* end injection of {SDevices} */
tempDown
- Descrease target temperature
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_tempDown.php');
/* end injection of {SDevices} */
switchEnable
- Switch Enable
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_switchEnable.php');
/* end injection of {SDevices} */
enable
- Enable
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_enable.php');
/* end injection of {SDevices} */
disable
- Режим: Выкл
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_disable.php');
/* end injection of {SDevices} */
turnOn
- Режим: Обычный
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_turnOn.php');
/* end injection of {SDevices} */
turnOff
- Режим: Эко
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SThermostats_turnOff.php');
/* end injection of {SDevices} */
Atas
- Отключает прибор при автопилоте
Объекты класса:
Kotel_Ten
- Котёл_Тэн
Методы объекта:
Atas
if (getGlobal('Kotel_Ten.Автопилот') == 1 && getGlobal('Kotel_Ten.Атас') == 1) {
callMethod('Kotel_Ten.disable');
}
if (getGlobal('Kotel_Ten.Автопилот') == 1 && getGlobal('Kotel_Ten.Атас') == 0) {
callMethod('Kotel_Ten.enable');
}
Класс
SControllers >
STVs
Свойства класса:
volume
- Volume
source_num
- Source number
channel_num
- Channel number
Методы класса:
pause
- Pause
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/STVs_pause.php');
/* end injection of {SDevices} */
setSource
- Set source
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/STVs_setSource.php');
/* end injection of {SDevices} */
setChannel
- Set channel
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/STVs_setChannel.php');
/* end injection of {SDevices} */
setVolume
- Set volume
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/STVs_setVolume.php');
/* end injection of {SDevices} */
Класс
SControllers >
SVacuums
Методы класса:
pause
- Pause
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SVacuums_pause.php');
/* end injection of {SDevices} */
Класс
SDevices >
SCounters
- Счётчики
Свойства класса:
unit
- Единица измерения
value
- Data Value
price
- Price
pulseAmount
- Pulse amount (optional)
valueWork
- Work Value
valueHour
- Hour Value
valueDay
- Day Value
valueMonth
- Month Value
conversion
- Conversion coefficient (work-to-data)
Методы класса:
valueUpdated
- Data Value updated event
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SCounters_valueUpdated.php');
/* end injection of {SDevices} */
valueWorkUpdated
- Work Value updated event
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SCounters_valueWorkUpdated.php');
/* end injection of {SDevices} */
refreshStats
- Refreshes daily/monthly stats
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SCounters_refreshStats.php');
/* end injection of {SDevices} */
pulseDetected
- Meter pulse detection
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SCounters_pulseDetected.php');
/* end injection of {SDevices} */
Класс
SDevices >
SHTML
Свойства класса:
data
- Данные
Класс
SDevices >
SLeak
- Протечка
Свойства класса:
notify_eliminated
- Уведомлять каждую минуту до восстановления статуса
notify_msg_reminder
- Сообщение при напоминании
blocked
- Is blocked
Методы класса:
statusUpdated
- Status updated event
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SLeak_statusUpdated.php');
/* end injection of {SDevices} */
alert
- Sensor alert
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SLeak_alert.php');
/* end injection of {SDevices} */
blockSensor
- Блокировать датчик
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SLeak_blockSensor.php');
/* end injection of {SDevices} */
unblockSensor
- Разблокировать датчик
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SLeak_unblockSensor.php');
/* end injection of {SDevices} */
Класс
SDevices >
SMotions
- Движение
Свойства класса:
ignoreModeChange
- Игнорировать движения в режиме "Никого нет"
ignoreNobodysHome
- Игнорировать события от устройства, когда никого нет дома
timeout
- Время активности (секунд)
resetNobodysHome
- Сброс статуса "никого нет дома" без таймера установки
blocked
- Is blocked
Методы класса:
motionDetected
- Motion Detected
require(DIR_MODULES.'devices/SMotions_motionDetected.php');
blockSensor
- Блокировать датчик
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SMotions_blockSensor.php');
/* end injection of {SDevices} */
unblockSensor
- Разблокировать датчик
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SMotions_unblockSensor.php');
/* end injection of {SDevices} */
Объекты класса:
MotionVxod
- Датчик движения вход
MotionKabinet
- Датчик движения кабинет
Методы объекта:
MotionKuxnya
- Датчик движения кухня
Методы объекта:
Класс
SDevices >
SOpenable
- Открываемые
Свойства класса:
isActivity
- Изменение означает активность в помещении
notify_status
- Уведомлять при смене статуса
notify_nc
- Напоминать об открытом состоянии
support_level
- Поддержка уровня открытия
openType
- Тип устройства
notify_msg_opening
- Сообщение при открытии
notify_msg_closing
- Сообщение при закрытии
notify_msg_reminder
- Сообщение при напоминании
level
- Current level
levelSaved
- Latest level saved
Методы класса:
statusUpdated
- Status updated event
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SOpenable_statusUpdated.php');
/* end injection of {SDevices} */
setLevel
- Set open level
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SOpenable_setLevel.php');
/* end injection of {SDevices} */
levelUpdated
- Level Updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SOpenable_levelUpdated.php');
/* end injection of {SDevices} */
switch
- Switch
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SOpenable_switch.php');
/* end injection of {SDevices} */
open
- Open
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SOpenable_open.php');
/* end injection of {SDevices} */
close
- Close
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SOpenable_close.php');
/* end injection of {SDevices} */
Класс
SDevices >
SOpenClose
Свойства класса:
isActivity
- Изменение означает активность в помещении
ncno
- Тип устройства/сенсора
notify_status
- Уведомлять при смене статуса
notify_nc
- Напоминать об открытом состоянии
blocked
- Is blocked
notify_msg_opening
- Сообщение при открытии
notify_msg_closing
- Сообщение при закрытии
notify_msg_reminder
- Сообщение при напоминании
Методы класса:
statusUpdated
- Status updated event
require(DIR_MODULES.'devices/SOpenClose_statusUpdated.php');
blockSensor
- Блокировать датчик
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SOpenClose_blockSensor.php');
/* end injection of {SDevices} */
unblockSensor
- Разблокировать датчик
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SOpenClose_unblockSensor.php');
/* end injection of {SDevices} */
Класс
SDevices >
SSensors
- Датчики
Свойства класса:
value
- Current Sensor Value
minValue
- Нижний порог
maxValue
- Верхний порог
notify
- Уведомлять при выходе за порог
normalValue
- Значение в нормальных пределах
mainSensor
- Основной сенсор помещения
notify_eliminated
- Уведомлять каждую минуту до восстановления статуса
direction
- Direction of changes
directionTimeout
- Интервал времени расчета направления изменений (сек)
blocked
- Is blocked
Методы класса:
alert
- Sensor alert
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SSensors_alert.php');
/* end injection of {SDevices} */
blockSensor
- Блокировать датчик
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SSensors_blockSensor.php');
/* end injection of {SDevices} */
unblockSensor
- Разблокировать датчик
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SSensors_unblockSensor.php');
/* end injection of {SDevices} */
valueUpdated
- Value Updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SSensors_valueUpdated.php');
/* end injection of {SDevices} */
Класс
SSensors >
SCO2Sensors
Класс
SSensors >
SCOSensors
- Угарный газ
Класс
SSensors >
SCurrentSensors
- Датчики потока
Объекты класса:
CurrentKotel
Класс
SSensors >
SGeneralSensors
- Общие датчики
Свойства класса:
unit
- Единица измерения
Класс
SSensors >
SHumSensors
- Датчики влажности
Объекты класса:
HumSad
- Влажность в саду
Класс
SSensors >
SLightSensors
- Датчики освещённости
Свойства класса:
unit
- Единица измерения
periodMinValue
- Minimum value for period
periodTime
- Period to calculate minimum value (seconds)
Методы класса:
valueUpdated
- Value Updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SLightSensors_valueUpdated.php');
/* end injection of {SDevices} */
periodMinValueUpdated
- Period Min value updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SLightSensors_periodMinValueUpdated.php');
/* end injection of {SDevices} */
alert
- Предупреждение датчика
Объекты класса:
LightSad
- Освещённость в саду
Класс
SSensors >
SMoistureSensors
- Влага,Сырость
Объекты класса:
MoistureKuxnya
- Датчик протечки кухня
Класс
SSensors >
SPercentageSensors
- Проценты
Класс
SSensors >
SPowerSensors
- Мощность
Свойства класса:
loadStatusTimeout
- Таймер изменения статуса нагрузки
Методы класса:
valueUpdated
- Value Updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SPowerSensors_valueUpdated.php');
/* end injection of {SDevices} */
loadStatusChanged
- Load Status Changed
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SPowerSensors_loadStatusChanged.php');
/* end injection of {SDevices} */
Объекты класса:
PowerKotel
- Котёл дома
Класс
SSensors >
SPressureSensors
- Давление
Объекты класса:
PressureSad
- Атмосферное давление
PressureXVS
- Давление ХВС
Класс
SSensors >
SRadiationSensors
- Радиация
Класс
SSensors >
SStateSensors
- Состояние
Класс
SSensors >
STempHumSensors
Свойства класса:
valueHumidity
- Humidity Sensor Value
minHumidityValue
- Нижний порог (humidity)
maxHumidityValue
- Верхний порог (humidity)
directionHumidity
- Direction of changes
Методы класса:
valueUpdated
- Value Updated
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/STempHumSensors_valueUpdated.php');
/* end injection of {SDevices} */
Класс
SSensors >
STempSensors
- Температура
Объекты класса:
TempSad
- Темп_сад
Методы объекта:
valueUpdated
// получить температуру
$x = $this->getProperty('value');
// используем от 0 до 30 градусов
if ($x<0) {$x=0;} else if ($x>30) {$x=30;}
// расчет величины цветовой шкалы ( 0--255 )
$x = round( $x*8.5 );
$hcolor = '#';
// расчет R
$y = $x;
if ($y < 0) {$y = 0;} else if ($y > 255) {$y = 255;}
echo "<br>" . $y;
$y = dechex($y);
if (strlen($y) == 1) {$y = '0'.$y;}
$hcolor = $hcolor.$y;
// расчет G
$y = ((-2)*($x-128))+255;
if ($y < 0) {$y = 0;} else if ($y > 255) {$y = 255;}
echo "<br>" . $y;
$y = dechex($y);
if (strlen($y) == 1) {$y = '0'.$y;}
$hcolor = $hcolor.$y;
// расчет B
$y = ((-2)*$x)+255;
if ($y < 0) {$y = 0;} else if ($y > 255) {$y = 255;}
echo "<br>" . $y;
$y = dechex($y);
if (strlen($y) == 1) {$y = '0'.$y;}
$hcolor = $hcolor.$y;
// установить свойство цвета температуры
$this->setProperty('TempHEX', $hcolor);
TempZal
- Температура в зале
TempKoridor
- Температура в коридоре
TempKuxnya
- Температура на кухне
Методы объекта:
valueUpdated
// получить температуру
$x = $this->getProperty('value');
// используем от 0 до 30 градусов
if ($x<0) {$x=0;} else if ($x>30) {$x=30;}
// расчет величины цветовой шкалы ( 0--255 )
$x = round( $x*8.5 );
$hcolor = '#';
// расчет R
$y = $x;
if ($y < 0) {$y = 0;} else if ($y > 255) {$y = 255;}
echo "<br>" . $y;
$y = dechex($y);
if (strlen($y) == 1) {$y = '0'.$y;}
$hcolor = $hcolor.$y;
// расчет G
$y = ((-2)*($x-128))+255;
if ($y < 0) {$y = 0;} else if ($y > 255) {$y = 255;}
echo "<br>" . $y;
$y = dechex($y);
if (strlen($y) == 1) {$y = '0'.$y;}
$hcolor = $hcolor.$y;
// расчет B
$y = ((-2)*$x)+255;
if ($y < 0) {$y = 0;} else if ($y > 255) {$y = 255;}
echo "<br>" . $y;
$y = dechex($y);
if (strlen($y) == 1) {$y = '0'.$y;}
$hcolor = $hcolor.$y;
// установить свойство цвета температуры
$this->setProperty('TempHEX', $hcolor);
TempPodacha
- Подача котла
TempObratka
- Температура обратки котла
TempDim
- Температура в дымоходе
Методы объекта:
valueUpdated
// получить температуру
$x = $this->getProperty('value');
// используем от 0 до 30 градусов
if ($x<0) {$x=0;} else if ($x>30) {$x=30;}
// расчет величины цветовой шкалы ( 0--255 )
$x = round( $x*8.5 );
$hcolor = '#';
// расчет R
$y = $x;
if ($y < 0) {$y = 0;} else if ($y > 255) {$y = 255;}
echo "<br>" . $y;
$y = dechex($y);
if (strlen($y) == 1) {$y = '0'.$y;}
$hcolor = $hcolor.$y;
// расчет G
$y = ((-2)*($x-128))+255;
if ($y < 0) {$y = 0;} else if ($y > 255) {$y = 255;}
echo "<br>" . $y;
$y = dechex($y);
if (strlen($y) == 1) {$y = '0'.$y;}
$hcolor = $hcolor.$y;
// расчет B
$y = ((-2)*$x)+255;
if ($y < 0) {$y = 0;} else if ($y > 255) {$y = 255;}
echo "<br>" . $y;
$y = dechex($y);
if (strlen($y) == 1) {$y = '0'.$y;}
$hcolor = $hcolor.$y;
// установить свойство цвета температуры
$this->setProperty('TempHEX', $hcolor);
TempPrud
- Температура в пруду
TempGVS
- Температура ГВС
Методы объекта:
valueUpdated
// получить температуру
$x = $this->getProperty('value');
// используем от 0 до 30 градусов
if ($x<0) {$x=0;} else if ($x>30) {$x=30;}
// расчет величины цветовой шкалы ( 0--255 )
$x = round( $x*8.5 );
$hcolor = '#';
// расчет R
$y = $x;
if ($y < 0) {$y = 0;} else if ($y > 255) {$y = 255;}
echo "<br>" . $y;
$y = dechex($y);
if (strlen($y) == 1) {$y = '0'.$y;}
$hcolor = $hcolor.$y;
// расчет G
$y = ((-2)*($x-128))+255;
if ($y < 0) {$y = 0;} else if ($y > 255) {$y = 255;}
echo "<br>" . $y;
$y = dechex($y);
if (strlen($y) == 1) {$y = '0'.$y;}
$hcolor = $hcolor.$y;
// расчет B
$y = ((-2)*$x)+255;
if ($y < 0) {$y = 0;} else if ($y > 255) {$y = 255;}
echo "<br>" . $y;
$y = dechex($y);
if (strlen($y) == 1) {$y = '0'.$y;}
$hcolor = $hcolor.$y;
// установить свойство цвета температуры
$this->setProperty('TempHEX', $hcolor);
TempDetskaya
- Температура в детской
Методы объекта:
valueUpdated
// получить температуру
$x = $this->getProperty('value');
// используем от 0 до 30 градусов
if ($x<0) {$x=0;} else if ($x>30) {$x=30;}
// расчет величины цветовой шкалы ( 0--255 )
$x = round( $x*8.5 );
$hcolor = '#';
// расчет R
$y = $x;
if ($y < 0) {$y = 0;} else if ($y > 255) {$y = 255;}
echo "<br>" . $y;
$y = dechex($y);
if (strlen($y) == 1) {$y = '0'.$y;}
$hcolor = $hcolor.$y;
// расчет G
$y = ((-2)*($x-128))+255;
if ($y < 0) {$y = 0;} else if ($y > 255) {$y = 255;}
echo "<br>" . $y;
$y = dechex($y);
if (strlen($y) == 1) {$y = '0'.$y;}
$hcolor = $hcolor.$y;
// расчет B
$y = ((-2)*$x)+255;
if ($y < 0) {$y = 0;} else if ($y > 255) {$y = 255;}
echo "<br>" . $y;
$y = dechex($y);
if (strlen($y) == 1) {$y = '0'.$y;}
$hcolor = $hcolor.$y;
// установить свойство цвета температуры
$this->setProperty('TempHEX', $hcolor);
Класс
SSensors >
SVoltageSensors
- Напряжение
Класс
SSensors >
SWaterSensors
- Датчики уровня воды
Объекты класса:
WaterKolodez
- Объём воды колодце
WaterRasshiritel
- Вода в расширителе отопления
Класс
SDevices >
SSmoke
- Дым
Свойства класса:
notify_eliminated
- Уведомлять каждую минуту до восстановления статуса
blocked
- Is blocked
Методы класса:
statusUpdated
- Status updated event
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SSmoke_statusUpdated.php');
/* end injection of {SDevices} */
alert
- Sensor alert
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SSmoke_alert.php');
/* end injection of {SDevices} */
blockSensor
- Блокировать датчик
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SSmoke_blockSensor.php');
/* end injection of {SDevices} */
unblockSensor
- Разблокировать датчик
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/SSmoke_unblockSensor.php');
/* end injection of {SDevices} */
Класс
systemStates
- Состояния системы
Свойства класса:
stateDetails
- Состояние подробно
stateColor
- зеленый / желтый / красный
Методы класса:
checkState
- Проверить состояние
stateChanged
- Состояние изменено
Объекты класса:
Security
- Безопасность
Методы объекта:
checkState
$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');
}
System
- Система
Методы объекта:
checkState
$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');
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.".";
}
}
/*
$objects=array('MotionSensor1'=>'Датчик движения 1','MotionSensor2'=>'Датчик движения 2','TempSensor01'=>'Датчик температуры','HumSensor01'=>'Датчик влажности');
foreach($objects as $k=>$v) {
if (!gg($k.'.alive')) {
$yellow_state=1;
$details[]="Не обновляется ".$v.'.';
}
}
*/
if ((int)gg('ThisComputer.SpaceProblems')>0) {
$red_state=1;
$details[]="Недостаточно места на диске (".gg('ThisComputer.SpaceProblems_Details').').';
}
if ($red_state) {
$state='red';
$state_title=LANG_GENERAL_RED;
} elseif ($yellow_state) {
$state='yellow';
$state_title=LANG_GENERAL_YELLOW;
} else {
$state='green';
$state_title=LANG_GENERAL_GREEN;
}
$new_details=implode(". ",$details);
if ($this->getProperty("stateDetails")!=$new_details) {
$this->setProperty('stateDetails',$new_details);
}
if ($this->getProperty('stateColor')!=$state) {
$this->setProperty('stateColor',$state);
$this->setProperty('stateTitle',$state_title);
if ($state!='green') {
say(LANG_GENERAL_SYSTEM_STATE." ".LANG_GENERAL_CHANGED_TO." ".$state_title.".");
say(implode(". ",$details),2);
} else {
say(LANG_GENERAL_SYSTEM_STATE." ".LANG_GENERAL_RESTORED_TO." ".$state_title,2);
}
$this->callMethod('stateChanged');
}
/* begin injection of {SDevices} */
require(DIR_MODULES.'devices/system_checkstate.php');
/* end injection of {SDevices} */
Communication
- Коммуникация
Методы объекта:
checkState
$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');
}
Класс
Timer
- Время
Свойства класса:
time
- Время, дата, пр.
Методы класса:
onNewMinute
- Каждую минуту
onNewHour
- Каждый час
/*
//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//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
*/
Объекты класса:
ClockChime
Методы объекта:
onNewMinute
$h=(int)date('G',time());
$m=date('i',time());
if (isWeekDay()) {
}
if (timeBetween(getGlobal('NightModeEnd'),getGlobal('NightModeStart')) && 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('pog_fact.vosxod'),getGlobal('pog_fact.zakat')) && getGlobal('isDark')=="1") {
setGlobal("isDark",0);
callMethod('DarknessMode.deactivate');
} elseif (!timeBetween(getGlobal('pog_fact.vosxod'),getGlobal('pog_fact.zakat')) && getGlobal('isDark')!="1") {
setGlobal("isDark",1);
callMethod('DarknessMode.activate');
}
if (timeIs(getGlobal('pog_fact.vosxod'))) {
say('Всходит солнце');
}
if (timeIs(getGlobal('pog_fact.zakat'))) {
say('Солнце заходит',2);
}
if (timeIs("21:30") && (gg("EconomMode.active")!="1") && (gg("NobodyHomeMode.active")=="1")) {
say("Похоже никого нет сегодня, можно сэкономить немного.");
callMethod('EconomMode.activate');
}
if (timeIs(gg('NightModeStart'))) {
callMethod('NightMode.activate');
} elseif (timeIs(gg('NightModeEnd'))) {
callMethod('NightMode.deactivate');
}
if (timeIs("03:00")) {
runScript("systemMaintenance");
}
if (gg('ThisComputer.AlarmStatus') && timeIs(gg('ThisComputer.AlarmTime'))) {
runScript('MorningAlarm');
}
onNewHour
// Дата и время
$h=(int)date('G',time());
// раскидываем дату и время если сейчас 00:00 час
if (($h=="00")) {
$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]="ДЕКАБРЬ";
sg("ThisComputer.DateD",date( "d", time()));
sg("ThisComputer.DateM",date( "m", time()));
sg("ThisComputer.DateY",date( "Y", time()));
sg("ThisComputer.Date",date( "d.m.Y", time()));
sg("ThisComputer.Day",$day[date("w")]);
sg("ThisComputer.Month",$month[date("n")]);
sg("ThisComputer.MonthAlt",$monthAlt[date("n")]);
}
$paths=array('/var/log/*.1','/var/log/*.2',
'/var/log/*.1.*',
'/var/log/*.2.*',
'/var/log/*.3.*',
'/var/log/*.4.*',
'/var/log/*.5.*',
'/var/log/*.6.*',
'/var/log/*.7.*'
);
foreach($paths as $p) {
safe_exec('rm '.$p);
}
runScript('Hourly');
runScript('filesClearOld');
Класс
Users
- Пользователи
Свойства класса:
atHome
- Дома
Coordinates
- Координаты
CoordinatesUpdated
- Координаты обновлено
CoordinatesUpdatedTimestamp
- Координаты Обновленная отметка времени
fullName
- Полное имя
isMoving
- Двигается
seenAt
- видел в
Методы класса:
alarm
- сигнал
goingHome
- иду домой
gotHome
- добрался до дома
Moving
- Движущийся
outOfHome
- вне дома
Объекты класса:
admin
(start|play) music
Код>
runScript('playFavoriteMusic');
|
выключить всё
Шаблон: туши всё|я ухожу|спокойной ночи
|
Нарушение периметра
Код>
say("Нарушение периметра",1);
|
Поговорим о погоде
Шаблон: (Расскажи о погоде)|(Прогноз)
Код>
say("На какой день интересует погода?");
|
Завтра
Шаблон: (на завтра)|(завтра)
|
Сегодня
Шаблон: (на сегодня)|(сегодня)
|
|
Рабочее место
Шаблон: работаем|подготовь рабочее место
|
Статус системы
|
|