[Виджет] состояния системы (процессора) с индикаторами (OHM)

Готовое оформление с исполнительным кодом

Модераторы: immortal, newz20

Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 531 раз
Контактная информация:

Re: [Виджет] состояния системы (процессора) с индикаторами (

Сообщение Vovix » Пт мар 16, 2018 12:27 pm

Alex77 писал(а):...[сообщение выше]..
это, а вопрос то какой ко мне? или не ко мне?
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Alex77
Сообщения: 215
Зарегистрирован: Вс мар 05, 2017 2:18 pm
Благодарил (а): 21 раз
Поблагодарили: 6 раз

Re: [Виджет] состояния системы (процессора) с индикаторами (

Сообщение Alex77 » Пт мар 16, 2018 10:21 pm

Vovix писал(а):
Alex77 писал(а):...[сообщение выше]..
это, а вопрос то какой ко мне? или не ко мне?
Сори с телефона писал, это не к вам, у вас я так понял винда. А мне на линукс нужно.
Alex77
Сообщения: 215
Зарегистрирован: Вс мар 05, 2017 2:18 pm
Благодарил (а): 21 раз
Поблагодарили: 6 раз

Re: [Виджет] состояния системы (процессора) с индикаторами (

Сообщение Alex77 » Пт мар 16, 2018 11:09 pm

Я правильно понял нужно для цвета проца сделать 9 свойств цвета - (для каждого деления) ThisComputer.CPUload_color_'.$i ?
filosoff31
Сообщения: 19
Зарегистрирован: Вс фев 11, 2018 11:39 am
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Re: [Виджет] состояния системы (процессора) с индикаторами (

Сообщение filosoff31 » Пт мар 16, 2018 11:47 pm

Было бы круто для Малинки такое сделать.
За это сообщение автора filosoff31 поблагодарил:
TrDA (Сб мар 17, 2018 1:41 pm)
Рейтинг: 1.16%
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 531 раз
Контактная информация:

Re: [Виджет] состояния системы (процессора) с индикаторами (

Сообщение Vovix » Сб мар 17, 2018 7:58 pm

filosoff31 писал(а):Было бы круто для Малинки такое сделать.
я уже вроде писал... сам виджет не привязан к Windows,
просто у меня для него параметры "приносит" OHM
а вы можете брать их из своих значений, например есть замечательный модуль - Модуль SystemInfo : viewtopic.php?f=5&t=4998
а уже отображайте через виджет
За это сообщение автора Vovix поблагодарил:
Sergey.Chek (Чт фев 18, 2021 4:36 pm)
Рейтинг: 1.16%
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
olegvolk75
Сообщения: 141
Зарегистрирован: Сб мар 11, 2017 7:03 pm
Благодарил (а): 50 раз
Поблагодарили: 15 раз

Re: [Виджет] состояния системы (процессора) с индикаторами (

Сообщение olegvolk75 » Ср мар 21, 2018 11:43 am

filosoff31 писал(а):Было бы круто для Малинки такое сделать.
Адаптировал светлую тему Vovix и webms, код малинки ypiter2006. Немного допилил под свои нужды. С загрузкой ЦП на линуксе для меня не совсем понятно, поправьте, если надо по другому.
MDM.PNG
MDM.PNG (8.77 КБ) 6669 просмотров
Сценарий
СпойлерПоказать

Код: Выделить всё

$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_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);


 
Код виджета
СпойлерПоказать

Код: Выделить всё

<style type="text/css">
    progress { -webkit-appearance: none; height: 14px; width: 120px; } 
    progress[value]::-webkit-progress-bar { background-color:rgb(245, 245, 245); border-radius: 3px; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.2) inset; }
    progress[value]::-webkit-progress-value { border-radius: 3px; } 
    s_grey progress[value]::-webkit-progress-value { background-color: grey; } 
    s_yellow progress[value]::-webkit-progress-value { background-color:rgb(255, 235, 59); } 
    s_greenyellow progress[value]::-webkit-progress-value { background-color: greenyellow; } 
    s_lime progress[value]::-webkit-progress-value { background-color:rgb(0, 220, 9); } 
    s_green progress[value]::-webkit-progress-value { background-color: green; } 
    s_orange progress[value]::-webkit-progress-value { background-color: orange; } 
    s_red progress[value]::-webkit-progress-value { background-color:rgb(255, 33, 17); } 
    div.vov { width: 12px; line-height: 3px; font-size: 18px; float: left; margin-top: -7px; padding-bottom: 14px; } 
    div.vov-cont { float: right; } 
    .wp-table { width: 100%; margin: 1 auto; border-collapse: collapse; font-size: 12px; color:rgb(0, 0, 0); } 
    .wp-table tr:nth-child(odd) { background-color: fff; } 
    .wp-table tr:nth-child(even) { background-color: rgb(249, 249, 249); } 
    .wp-table td { padding: 2px; }
</style>
<div align="center" style="text-shadow: none;">
    <table class="wp-table">
        <tbody>
            <tr>
                <!-- 
                <td colspan="3" align="center"> <b>CPU: <span style="font-size:12px;">%ServInfo.CPUtip%</span></b><br/>
                </td>
                -->
            </tr>
            <tr>
                <td><br> Громкос. сист.<br><br>
                </td>
                <td align="left">
                    <div class="vov-cont">
                        <s_lime><progress value="%ThisComputer.volumeLevel%" max="100"></progress></s_lime>
                    </div>
                </td>
                <td>&nbsp;<span style="font-size:12px; ">%ThisComputer.volumeLevel%</span>&nbsp;%</td>
            </tr>
            <tr>
                <td>Загрузка CPU</td>
                <td align="left">
                    <!-- блок вывода гистограммы загрузки CPU -->
                    <div class="vov-cont">
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUload_color_9%">%ThisComputer.CPUload_9%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUload_color_8%">%ThisComputer.CPUload_8%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUload_color_7%">%ThisComputer.CPUload_7%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUload_color_6%">%ThisComputer.CPUload_6%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUload_color_5%">%ThisComputer.CPUload_5%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUload_color_4%">%ThisComputer.CPUload_4%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUload_color_3%">%ThisComputer.CPUload_3%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUload_color_2%">%ThisComputer.CPUload_2%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUload_color_1%">%ThisComputer.CPUload_1%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUload_color_0%">%ThisComputer.CPUload_0%</b>
                        </div>
                    </div> <br>
                </td>
                <td>&nbsp;<span style="font-size:12px; ">%ThisComputer.CPUload%</span>&nbsp;%</td>
                 </tr>
            <tr>
                <td>Температ. CPU</td>
                <td align="left">
                    <!-- блок вывода гистограммы температуры CPU -->
                    <div class="vov-cont">
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUtemp_color_9%">%ThisComputer.CPUtemp_9%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUtemp_color_8%">%ThisComputer.CPUtemp_8%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUtemp_color_7%">%ThisComputer.CPUtemp_7%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUtemp_color_6%">%ThisComputer.CPUtemp_6%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUtemp_color_5%">%ThisComputer.CPUtemp_5%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUtemp_color_4%">%ThisComputer.CPUtemp_4%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUtemp_color_3%">%ThisComputer.CPUtemp_3%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUtemp_color_2%">%ThisComputer.CPUtemp_2%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUtemp_color_1%">%ThisComputer.CPUtemp_1%</b>
                        </div>
                        <div class="vov">
                            <b style="color:%ThisComputer.CPUtemp_color_0%">%ThisComputer.CPUtemp_0%</b>
                        </div>
                    </div> <br>
                </td>
                <td>&nbsp;<span style="font-size:12px; ">%ThisComputer.CPUtemp%</span>&nbsp;°C</td>
            </tr>
             
            <tr>
                <td><br> Занято ОЗУ<br><br></td>
                <td align="left">
                 <div class="vov-cont"><span style="font-size: 9px; float: left;">%ThisComputer.memory_usage% Mb</span><span style="font-size: 9px; float: right;"></span><span style="font-size: 9px; float: right;">%ThisComputer.memory_total% Mb</span><br>
                    <div class="vov-cont">
                        <s_%ThisComputer.System_memory_color%><progress value="%ThisComputer.System_memory%" max="100"></progress></s_%ThisComputer.System_memory_color%>
                    </div>
                </td>
                <td>&nbsp;<span style="font-size:12px; ">%ThisComputer.System_memory%</span>&nbsp;%</td>
            </tr>
            
            <tr>
                <td><br>Занято SD<br><br></td>
                <td align="left">
                 <div class="vov-cont"><span style="font-size: 9px; float: left;">%ThisComputer.DISKused% Gb</span><span style="font-size: 9px; float: right;"></span><span style="font-size: 9px; float: right;">32 Gb</span><br>
                    <div class="vov-cont">
                        <s_%ThisComputer.DISKused_color%><progress value="%ThisComputer.DISKusedPersent%" max="100"></progress></s_%ThisComputer.DISKused_color%>
                    </div>
                </td>
                <td>&nbsp;<span style="font-size:12px; ">%ThisComputer.DISKusedPersent%</span>&nbsp;%</td>
            </tr>    

            
                <td align="left"><br> Uptime<br><br></td>
                <td colspan="2" align="left">
                <img style="margin-bottom:3px;"  align="absmiddle"> <span title="Рекорд %ThisComputer.System_uptime%">%ThisComputer.System_uptime%</span><br/>
                </td>
            </tr>
        </tbody>
    </table>
</div> 
За это сообщение автора olegvolk75 поблагодарил:
Sergey.Chek (Чт фев 18, 2021 4:36 pm)
Рейтинг: 1.16%
Orange Pi PCPlus, Debian Stretch with Armbian Linux 4.19.62-sunxi
vitar78
Сообщения: 128
Зарегистрирован: Пт июл 15, 2016 3:12 am
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Re: [Виджет] состояния системы (процессора) с индикаторами (

Сообщение vitar78 » Чт мар 29, 2018 4:26 pm

чтото случилось не пойму вставляю обект %ServerInfo.HDDused% а но при сохранении вставляет текущее число

ничего не менялось в синтаксисе ?

Код: Выделить всё

</style>

<div align="center" style="font-size:14px;"><span style="font-size:24px; color:orange;"><b>Алиса</b></span><br>
    <table class="wp-table">
        <tbody>
                </tr>
       
            <tr>
                <td><br>Занято HDD<br><br></td>
                 <td align="left"><div class="vov-cont"><s_><progress value="31.4" max="100"></progress></s_></div></td>
                <td>&nbsp;<span style="font-size:12px; color:orange;">37.8</span>&nbsp;%</td>
            </tr>

 
Аватара пользователя
Vovix
Сообщения: 1155
Зарегистрирован: Пн янв 27, 2014 1:43 am
Откуда: г.Ижевск
Благодарил (а): 60 раз
Поблагодарили: 531 раз
Контактная информация:

Re: [Виджет] состояния системы (процессора) с индикаторами (

Сообщение Vovix » Пт мар 30, 2018 12:25 pm

vitar78 писал(а):чтото случилось не пойму вставляю обект %ServerInfo.HDDused% а но при сохранении вставляет текущее число

ничего не менялось в синтаксисе ?

Код: Выделить всё

</style>

<div align="center" style="font-size:14px;"><span style="font-size:24px; color:orange;"><b>Алиса</b></span><br>
    <table class="wp-table">
        <tbody>
                </tr>
       
            <tr>
                <td><br>Занято HDD<br><br></td>
                 <td align="left"><div class="vov-cont"><s_><progress value="31.4" max="100"></progress></s_></div></td>
                <td>&nbsp;<span style="font-size:12px; color:orange;">37.8</span>&nbsp;%</td>
            </tr>

почитайте... это общая проблема - у всех!!
Мой -CONNECT-
Windows 7(PHP 7.2) + Raspberry Pi(освещение на 1-Wire) + MP751(управление) + ESP8266(сенсоры) + LAN(сенсоры)
-=: Если вам помогло моё сообщение, нажмите кнопку "Поблагодарить за сообщение автора: Vovix" (кнопка Спасибо) справа! :=-
Аватара пользователя
slgeo
Сообщения: 551
Зарегистрирован: Чт фев 05, 2015 2:35 pm
Откуда: РнД
Благодарил (а): 139 раз
Поблагодарили: 74 раза

Re: [Виджет] состояния системы (процессора) с индикаторами (

Сообщение slgeo » Пт мар 30, 2018 1:34 pm

Vovix писал(а): почитайте... это общая проблема - у всех!!
А зачем про руку так жирно-крупно и почти красным?
Raspberry Pi2 Model B + NRF24L01 (MySensors) + 1-Wire + Esp8266 (WiFi-IoT)
CONNECT
vitar78
Сообщения: 128
Зарегистрирован: Пт июл 15, 2016 3:12 am
Благодарил (а): 6 раз
Поблагодарили: 2 раза

Re: [Виджет] состояния системы (процессора) с индикаторами (

Сообщение vitar78 » Пт мар 30, 2018 5:01 pm

Vovix писал(а):
vitar78 писал(а):чтото случилось не пойму вставляю обект %ServerInfo.HDDused% а но при сохранении вставляет текущее число

ничего не менялось в синтаксисе ?

Код: Выделить всё

</style>

<div align="center" style="font-size:14px;"><span style="font-size:24px; color:orange;"><b>Алиса</b></span><br>
    <table class="wp-table">
        <tbody>
                </tr>
       
            <tr>
                <td><br>Занято HDD<br><br></td>
                 <td align="left"><div class="vov-cont"><s_><progress value="31.4" max="100"></progress></s_></div></td>
                <td>&nbsp;<span style="font-size:12px; color:orange;">37.8</span>&nbsp;%</td>
            </tr>

 
почитайте... это общая проблема - у всех!!
Хм чет не нашел, а где почитать
Ответить