[Сценарий] Анализ периода от начала суток и построение индикатора

Не требует установки программ или изменения файлов

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

MaxVM
Сообщения: 63
Зарегистрирован: Вт янв 10, 2017 2:26 pm
Благодарил (а): 7 раз
Поблагодарили: 0

Re: [Сценарий] Анализ периода от начала суток и построение индикатора

Сообщение MaxVM » Чт ноя 14, 2019 6:27 pm

Как бы понять что означает

$tmr_mem = 0; //накопитель времени в секундах

В коде
MaxVM
Сообщения: 63
Зарегистрирован: Вт янв 10, 2017 2:26 pm
Благодарил (а): 7 раз
Поблагодарили: 0

Re: [Сценарий] Анализ периода от начала суток и построение индикатора

Сообщение MaxVM » Чт ноя 14, 2019 6:39 pm

Такой массив получаю
СпойлерПоказать
Array ( [0] => Array ( [ID] => 1523583 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:33:23 [VALUE] => 1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=62.3&OLD_VALUE=62.2&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D62.3%26uptime%3D2267700%26errconn%3D18%26wanip%3D192.168.18.59... ) [1] => Array ( [ID] => 1523554 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:32:43 [VALUE] => -1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=62.3&OLD_VALUE=62.6&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D62.3%26uptime%3D2267660%26errconn%3D18%26wanip%3D192.168.18.59... ) [2] => Array ( [ID] => 1523538 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:32:23 [VALUE] => 1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=62.6&OLD_VALUE=62.1&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D62.6%26uptime%3D2267640%26errconn%3D18%26wanip%3D192.168.18.59... ) [3] => Array ( [ID] => 1523525 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:32:04 [VALUE] => -1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=62.1&OLD_VALUE=62.4&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D62.1%26uptime%3D2267620%26errconn%3D18%26wanip%3D192.168.18.59... ) [4] => Array ( [ID] => 1523508 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:31:43 [VALUE] => 1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=62.4&OLD_VALUE=62.1&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D62.4%26uptime%3D2267600%26errconn%3D18%26wanip%3D192.168.18.59... ) [5] => Array ( [ID] => 1523495 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:31:23 [VALUE] => -1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=62.1&OLD_VALUE=62.6&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D62.1%26uptime%3D2267580%26errconn%3D18%26wanip%3D192.168.18.59... ) [6] => Array ( [ID] => 1523463 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:30:43 [VALUE] => 1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=62.3&OLD_VALUE=61.6&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D62.3%26uptime%3D2267540%26errconn%3D18%26wanip%3D192.168.18.59... ) [7] => Array ( [ID] => 1523434 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:30:03 [VALUE] => -1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=61.8&OLD_VALUE=62.2&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D61.8%26uptime%3D2267500%26errconn%3D18%26wanip%3D192.168.18.59... ) [8] => Array ( [ID] => 1523391 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:29:03 [VALUE] => 1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=61.3&OLD_VALUE=61.0&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D61.3%26uptime%3D2267440%26errconn%3D18%26wanip%3D192.168.18.59... ) [9] => Array ( [ID] => 1523376 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:28:43 [VALUE] => -1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=61.0&OLD_VALUE=61.5&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D61.0%26uptime%3D2267420%26errconn%3D18%26wanip%3D192.168.18.59... ) [10] => Array ( [ID] => 1523344 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:28:03 [VALUE] => 1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=61.0&OLD_VALUE=60.6&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D61.0%26uptime%3D2267380%26errconn%3D18%26wanip%3D192.168.18.59... ) [11] => Array ( [ID] => 1523316 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:27:23 [VALUE] => -1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?
Как отобрать значения только 1 [SOURCE]
Logrus
Сообщения: 1764
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 296 раз
Поблагодарили: 364 раза

Re: [Сценарий] Анализ периода от начала суток и построение индикатора

Сообщение Logrus » Чт ноя 14, 2019 7:21 pm

if ($s['VALUE'] == 1) { $tmr_mem = $tmr_mem + $tmr1 - $tmr2; }
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
MaxVM
Сообщения: 63
Зарегистрирован: Вт янв 10, 2017 2:26 pm
Благодарил (а): 7 раз
Поблагодарили: 0

Re: [Сценарий] Анализ периода от начала суток и построение индикатора

Сообщение MaxVM » Чт ноя 14, 2019 7:30 pm

Logrus писал(а):
Чт ноя 14, 2019 7:21 pm
if ($s['VALUE'] == 1) { $tmr_mem = $tmr_mem + $tmr1 - $tmr2; }
Не срабатывает
СпойлерПоказать

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

$start_time=date("Y-m-d").' 00:00:00';
$tmr_start = strtotime($start_time);
$tmr_now = time();
$tmr_mem = 0;

$obj_title = 'espSensor_temp04';
$arr_s = SQLSelectOne("SELECT * FROM objects WHERE TITLE='".$obj_title."'");
$obj_id = $arr_s['ID'];
$class_id = $arr_s['CLASS_ID'];
$znach = 1;

$prop_title = 'direction';
$arr_s = SQLSelectOne("SELECT * FROM properties WHERE TITLE='".$prop_title."'");
$prop_id = $arr_s['ID'];

$arr_s = SQLSelectOne("SELECT * FROM pvalues WHERE OBJECT_ID='".$obj_id."' AND PROPERTY_ID='".$prop_id."'");
$pvalue = $arr_s['ID'];

$arr_s = SQLSelectOne("SELECT COUNT(ID) as COUNT_ID FROM phistory WHERE VALUE_ID=".$pvalue." AND ADDED>='".date('Y-m-d H:i:s', $tmr_start)."'");

$arr_s = SQLSelect("SELECT * FROM phistory WHERE VALUE_ID=".$pvalue." ORDER BY ADDED DESC LIMIT 0 , ".(1+$arr_s['COUNT_ID']));

$tmr2 = $tmr_now;

foreach($arr_s as $s) {
    $tmr1 = $tmr2;
    $tmr2 = strtotime($s['ADDED']);}

if ($tmr2<$tmr_start) { $tmr2=$tmr_start; }

if ($s['VALUE'] == 1) { $tmr_mem = $tmr_mem + $tmr1 - $tmr2; }

$period = round( $tmr_mem * 100 / ($tmr_now - $tmr_start) );

setGlobal("espSensor_temp02.periodten",$period);

print_r($period);
СпойлерПоказать
Array ( [0] => Array ( [ID] => 1524371 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:51:43 [VALUE] => -1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=62.1&OLD_VALUE=62.3&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D62.1%26uptime%3D2268800%26errconn%3D18%26wanip%3D192.168.18.59... ) [1] => Array ( [ID] => 1524341 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:51:03 [VALUE] => 1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=61.8&OLD_VALUE=61.6&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D61.8%26uptime%3D2268760%26errconn%3D18%26wanip%3D192.168.18.59... ) [2] => Array ( [ID] => 1524308 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:50:23 [VALUE] => -1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=61.8&OLD_VALUE=62.0&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D61.8%26uptime%3D2268720%26errconn%3D18%26wanip%3D192.168.18.59... ) [3] => Array ( [ID] => 1524291 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:50:03 [VALUE] => 1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=62.0&OLD_VALUE=61.5&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D62.0%26uptime%3D2268700%26errconn%3D18%26wanip%3D192.168.18.59... ) [4] => Array ( [ID] => 1524277 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:49:43 [VALUE] => -1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=61.5&OLD_VALUE=61.8&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D61.5%26uptime%3D2268680%26errconn%3D18%26wanip%3D192.168.18.59... ) [5] => Array ( [ID] => 1524262 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:49:23 [VALUE] => 1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=61.8&OLD_VALUE=61.7&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D61.8%26uptime%3D2268660%26errconn%3D18%26wanip%3D192.168.18.59... ) [6] => Array ( [ID] => 1524229 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:48:43 [VALUE] => -1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=61.8&OLD_VALUE=61.9&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D61.8%26uptime%3D2268620%26errconn%3D18%26wanip%3D192.168.18.59... ) [7] => Array ( [ID] => 1524216 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:48:23 [VALUE] => 1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=61.9&OLD_VALUE=61.6&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D61.9%26uptime%3D2268600%26errconn%3D18%26wanip%3D192.168.18.59... ) [8] => Array ( [ID] => 1524198 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:48:03 [VALUE] => 0 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?PROPERTY=value&NEW_VALUE=61.6&OLD_VALUE=61.6&SOURCE=%2Fobjects%2F%3Fscript%3Despdata%26idesp%3DESP826600b38609%26hostname%3DBatZal-2%26dsw1%3D61.6%26uptime%3D2268580%26errconn%3D18%26wanip%3D192.168.18.59... ) [9] => Array ( [ID] => 1524183 [VALUE_ID] => 4813 [ADDED] => 2019-11-14 19:47:43 [VALUE] => -1 [SOURCE] => /api.php/method/espSensor_temp04.valueUpdated?
MaxVM
Сообщения: 63
Зарегистрирован: Вт янв 10, 2017 2:26 pm
Благодарил (а): 7 раз
Поблагодарили: 0

Re: [Сценарий] Анализ периода от начала суток и построение индикатора

Сообщение MaxVM » Чт ноя 14, 2019 7:35 pm

Мне кажется надо сразу, при создании массива, откидывать значения 0 и -1 оставлять только 1, но как не знаю!
MaxVM
Сообщения: 63
Зарегистрирован: Вт янв 10, 2017 2:26 pm
Благодарил (а): 7 раз
Поблагодарили: 0

Re: [Сценарий] Анализ периода от начала суток и построение индикатора

Сообщение MaxVM » Чт ноя 14, 2019 9:42 pm

И снова, здрасте!

Выручите пожалуйста!
Немного модифицировал код и работать перестало. Т.е. вроде бы работает но в историю объекта прилетают сплошные 0 и соответственно не считает значение для прогресс бара.
Модифицировал т.к. с ПУ датчика температуры прилетают не только 1 но и 0, -1.
Вроде бы удалось с этим делом разобраться, но летят 0.
СпойлерПоказать

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

$start_time=date("Y-m-d").' 00:00:00';
$tmr_start = strtotime($start_time);
$tmr_now = time();
$tmr_mem = 0;
$znach = 1;

$obj_title = 'espSensor_temp04';
$arr_s = SQLSelectOne("SELECT * FROM objects WHERE TITLE='".$obj_title."'");
$obj_id = $arr_s['ID'];
$class_id = $arr_s['CLASS_ID'];

$prop_title = 'direction';
$arr_s = SQLSelectOne("SELECT * FROM properties WHERE TITLE='".$prop_title."'");
$prop_id = $arr_s['ID'];

$arr_s = SQLSelectOne("SELECT * FROM pvalues WHERE OBJECT_ID='".$obj_id."' AND PROPERTY_ID='".$prop_id."'");

$pvalue = $arr_s['ID'];

$arr_s = SQLSelect ("SELECT * FROM phistory WHERE VALUE_ID=".$pvalue." AND VALUE='".$znach."' AND ADDED>='".date('Y-m-d H:i:s', $tmr_start)."'");

$arr_s = SQLSelectOne("SELECT COUNT(ID) as COUNT_ID FROM phistory WHERE VALUE_ID=".$pvalue." AND ADDED>='".date('Y-m-d H:i:s', $tmr_start)."' AND VALUE='".$znach."'");

$arr_s = SQLSelect("SELECT * FROM phistory WHERE VALUE_ID=".$pvalue." ORDER BY ADDED DESC LIMIT 0 , ".(1+$arr_s['COUNT_ID']));

$tmr2 = $tmr_now;

foreach($arr_s as $s) {
    $tmr1 = $tmr2;
    $tmr2 = strtotime($s['ADDED']);}

if ($tmr2<$tmr_start) { $tmr2=$tmr_start; }

if ($s['VALUE']) { $tmr_mem = $tmr_mem + $tmr1 - $tmr2; }

$period = round( $tmr_mem * 100 / ($tmr_now - $tmr_start) );

print_r($period);

setGlobal("espSensor_temp04.periodten",$period);
Logrus
Сообщения: 1764
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 296 раз
Поблагодарили: 364 раза

Re: [Сценарий] Анализ периода от начала суток и построение индикатора

Сообщение Logrus » Чт ноя 14, 2019 10:53 pm

MaxVM писал(а):
Чт ноя 14, 2019 7:35 pm
Мне кажется надо сразу, при создании массива, откидывать значения 0 и -1 оставлять только 1, но как не знаю!
то что у вас не смотрел, но нет, у меня режим никого нет 0,1,2 2- все спят, его считаю и все отлично работает
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Аватара пользователя
xor
Сообщения: 1740
Зарегистрирован: Сб ноя 22, 2014 8:45 pm
Благодарил (а): 212 раз
Поблагодарили: 521 раз

Re: [Сценарий] Анализ периода от начала суток и построение индикатора

Сообщение xor » Чт ноя 14, 2019 11:08 pm

кстати, сошлюсь на себя https://connect.smartliving.ru/profile/ ... rdomo.html
Я там среднее считал, взвешенное по времени, эту функцию легко переделать для поиска времени на периоде, когда свойство удовлетворяет каким-то требованиям.

зы. и по-моему, за основу и брал скрипт из этого топика) там немного упрощено получение айдишников с использованием встроенных функций

вот как получилось:

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

//function getHistoryAvgMy($varname, $start_time, $stop_time = 0) { 
 $varname = 'Noorelay_1.status';
 $what = 1; // какое значение считаем
 $start_time = strtotime(date("Y-m-d").' 00:00:00');
 $stop_time = 0;
        if ($start_time <= 0) $start_time = (time() + $start_time);
        if ($stop_time  <= 0) $stop_time  = (time() + $stop_time);

        // Get hist val id
    $pvalue = getHistoryValueId($varname);
    if (defined('SEPARATE_HISTORY_STORAGE') && SEPARATE_HISTORY_STORAGE == 1) {
        $table_name = createHistoryTable($pvalue);
    } else {
        $table_name = 'phistory';
    }

         // Получить количество записей за нужный период времени
         $arr_s = SQLSelectOne("SELECT COUNT(ID) as COUNT_ID FROM $table_name ".
                  "WHERE VALUE_ID=".$pvalue." and not value is null ".
                  "AND ADDED between '".date('Y-m-d H:i:s', $start_time)."' AND '".date('Y-m-d H:i:s', $stop_time)."'");
         // Взять это количество записей +1
         $arr_s = SQLSelect("SELECT * FROM $table_name WHERE VALUE_ID=".$pvalue." and not value is null ".
                  " AND ADDED<='".date('Y-m-d H:i:s', $stop_time)."' ORDER BY ADDED DESC LIMIT 0 , ".(1+$arr_s['COUNT_ID']));
         $tmr2 = $stop_time;

         // Переберем весь массив
         foreach($arr_s as $s) {
          $tmr1 = $tmr2;
          $tmr2 = strtotime($s['ADDED']);

          // Ограничить началом 
          if ($tmr2<$start_time) 
                        $tmr2 = $start_time; 
            // Двигаясь вниз по массиву времени складывать отрезки 
            //echo(date('H:i:s', $tmr1).' - '.date('H:i:s', $tmr2).' = '.($tmr1 - $tmr2).'c  t='.$s['VALUE'].'<br>');
            if($s['VALUE']==$what) $tmr_mem = $tmr_mem + $tmr1 - $tmr2; 
            //$ss = $ss + $s['VALUE']*($tmr1 - $tmr2); 
         }

$all = $stop_time - $start_time; //всего времени с начала суток all
$proc = ($tmr_mem/$all)*100; //%%
echo('part  =  '.$tmr_mem.' sec of value='.$what.'<br>') ;
echo('start =  '.date("Y-m-d H:i:s",$start_time).'<br>') ;
echo('stop  =  '.date("Y-m-d H:i:s",$stop_time).'<br>') ;
echo('all   =  '.$all.' sec<br>');
echo('proc  =  '.$proc.' %');
вот вывод

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

part = 621 sec of value=1
start = 2019-11-15 00:00:00
stop = 2019-11-15 00:25:03
all = 1503 sec
proc = 41.317365269461 %
За это сообщение автора xor поблагодарил:
MaxVM (Пт ноя 15, 2019 1:15 pm)
Рейтинг: 1.18%
Logrus
Сообщения: 1764
Зарегистрирован: Пт апр 07, 2017 12:20 pm
Благодарил (а): 296 раз
Поблагодарили: 364 раза

Re: [Сценарий] Анализ периода от начала суток и построение индикатора

Сообщение Logrus » Пт ноя 15, 2019 1:34 am

ту ксор
вот и доработать функцию, на входе еще что считать, на выходе в массиве общее и того что считали

ту тс
так и не понял физический смысл измерения направления изменения сенсора, а не факт работы тена, т.е. статус 1
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
MaxVM
Сообщения: 63
Зарегистрирован: Вт янв 10, 2017 2:26 pm
Благодарил (а): 7 раз
Поблагодарили: 0

Re: [Сценарий] Анализ периода от начала суток и построение индикатора

Сообщение MaxVM » Пт ноя 15, 2019 10:25 am

Logrus писал(а):
Пт ноя 15, 2019 1:34 am
так и не понял физический смысл измерения направления изменения сенсора, а не факт работы тена, т.е. статус 1
В батареи датчик температуры и sonoff, режим работы (eco и comfort) переключает он + на нем датчик температуры который смотрит растет температура или нет. По ниму и смотрю время физической работы тена в радиаторе. Хочу знать в расчете на сутки сколько он раз включился, для начала в процентном отношении и по среднему посчитать потребление электроэнергии каждым конвектором
Ответить