Страница 1 из 1
История значений объекта
Добавлено: Ср июн 10, 2015 10:13 am
PAV
Голову уже сломал, чувствую элементарно, но не соображу как.
КАК вывести на страницу последние (10, 20, 30) значения определенного свойства объекта? (как буковку H нажимаем в свойствах объекта).
Вот хочу колонку последних 10 значений sensorMovement1.status с указанием времени. Как?
Re: История значений объекта
Добавлено: Ср июн 10, 2015 10:21 am
sergejey
историю за 8 часов (в данном случае свойства sensorMovement4.status) можно вывести так:
Код: Выделить всё
<iframe src="/pChart/?p=sensorMovement4.status&op=log&type=8h" width="200" height="300"></iframe>
Re: История значений объекта
Добавлено: Ср июн 10, 2015 12:09 pm
PAV
Супер, то, что надо.
А, пардон, цвет шрифта можно как-то изменить? А то черное на черном.
Re: История значений объекта
Добавлено: Пт июл 03, 2015 11:29 am
dmw
Ну можно получить историю в JSON-формате и распоряжатся массивом как душе угодно
для этого в ссылке нужно заменить &op=log на &op=timed
Re: История значений объекта
Добавлено: Пт май 19, 2017 8:22 am
directman66
Для php скриптов как получить историю?
Re: История значений объекта
Добавлено: Пт май 19, 2017 1:52 pm
directman66
Из вики
Код: Выделить всё
Функции работы с историей
getHistoryMin($varname, $start_time, $stop_time) -- Возвращает минимальное значение за период
getHistoryMax($varname, $start_time, $stop_time) -- Возвращает максимальное значение за период
getHistoryCount($varname, $start_time, $stop_time) -- Возвращает количество значений за период
getHistorySum($varname, $start_time, $stop_time) -- Возвращает сумму значений за период
getHistoryAvg($varname, $start_time, $stop_time) -- Возвращает среднее значений за период
getHistory($varname, $start_time, $stop_time) -- Возвращает массив значений истории
getHistoryValue($varname, $start_time, $stop_time) -- Возвращает среднее значений за период
varname - "объект.свойство" (строка)
start_time - Время начало выборки, включительно (метка времени Unix)
stop_time - Время конца выборки, включительно (метка времени Unix)
Если нет никаких данных функция возвращает false.
$data = getHistoryMin("RainGauge1.value", -3*60*60);
echo print_r($data, true)."<br/>\n";
Если минимальная температура за день меньше 5 градусов, то пора сливать воду из системы полива.
if (getHistoryMin("tsrearyard.temp", strtotime("-1 day")) < 5)
say("Пора сливать воду из системы полива");
Если среднесуточная температура меньше 7 градусов, то пора менять колёса на зимние.
if (getHistoryAvg("tsrearyard.temp", strtotime("-1 day")) < 7)
say("Пора менять колёса на зимние");
Самое интересное можно взять значение на определённом отрезке времени, даже если выборки попали между запросом (Берутся 2 точки до и после, из них делается интерполяция)
if (getHistoryValue("tsrearyard.temp", strtotime("03:00")) < 0)
say("Ночью была минусовая температура");
Если нет никаких данных функция возвращает false - а что делать по этому поводу решать вам. Может нужно сказать "Датчик дождя не выдавал значения за этот период"
$ret = gethistorycount("ws.isRain",strtotime("-15 minute"));
if ($ret === false) $ret = 0;
if ($ret != 0) say(' пошёл дождь...',1);
Re: История значений объекта
Добавлено: Пт июн 02, 2017 11:32 am
directman66
подскажите, как вывести историю между 3 и 2 часами назад?
мой код ничего не возвращает
Код: Выделить всё
$press2=getHistoryAvg('onesensor.pressure',strtotime("-2 hour") ,strtotime("-1 hour"));
Re: История значений объекта
Добавлено: Пт июн 02, 2017 12:21 pm
nick7zmail
А чем этот способ не угодил?
Код: Выделить всё
<iframe src="/pChart/?p=sensorMovement4.status&op=log&type=8h" width="200" height="300"></iframe>
Только для скрипта он поменяется на
Код: Выделить всё
$contetnt=file_get_contents(/pChart/?p=sensorMovement4.status&op=timed&type=8h
$json_history=json_decode($contetnt);
Re: История значений объекта
Добавлено: Пт июн 02, 2017 12:34 pm
directman66
я полагаю запрос через http сильнее должен загружать систему нежели встроенная функция