Страница 1 из 1

Анализ данных датчиков и отображение динамики. [РЕШЕНО]

Добавлено: Вс окт 29, 2017 4:39 pm
neromih
Всю голову сломал с отображением динамики.

Есть датчик температура (подключен, работает), смог сделать вывод среднего значения за один день (из примеров взято).

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

$data = getHistoryAvg("tempzal22.value", strtotime("-1 day"));
sg('STulica.value',round($data,2));
А как сделать к примеру динамику датчика температуры за час?
К примеру: если температура за один час повышается, то значок вверх.
Со значком понятно а вот как динамику роста-падения, не поняятно :)

Re: Анализ данных датчиков и отображение динамики?

Добавлено: Вс окт 29, 2017 7:31 pm
xor
-1 hour

Re: Анализ данных датчиков и отображение динамики?

Добавлено: Вс окт 29, 2017 7:45 pm
neromih
xor писал(а):-1 hour
спасибо!

Реализовал так:

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

$data1 = getHistoryValue("tempzal22.value", strtotime("-3 hour")); //статистика за 3 часа
$data2 = getGlobal("tempzal22.value"); //текущие значение
if ($data1 > $data2) //сравниваем значения :)
sg('STulica.dinamic',холодает); 
if ($data1 < $data2)
sg('STulica.dinamic',теплеет); 

Re: Анализ данных датчиков и отображение динамики?

Добавлено: Вс окт 29, 2017 7:49 pm
xor
А если равно, не учитываете?
А на сколько холодает/теплеет за ед. наблюдения, не интересно?
Просто любопытствую.

Re: Анализ данных датчиков и отображение динамики?

Добавлено: Вс окт 29, 2017 8:08 pm
neromih
xor писал(а):А если равно, не учитываете?
А на сколько холодает/теплеет за ед. наблюдения, не интересно?
Просто любопытствую.
Спасибо за параметр = :) не учел :) допишу.
На сколько холодает вроде написал, это будет

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

$data3 = (($data2) - ($data1)); 
соответственно параметр $data3.

Но суть что бы менялась картинка - значок.

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

$data1 = getHistoryValue("tempzal22.value", strtotime("-3 hour"));
$data2 = getGlobal("tempzal22.value");
$data3 = (($data2) - ($data1));
if ($data1 > $data2)
sg('STulica.dinamic',0);
if ($data1 < $data2)
sg('STulica.dinamic',1);
if ($data1 == $data2)
sg('STulica.dinamic',3); 
алгоритм понял:
если STulica.dinamic' = 1 то вниз
а если STulica.dinamic' = 0 вверх или наоборот :)
а если STulica.dinamic' = 3 без изменений

Проблема возникла в другом, пытаюсь на сцену вставить в HTML, PHP if else но он почему то показывает все что в тэгах (или как их) <?php ?>.
Или же как то привязать значок к параметру переменной...

Однако попробую через кнопку...

Re: Анализ данных датчиков и отображение динамики?

Добавлено: Вс окт 29, 2017 8:43 pm
Chainik
Может быть вам будет полезна эта тема
viewtopic.php?f=4&t=2100

Re: Анализ данных датчиков и отображение динамики?

Добавлено: Вс окт 29, 2017 8:47 pm
neromih
Chainik писал(а):Может быть вам будет полезна эта тема
viewtopic.php?f=4&t=2100&p=19136&hilit= ... уры#p19136
Спасибо огромное!!!! То что надо!!!

Re: Анализ данных датчиков и отображение динамики?

Добавлено: Пн окт 30, 2017 9:02 am
neromih
Может быть пригодиться такая реализация кому нибудь.

Скрипт:

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

$data1 = getHistoryValue("tempzal22.value", strtotime("-1 hour"));
$data2 = getGlobal("tempzal22.value");
$data3 = (($data2) - ($data1));
sg('STulica.raznica',round($data3,2));
if ($data1 > $data2)
sg('STulica.dinamic',"&#8595");
if ($data1 < $data2)
sg('STulica.dinamic',"&#8593");
if ($data1 == $data2)
sg('STulica.dinamic',"&#8801"); 
В результате будет показана динамика стрелками вверх ↑ - вниз ↓ - тождественно ≡.

Пример:
На улице: -2.76°C (↓, -0.38); 67.27 %
Давление: 753.99 мм. рт. ст.
Ср: -2.1°C; Max: 2.47°C; Min: -5.18°C