Cam_ask
|
Опрос состояний включения камер
rs('ESP_ask', array('param1'=>'Camera60'));
rs('ESP_ask', array('param1'=>'Camera61'));
rs('ESP_ask', array('param1'=>'Camera62'));
rs('ESP_ask', array('param1'=>'Camera63'));
rs('ESP_ask', array('param1'=>'Balkon_vegetables'));
rs('ESP_ask', array('param1'=>'Poliv79'));
rs('ESP_ask', array('param1'=>'Poliv73'));
sg ('ThisComputer.Count', gg('ThisComputer.Count')+10);
setTimeOut("timer_Cam_ask", "runScript('Cam_ask');", 31);
|
Door_ask
|
Опрос состояния входной двери
rs('ESP_ask', array('param1'=>'Door'));
//sg ('ThisComputer.Count', gg('ThisComputer.Count')+1);
//setTimeOut("timer_Door_ask", "runScript('Door_ask');", 10);
|
ESP_ask
|
$obj=getObject($params['param1']);
$ip_send="http://".$obj->getProperty("ip")."/gpio";
$state = file_get_contents($ip_send); // посылаем запрос вида http://192.168.1.76/gpio
$a=-1;
if( strpos($state,"{") == 0 && strpos($state,"}") == strlen($state)-1) // проверяем что пришел полностью ответ в форме json
{
if($obj->getProperty("ping")>=3) say("Cвязь с ".$params['param1']." восстановлена");
$obj->setProperty("ping",0); // обнуляем счетчик отсутствия в сети
$state=json_decode($state,true);
if($state["t"]!="nan") $state["t"]=$state["t"]/10;
if($state["h"]!="nan") $state["h"]=$state["h"]/10;
$obj->setProperty("temp",$state["t"]);
$obj->setProperty("hum",$state["h"]);
$a=$state["g4"];
}
if($a==1 || $a==0) $obj->setProperty("answer",$a); // заносим состояние выключателя
else {
$a=$obj->getProperty("ping");
if($a==3)
{
$obj->setProperty("laststate",$obj->getProperty("answer"));
$obj->setProperty("answer",3);
say("Нет связи с ".$params['param1']);
$obj->setProperty("temp","..."); // прописываем символы в показания температуры и влажности.
$obj->setProperty("hum","...");
}
$obj->setProperty("ping",$a+1); //увеличиваем счетчик отсутствия в сети объекта
}
|
MonitorSist
|
$color = "grey";
$g_line[0] = " ";
$g_line[1] = " _";
$g_line[2] = " _ _";
$g_line[3] = " _ _ _";
$g_line[4] = " _ _ _ _";
$g_line[5] = " _ _ _ _ _";
$g_line[6] = " _ _ _ _ _ _";
$g_line[7] = " _ _ _ _ _ _ _";
$g_line[8] = " _ _ _ _ _ _ _ _";
$g_line[9] = " _ _ _ _ _ _ _ _ _";
$g_line[10] = " _ _ _ _ _ _ _ _ _ _";
$g_line[11] = " _ _ _ _ _ _ _ _ _ _ _";
$g_line[12] = " _ _ _ _ _ _ _ _ _ _ _ _";
$g_line[13] = " _ _ _ _ _ _ _ _ _ _ _ _ _";
$g_line[14] = " _ _ _ _ _ _ _ _ _ _ _ _ _ _";
$g_line[15] = "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _";
//----------------------- Название процессора ---------------------------------------------------------
$cpu_tip = exec("cat /proc/cpuinfo | grep Hardware | awk '{print $3}'");
sg('ThisComputer.CPUtip', $cpu_tip);
// -------------------- Температура процессора --------------------------------------------------------
$cpu_temp=shell_exec('cat /sys/class/thermal/thermal_zone0/temp') / 1000;
$cpu_temp=round($cpu_temp,0);
sg("ThisComputer.CPUtemp",$cpu_temp);
$maxtemp = 75;
$mintemp = 25;
$kf = ($maxtemp - $mintemp)/15; // 15 это делений на индикаторе
sg('ThisComputer.CPUtemp', $cpu_temp);
$t15 = round (($cpu_temp - $mintemp) / $kf); // чтобы шкала начиналась с $mintemp
if ($cpu_temp <= $mintemp) {
$t15 = 0; // и оганичим нижнее значение на 0
} elseif ($cpu_temp >= $maxtemp) {
$t15 = 15; // ограничим максимум на 15 делений
}
$t15_line = $g_line[$t15];
sg('ThisComputer.CPUtemp_-1', $t15_line);
// и цвет для неё
if (($cpu_temp >= 0) && ($cpu_temp < 45)) {
$color = 'lime';
} else if (($cpu_temp >= 45) && ($cpu_temp < 60)) {
$color = 'greenyellow';
} else if (($cpu_temp >= 60) && ($cpu_temp < 70)) {
$color = 'yellow';
} else if ($cpu_temp >= 70) {
$color = 'red';
} else {
$color = 'grey';
}
sg ('ThisComputer.CPUtemp_color', $color);
sg ('ThisComputer.CPUtemp_color_-1', $color);
// сдвинем значения с вылетом последнего
for ($i = 9; $i >= 0; $i--) {
$j = $i - 1;
sg ('ThisComputer.CPUtemp_'.$i, gg('ThisComputer.CPUtemp_'.$j));
sg ('ThisComputer.CPUtemp_color_'.$i, gg('ThisComputer.CPUtemp_color_'.$j));
}
//---------------------- Загрузка процессора -----------------------------------------------------
//$cpu_load=gg(ThisComputer.CPU_usage); //shell_exec('cat /proc/loadavg');
$cpu_load=(exec("top -bn 1 | awk '{print $9}' | tail -n +8 | awk '{s+=$1} END {print s}'"))/4;
$cpu_load=round($cpu_load,0);
setGlobal("ThisComputer.CPUload",$cpu_load);
$l15 = round ($cpu_load / 6.66); // чтобы из 15 значений 100/15 = 6,(6)
$l15_line = $g_line[$l15];
sg('ThisComputer.CPUload_-1', $l15_line);
// и цвет для неё
if (($cpu_load >= 0) && ($cpu_load < 30)) {
$color = 'lime';
} else if (($cpu_load >= 30) && ($cpu_load < 45)) {
$color = 'greenyellow';
} else if (($cpu_load >= 45) && ($cpu_load < 60)) {
$color = 'yellow';
} else if ($cpu_load >= 60) {
$color = 'red';
} else {
$color = 'grey';
}
sg ('ThisComputer.CPUload_color', $color);
sg ('ThisComputer.CPUload_color_-1', $color);
// сдвинем значения с вылетом последнего
for ($i = 9; $i >= 0; $i--) {
$j = $i - 1;
sg ('ThisComputer.CPUload_'.$i, gg('ThisComputer.CPUload_'.$j));
sg ('ThisComputer.CPUload_color_'.$i, gg('ThisComputer.CPUload_color_'.$j));
}
// -------------------- Использование ОЗУ -------------------------------------------------------------
$mem_total=exec("cat /proc/meminfo | grep MemTotal | awk '{print $2}'");
$mem_free=exec("cat /proc/meminfo | grep MemFree | awk '{print $2}'");
$mem_usage=$mem_total-$mem_free;
$sys_memory=round($mem_usage*100/$mem_total,0);
$mem_free=round($mem_free/1024,0);
$mem_total=round($mem_total/1024,0);
$mem_usage=round($mem_usage/1024,0);
sg("ThisComputer.memory_free",$mem_free);
sg("ThisComputer.memory_total",$mem_total);
sg("ThisComputer.memory_usage",$mem_usage);
sg("ThisComputer.System_memory",$sys_memory);
//say('total: '.$mem_total/1024);
//say('usage: '.$mem_usage/1024);
//say('free: '.$mem_free/1024);
$color = ($sys_memory < 80) ? "lime" : "red";
sg ('ThisComputer.System_memory_color', $color);
// -------------------- Использование Флеш-карты -------------------------------------------------------------
$bytes = disk_free_space(".");
$si_prefix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' );
$base = 1024;
$class = min((int)log($bytes , $base) , count($si_prefix) - 1);
$disk_used = round($bytes / pow($base,$class)); // . ' ' . $si_prefix[$class];
$disk_used_percent = round($disk_used*100/32, 0);
setGlobal('ThisComputer.DISKused', $disk_used);
setGlobal('ThisComputer.DISKusedPersent', $disk_used_percent);
$color = ($disk_used < 80) ? "lime" : "red";
sg ('ThisComputer.DISKused_color', $color);
// -------------------- преобразование Uptime ----------------------------------------------------------
//System uptime
$sys_uptime=shell_exec("uptime");
$sys_uptime = explode(" up ", $sys_uptime);
$sys_uptime = explode(",", $sys_uptime[1]);
$sys_uptime = $sys_uptime[0]; // .", ".$sys_uptime[1];
setGlobal("ThisComputer.System_uptime",$sys_uptime);
/**
* Секунды в строку
* Эта функция возвращает кол-во секунд преобразованное в дни, часы, минуты, секунды
*
* @param integer $seconds всего время в секундах.
* @return string "1234567" возвращает "14 дн., 6 час., 56 мин., 7 сек.".
*/
function secondsToString($seconds) {
$result = '';
if ($seconds >= 86400) {
$days = floor($seconds / 86400);
$seconds = $seconds % 86400;
$result = $days.' д., ';
}
if ($seconds >= 3600) {
$hours = floor($seconds / 3600);
$seconds = $seconds % 3600;
$result .= $hours.' час., ';
}
if ($seconds >= 60) {
$minutes = floor($seconds / 60);
$seconds = $seconds % 60;
$result .= $minutes.' мин., ';
}
$result .= $seconds.' сек.';
return $result;
}
|
MonitorSist_OHM
|
$color = "grey";
$g_line[0] = " ";
$g_line[1] = " _";
$g_line[2] = " _ _";
$g_line[3] = " _ _ _";
$g_line[4] = " _ _ _ _";
$g_line[5] = " _ _ _ _ _";
$g_line[6] = " _ _ _ _ _ _";
$g_line[7] = " _ _ _ _ _ _ _";
$g_line[8] = " _ _ _ _ _ _ _ _";
$g_line[9] = " _ _ _ _ _ _ _ _ _";
$g_line[10] = " _ _ _ _ _ _ _ _ _ _";
$g_line[11] = " _ _ _ _ _ _ _ _ _ _ _";
$g_line[12] = " _ _ _ _ _ _ _ _ _ _ _ _";
$g_line[13] = " _ _ _ _ _ _ _ _ _ _ _ _ _";
$g_line[14] = " _ _ _ _ _ _ _ _ _ _ _ _ _ _";
$g_line[15] = "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _";
$ch = curl_init('http://127.0.0.1:8085/data.json');//здесь заменить IP на свой http://*:8085/data.json
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$ohm = curl_exec($ch);
$json = json_decode($ohm);
//----------------------- Вытягиваем данные
//$CPU_Fan = $json -> {'Children'}[0] -> {'Children'}[0] -> {'Children'}[0] ->{'Children'}[2] -> {'Children'}[0] -> {'Value'};
//$cpu_temp = $json -> {'Children'}[0] -> {'Children'}[0] -> {'Children'}[0] ->{'Children'}[1] -> {'Children'}[0] -> {'Value'};
$cpu_temp = $json -> {'Children'}[0] -> {'Children'}[1] -> {'Children'}[1] -> {'Children'}[0] -> {'Value'};
$cpu_tip = $json -> {'Children'}[0] -> {'Children'}[1] -> {'Text'};
$cpu_load = $json -> {'Children'}[0] -> {'Children'}[1] -> {'Children'}[2] ->{'Children'}[2] -> {'Value'};
$mem_usage = $json -> {'Children'}[0] -> {'Children'}[2] -> {'Children'}[1] ->{'Children'}[0] -> {'Value'};
$mem_free = $json -> {'Children'}[0] -> {'Children'}[2] -> {'Children'}[1] ->{'Children'}[1] -> {'Value'};
$mem_total=$mem_usage+$mem_free;
$disk_used_percent = $json -> {'Children'}[0] -> {'Children'}[3] -> {'Children'}[1] -> {'Children'}[0] -> {'Value'};
$disk_used_percent*=1;
$disk_used = 128*$disk_used_percent/100;
//$sys_memory=$mem_usage = $json -> {'Children'}[0] -> {'Children'}[2] -> {'Children'}[0] ->{'Children'}[0] -> {'Value'};
//----------------------- Название процессора ---------------------------------------------------------
//$cpu_tip = exec("cat /proc/cpuinfo | grep Hardware | awk '{print $3}'");
sg('ThisComputer.CPUtip', $cpu_tip);
// -------------------- Температура процессора --------------------------------------------------------
//$cpu_temp=shell_exec('cat /sys/class/thermal/thermal_zone0/temp') / 1000;
$cpu_temp=round($cpu_temp,0);
sg("ThisComputer.CPUtemp",$cpu_temp);
$maxtemp = 75;
$mintemp = 25;
$kf = ($maxtemp - $mintemp)/15; // 15 это делений на индикаторе
sg('ThisComputer.CPUtemp', $cpu_temp);
$t15 = round (($cpu_temp - $mintemp) / $kf); // чтобы шкала начиналась с $mintemp
if ($cpu_temp <= $mintemp) {
$t15 = 0; // и оганичим нижнее значение на 0
} elseif ($cpu_temp >= $maxtemp) {
$t15 = 15; // ограничим максимум на 15 делений
}
$t15_line = $g_line[$t15];
sg('ThisComputer.CPUtemp_-1', $t15_line);
// и цвет для неё
if (($cpu_temp >= 0) && ($cpu_temp < 45)) {
$color = 'lime';
} else if (($cpu_temp >= 45) && ($cpu_temp < 60)) {
$color = 'greenyellow';
} else if (($cpu_temp >= 60) && ($cpu_temp < 70)) {
$color = 'yellow';
} else if ($cpu_temp >= 70) {
$color = 'red';
} else {
$color = 'grey';
}
sg ('ThisComputer.CPUtemp_color', $color);
sg ('ThisComputer.CPUtemp_color_-1', $color);
// сдвинем значения с вылетом последнего
for ($i = 9; $i >= 0; $i--) {
$j = $i - 1;
sg ('ThisComputer.CPUtemp_'.$i, gg('ThisComputer.CPUtemp_'.$j));
sg ('ThisComputer.CPUtemp_color_'.$i, gg('ThisComputer.CPUtemp_color_'.$j));
}
//---------------------- Загрузка процессора -----------------------------------------------------
//$cpu_load=gg(ThisComputer.CPU_usage); //shell_exec('cat /proc/loadavg');
//$cpu_load=(exec("top -bn 1 | awk '{print $9}' | tail -n +8 | awk '{s+=$1} END {print s}'"))/4;
$cpu_load=round($cpu_load,0);
setGlobal("ThisComputer.CPUload",$cpu_load);
$l15 = round ($cpu_load / 6.66); // чтобы из 15 значений 100/15 = 6,(6)
$l15_line = $g_line[$l15];
sg('ThisComputer.CPUload_-1', $l15_line);
// и цвет для неё
if (($cpu_load >= 0) && ($cpu_load < 30)) {
$color = 'lime';
} else if (($cpu_load >= 30) && ($cpu_load < 45)) {
$color = 'greenyellow';
} else if (($cpu_load >= 45) && ($cpu_load < 60)) {
$color = 'yellow';
} else if ($cpu_load >= 60) {
$color = 'red';
} else {
$color = 'grey';
}
sg ('ThisComputer.CPUload_color', $color);
sg ('ThisComputer.CPUload_color_-1', $color);
// сдвинем значения с вылетом последнего
for ($i = 9; $i >= 0; $i--) {
$j = $i - 1;
sg ('ThisComputer.CPUload_'.$i, gg('ThisComputer.CPUload_'.$j));
sg ('ThisComputer.CPUload_color_'.$i, gg('ThisComputer.CPUload_color_'.$j));
}
// -------------------- Использование ОЗУ -------------------------------------------------------------
//$mem_total=exec("cat /proc/meminfo | grep MemTotal | awk '{print $2}'");
//$mem_free=exec("cat /proc/meminfo | grep MemFree | awk '{print $2}'");
//$mem_usage=$mem_total-$mem_free;
$sys_memory=round($mem_usage*100/$mem_total,0);
$mem_free=round($mem_free/1024,0);
$mem_total=round($mem_total/1024,0);
$mem_usage=round($mem_usage/1024,0);
sg("ThisComputer.memory_free",$mem_free);
sg("ThisComputer.memory_total",$mem_total);
sg("ThisComputer.memory_usage",$mem_usage);
sg("ThisComputer.System_memory",$sys_memory);
//say('total: '.$mem_total/1024);
//say('usage: '.$mem_usage/1024);
//say('free: '.$mem_free/1024);
$color = ($sys_memory < 80) ? "lime" : "red";
sg ('ThisComputer.System_memory_color', $color);
// -------------------- Использование Флеш-карты -------------------------------------------------------------
$bytes = 128;//disk_free_space(".");
$si_prefix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' );
$base = 1024;
$class = min((int)log($bytes , $base) , count($si_prefix) - 1);
//$disk_used = round($bytes / pow($base,$class)); // . ' ' . $si_prefix[$class];
//$disk_used_percent = round($disk_used*100/32, 0);
setGlobal('ThisComputer.DISKused', $disk_used);
setGlobal('ThisComputer.DISKusedPersent', $disk_used_percent);
$color = ($disk_used < 80) ? "lime" : "red";
sg ('ThisComputer.DISKused_color', $color);
// -------------------- преобразование Uptime ----------------------------------------------------------
/*
//System uptime
$sys_uptime=shell_exec("uptime");
$sys_uptime = explode(" up ", $sys_uptime);
$sys_uptime = explode(",", $sys_uptime[1]);
$sys_uptime = $sys_uptime[0]; // .", ".$sys_uptime[1];
setGlobal("ThisComputer.System_uptime",$sys_uptime);
*/
/**
* Секунды в строку
* Эта функция возвращает кол-во секунд преобразованное в дни, часы, минуты, секунды
*
* @param integer $seconds всего время в секундах.
* @return string "1234567" возвращает "14 дн., 6 час., 56 мин., 7 сек.".
*/
function secondsToString($seconds) {
$result = '';
if ($seconds >= 86400) {
$days = floor($seconds / 86400);
$seconds = $seconds % 86400;
$result = $days.' д., ';
}
if ($seconds >= 3600) {
$hours = floor($seconds / 3600);
$seconds = $seconds % 3600;
$result .= $hours.' час., ';
}
if ($seconds >= 60) {
$minutes = floor($seconds / 60);
$seconds = $seconds % 60;
$result .= $minutes.' мин., ';
}
$result .= $seconds.' сек.';
return $result;
}
|
reboot_md
|
say ("Будет произведен рестарт системы", 2);
safe_exec('c:\_majordomo\apps\nircmd\nircmd.exe script "c:\_majordomo\reboot_md.ncl"');
|
restart_md
|
say ("Произошло падение системы!", 2);
setGlobal('cycle_pingControl','restart');
say ("Произведен рестарт циклов!", 2);
|
timer_Xs
|
runScript('MonitorSist_OHM');
runScript('Door_ask');
sg ('ThisComputer.Count', gg('ThisComputer.Count')+1);
setTimeOut("timer_Xs_timeout", "runScript('timer_Xs');", 10);
|
zapusk_ask
|
runScript('timer_Xs');
runScript('Door_ask');
runScript('Cam_ask');
|