[Сценарий] Определение скважности работы отопителя
[Сценарий] Определение скважности работы отопителя
Есть отопитель -объект со свойством принимающим значения 0,1. Как определить время включенного состояния за период времени?
Пробовал getHistoryAvg. При общем времени включенного состояния 5 мин за сутки выдает значение 0.375, чего быть не может. Самое интересное, что если взять период 1day, 3day ... значение не меняется.
Пробовал getHistoryAvg. При общем времени включенного состояния 5 мин за сутки выдает значение 0.375, чего быть не может. Самое интересное, что если взять период 1day, 3day ... значение не меняется.
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Определение скважности работы отопителя
На форуме считали время работы экономрежима. Очень похожая задача. Поищите.
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: Определение скважности работы отопителя
еще у меня в класс девайс методы можно посмотреть
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 1462
- Зарегистрирован: Вс янв 10, 2016 11:05 am
- Благодарил (а): 260 раз
- Поблагодарили: 454 раза
Re: Определение скважности работы отопителя
В смысле вот это?
Код: Выделить всё
$last_register = $this->getProperty('Time');
$this->setProperty('Time', time());
$ot = $this->object_title;
if ($this->getProperty('online') != 1)
{
$period = time() - $last_register;
//в ПУ время работы
//sg($ot . 'Counter.valueWork', $period);
//в свое свойство время работы
//$value = $this->getProperty('value');
$value = $this->getProperty('value') + $period;
$this->setProperty('value',$value);
//date_default_timezone_set('Etc/GMT0');
//$this->setProperty('working', date('d:H:i', $value));
$this->setProperty('working', sprintf('%02d:%02d:%02d', $value/3600, ($value%3600)/60, ($value%3600)%60));
}
else
{
//$period = time() - $last_register;
//в ПУ время простоя
//sg($ot . 'Counter.valueWork', $period);
}
-
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: Определение скважности работы отопителя
ага, недоделано до идеала/красоты то что закомментировано это в пу счетчик когда он появился хотел, но не понравилось, может сейчас изменили/доработали его, но то что есть работает (мне общее нужно, можно и только за час, сутки, неделю сделать)
т.ч. для тс выбор есть )))
а вообще без кода "Пробовал getHistoryAvg." как из среднего получали, скорее всего в вашем коде что-то не так
т.ч. для тс выбор есть )))
а вообще без кода "Пробовал getHistoryAvg." как из среднего получали, скорее всего в вашем коде что-то не так
- Рейтинг: 1.16%
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Re: Определение скважности работы отопителя
Написать код конечно можно, и все же как работает функция getHistoryAvg и чем отличается от getHistoryValue?
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Определение скважности работы отопителя
Из примеров
Если среднесуточная температура меньше 7 градусов, то пора менять колёса на зимние.
Самое интересное можно взять значение на определённом отрезке времени, даже если выборки попали между запросом (Берутся 2 точки до и после, из них делается интерполяция)
Если среднесуточная температура меньше 7 градусов, то пора менять колёса на зимние.
Код: Выделить всё
if (getHistoryAvg("tsrearyard.temp", strtotime("-1 day")) < 7)
say("Пора менять колёса на зимние");
Самое интересное можно взять значение на определённом отрезке времени, даже если выборки попали между запросом (Берутся 2 точки до и после, из них делается интерполяция)
Код: Выделить всё
if (getHistoryValue("tsrearyard.temp", strtotime("03:00")) < 0)
say("Ночью была минусовая температура");
win10 connect https://connect.smartliving.ru/profile/303
-
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: Определение скважности работы отопителя
названия функций есть, поиск по гитхабу тоже работает, код который неверно работал так и не увидел никто )))
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
-
- Сообщения: 2084
- Зарегистрирован: Пт апр 07, 2017 12:20 pm
- Благодарил (а): 313 раз
- Поблагодарили: 457 раз
Re: Определение скважности работы отопителя
там, на форуме помимо примера, а у тс несколько другое расписаны параметры на входеxor писал(а): ↑Сб июн 09, 2018 1:24 pmИз примеров
Если среднесуточная температура меньше 7 градусов, то пора менять колёса на зимние.Код: Выделить всё
if (getHistoryAvg("tsrearyard.temp", strtotime("-1 day")) < 7) say("Пора менять колёса на зимние");
Самое интересное можно взять значение на определённом отрезке времени, даже если выборки попали между запросом (Берутся 2 точки до и после, из них делается интерполяция)Код: Выделить всё
if (getHistoryValue("tsrearyard.temp", strtotime("03:00")) < 0) say("Ночью была минусовая температура");
viewtopic.php?f=7&t=2997&p=34229&hilit= ... ory#p34229
Telegram | Блог
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
Raspberry Pi3, с образа от Сергея 3.31, PHP 7, флешка 16 Гб работает с 10.09.2017
Почти всё время уходит на исправление ошибок, оставшееся - на их повторение. (с) ))) Спасибо
- xor
- Сообщения: 2039
- Зарегистрирован: Сб ноя 22, 2014 8:45 pm
- Благодарил (а): 286 раз
- Поблагодарили: 629 раз
Re: Определение скважности работы отопителя
Я так понимаю, что для верной работы gethistoryavg необходимо, чтобы в таблице хранились данные, взятые через один и тот же интервал времени+должно быть условие на сохранение повторяющихся данных.
Сужу по коду в \lib\objects.class.php:
Сужу по коду в \lib\objects.class.php:
Код: Выделить всё
// Get data
$data = SQLSelectOne("SELECT AVG(VALUE+0.0) AS VALUE FROM $table_name ".
"WHERE VALUE != \"\" AND VALUE_ID='".$id."' AND ADDED>=('".date('Y-m-d H:i:s', $start_time)."') AND ADDED<=('".date('Y-m-d H:i:s', $stop_time)."')");
if (!$data['VALUE']) {
$data = SQLSelectOne("SELECT VALUE+0.0 FROM $table_name ".
"WHERE VALUE != \"\" AND VALUE_ID='".$id."' AND ADDED<('".date('Y-m-d H:i:s', $start_time)."') ORDER BY ADDED DESC LIMIT 1");
win10 connect https://connect.smartliving.ru/profile/303