/**************************************
* Обработка данных OHM *
* by Vovix *
* 17.02.2018 г. *
**************************************/
//----------------------- Подключаемся к OHM ------------------------------------------------------
$ch = curl_init('http://192.168.0.102:8085/data.json');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$ohm = curl_exec($ch);
$json = json_decode($ohm);
//----------------------- Вытягиваем данные ----------------------------------------------------
$cpu_tip = $json -> {'Children'}[0] ->{'Children'}[1] -> {'Text'};
$cpu_temp = (float) $json -> {'Children'}[0] -> {'Children'}[1] -> {'Children'}[1] -> {'Children'}[2] -> {'Value'};
$cpu_load = (float) $json -> {'Children'}[0] -> {'Children'}[1] -> {'Children'}[2] -> {'Children'}[0] -> {'Value'};
$disk_used = (float) $json -> {'Children'}[0] -> {'Children'}[3] -> {'Children'}[1] -> {'Children'}[0] -> {'Value'};
$Memory = (float) $json -> {'Children'}[0] -> {'Children'}[2] -> {'Children'}[0] ->{'Children'}[0] -> {'Value'};
$TempHDD = (float) $json -> {'Children'}[0] -> {'Children'}[3] -> {'Children'}[0] -> {'Children'}[0] -> {'Value'};
//$mb_fan =(float) $json -> {'Children'}[0] -> {'Children'}[2] -> {'Children'}[1] -> {'Children'}[0] -> {'Value'};
//----------------------- Память на диске ----------------------------------------------------
$freeHDD = disk_free_space(".");
$totalHDD = disk_total_space(".");
$si_prefix = array( 'B', 'KB', 'MB', 'GB', 'TB', 'EB', 'ZB', 'YB' );
$base = 1024;
$classHDD = min((int)log($freeHDD , $base) , count($si_prefix) - 1);
$class2HDD = min((int)log($totalHDD , $base) , count($si_prefix) - 1);
$echofreeHDD = sprintf('%1.2f' , $freeHDD / pow($base,$classHDD));
$echototalHDD = sprintf('%1.2f' , $totalHDD / pow($base,$class2HDD));
$zanyato = intval($echototalHDD) - intval($echofreeHDD);
setGlobal('ServInfo.freeHDD',intval($echofreeHDD));
setGlobal('ServInfo.zanyatoHDD',intval($zanyato));
setGlobal('ServInfo.totalHDD',intval($echototalHDD));
//----------------------- Сегодняшняя дата ----------------------------------------------------
$days = array( 1 => 'Понедельник' , 'Вторник' , 'Среда' , 'Четверг' , 'Пятница' , 'Суббота' , 'Воскресенье' );
$day = date('d.m.y — '.$days[date( 'N' )]);
setGlobal('ThisComputer.data_day',$day);
//----------------------- Присваеваем данные ----------------------------------------------------
$color = "grey";
sg('ServInfo.CPUtip', $cpu_tip);
$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] = "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _";
//--------------------- скорость вентилятора ----------------------------------------------------
/*
sg('ServInfo.MBfan1', $mb_fan);
$maxfan = gg('ServInfo.maxfan'); // максимальное значене которое было
$minfan = gg('ServInfo.minfan'); // минимальное значене которое было
if ($mb_fan > $maxfan) {
sg('ServInfo.maxfan', $mb_fan);
$maxfan = $mb_fan;
}
if ($mb_fan < $minfan) {
sg('ServInfo.minfan', $mb_fan);
$minfan = $mb_fan;
}
// вычтем и приведем к процентам
$prchs = (($mb_fan - $minfan) < 0) ? 0 : ($mb_fan - $minfan);
$prznm = (($maxfan - $minfan) <= 0) ? 1 : ($maxfan - $minfan);
$x = round ($prchs * 100 / $prznm);
sg('ServInfo.MBfan1_100', $x);
*/
//---------------------- загрузка процессора -----------------------------------------------------
sg('ServInfo.CPUload', $cpu_load);
$l15 = round ($cpu_load / 4); // чтобы из 15 значений 100/15 = 6,(6)
$l15_line = $g_line[$l15];
sg('ServInfo.CPUload_-1', $l15_line);
// и цвет для неё
if (($cpu_load >= 0) && ($cpu_load < 20)) {
$color = 'rgb(0, 219, 7);'; //green
} else if (($cpu_load >= 20) && ($cpu_load < 30)) {
$color = 'rgb(2, 175, 7);'; //greenyellow
} else if (($cpu_load >= 30) && ($cpu_load < 50)) {
$color = 'rgb(255, 193, 7);'; //yellow
} else if ($cpu_load >= 50) {
$color = 'rgb(255, 33, 17);'; //red
} else {
$color = 'grey;'; //grey
}
sg ('ServInfo.CPUload_color', $color);
sg ('ServInfo.CPUload_color_-1', $color);
// сдвинем значения с вылетом последнего
for ($i = 9; $i >= 0; $i--) {
$j = $i - 1;
sg ('ServInfo.CPUload_'.$i, gg('ServInfo.CPUload_'.$j));
sg ('ServInfo.CPUload_color_'.$i, gg('ServInfo.CPUload_color_'.$j));
}
// -------------------- Температура процессора --------------------------------------------------------
$maxtemp = 70;
$mintemp = 42;
$kf = ($maxtemp - $mintemp)/15; // 15 это делений на индикаторе
sg('ServInfo.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('ServInfo.CPUtemp_-1', $t15_line);
// и цвет для неё
if (($cpu_temp >= 0) && ($cpu_temp < 48)) {
$color = 'rgb(0, 219, 7);'; //green
} else if (($cpu_temp >= 48) && ($cpu_temp < 50)) {
$color = 'rgb(2, 175, 7);'; //greenyellow
} else if (($cpu_temp >= 50) && ($cpu_temp < 60)) {
$color = 'rgb(255, 193, 7);'; //yellow
} else if ($cpu_temp >= 60) {
$color = 'rgb(255, 33, 17);'; //red
} else {
$color = 'grey;'; //grey
}
sg ('ServInfo.CPUtemp_color', $color);
sg ('ServInfo.CPUtemp_color_-1', $color);
// сдвинем значения с вылетом последнего
for ($i = 9; $i >= 0; $i--) {
$j = $i - 1;
sg ('ServInfo.CPUtemp_'.$i, gg('ServInfo.CPUtemp_'.$j));
sg ('ServInfo.CPUtemp_color_'.$i, gg('ServInfo.CPUtemp_color_'.$j));
}
// -------------------- Использование ОЗУ -------------------------------------------------------------
setGlobal('ServInfo.ServerMemory', $Memory);
$color = ($Memory < 85) ? "lime" : "red";
sg ('ServInfo.ServerMemory_color', $color);
// -------------------- Температура HDD -------------------------------------------------------------
setGlobal('ServInfo.HddTemp', $TempHDD);
if (($TempHDD >= 0) && ($TempHDD < 30)) {
$color = 'red'; //red
} else if (($TempHDD >= 30) && ($TempHDD < 52)) {
$color = 'lime'; //green
} else if (($TempHDD >= 45) && ($TempHDD < 52)) {
$color = 'yellow'; //yellow
} else if ($TempHDD >= 52) {
$color = 'red'; //red
} else {
$color = 'grey;'; //grey
}
sg ('ServInfo.HddTemp_color', $color);
// -------------------- Использование HDD -------------------------------------------------------------
setGlobal('ServInfo.DISKused', $disk_used);
if (($disk_used >= 0) && ($disk_used < 50)) {
$color = 'lime'; //green
} else if (($disk_used >= 50) && ($disk_used < 80)) {
$color = 'yellow'; //yellow
} else if ($disk_used >= 80) {
$color = 'red;'; //red
} else {
$color = 'grey;'; //grey
}
sg ('ServInfo.DISKused_color', $color);
// -------------------- преобразование Uptime -----------------------------------------------------------
$uptime = gg('ThisComputer.uptime');
$uptime_str = secondsToString($uptime);
sg ('ThisComputer.uptime_str', $uptime_str);