Оказывается прошивка tasmota - это не просто красивый веб-интерфейс и совместимость с Domoticz. Её возможности существенно расширяются при использовании Rules.
Это позволяет использовать Sonoff с прошивкой на борту как самостоятельное устройство без необходимости подключения к системам умного дома и вообще к сети Wi-Fi. Правила можно прописать при компиляции прошивки, и тем самым получить 100% автономное устройство.
Оставлю тут простой пример правила, которое включает\выключает свет при определенных показаниях температурного датчика AM2301. Как подключить датчик температуры и влажности к Sonoff можно почитать тут. Как прошить.
Подключаемся к консоли через веб-морду по адресу http://ip-address/cn? или жмём Консоль на главной странице
Тут нам нужно найти название датчика и его показания. В моём случае смотрим на строчку
11:17:53 MQT: tele/tasmota_506865/SENSOR = {"Time":"2020-12-18T11:17:53","AM2301":{"Temperature":-5.4,"Humidity":99.9,"DewPoint":-5.4},"TempUnit":"C"}
Видим датчик AM2301 и его показания температуры и влажности. Следовательно отслеживать будем его показания AM2301#Temperature
В роли действия будет выступать выключение - Power1 0
Смотрим синтаксис команд, и получаем следующее
rule1 on AM2301#Temperature<5 do Power1 0 endon
Тут всё просто, если значение температуры ниже 5 (градусов), то отключаем питание.
Копируем и вставляем правило в окно ввода команд и в ответ получаем
13:18:15 CMD: rule1 on AM2301#Temperature<5 do Power1 0 endon
13:18:15 RUL: Stored uncompressed, would compress from 41 to 33 (-20%)
13:18:15 MQT: stat/tasmota_506865/RESULT = {"Rule1":"OFF","Once":"OFF","StopOnError":"OFF","Length":41,"Free":470,"Rules":"on AM2301#Temperature<5 do Power1 0 endon"}
Видим что правило в положении OFF. Чтобы его активировать, набираем
rule1 on
13:20:50 CMD: rule1 on
13:20:50 MQT: stat/tasmota_506865/RESULT = {"Rule1":"ON","Once":"OFF","StopOnError":"OFF","Length":41,"Free":470,"Rules":"on AM2301#Temperature<5 do Power1 0 endon"}
13:20:52 RUL: AM2301#TEMPERATURE<5 performs "Power1 0"
13:20:52 MQT: domoticz/in = {"idx":142,"nvalue":0,"svalue":"","Battery":100,"RSSI":5}
13:20:52 MQT: stat/tasmota_506865/RESULT = {"POWER":"OFF"}
13:20:52 MQT: stat/tasmota_506865/POWER = OFF
Теперь в консоль раз в секунду сыпятся сообщения, что питание OFF. Допилим
rule1
on tele-AM2301#Temperature<5 do Power1 0 endon
Как видно, добавили к имени датчика tele-AM2301. Это значит что показания будут передаваться в правило с определенным интервалом (по умолчанию 5 минут), а не каждую секунду.



























