Алгоритм простой:
Берем среднее значение температуры за 1 минуту и сравниваем с реальной температурой.
Если значение отличается больше чем на 3 градуса, значит угроза пожара реальна.
Код засунул в метод который вызывается при изменении значения температуры в комнате. Данные с датчика обновляются раз в 10 секунд.
Вот код:
Код: Выделить всё
//определение пожара
$temp_old=getHistoryAvg("ESP8266031еba2b.dsw1", strtotime("-1 minute"));// берем среднее значение температуры за 1 минуту
$temp_real=gg('ESP8266031еba2b.dsw1');// берем реальное значение температуры
$sum=($temp_real-$temp_old); // вычисляем разницу
if ($sum>3){sg('ESP82660014aa2b.fire',"Пожар!!!");say('Пожар!!!',2);} // если разница больше 3 градуса кричим ПОЖАР!!! :)
else if ($sum<3){sg('ESP8266031еba2b.fire',"");} // если нет, очищаем флаг
p.s. История на свойстве датчика должна быть включена!