Cujnik PIR + LED - automatyzacja Tasmota Rules & Home Assistant Using Discovery

@bandrzej76 - z regułami Tasmota poszło szybciej niż przypuszczałem. Dzięki dokumentacji i dobremu wytłumaczeniu wiedzy na przykładach można szybko zrozumieć jak ta logika działa.
Udało mi się dzięki regułom zapisać całą automatyzację z moimi pierwotnymi założeniami w samym module ESP. Innymi słowy automatyzacja działa bez HA czy innego zewnętrznego dodatku.

Wygląda to tak:

Dla zainteresowanych dołączam plik:
PIR+LED (1,4 KB)

ON - wyzwalacz
DO - ładunek
ENDON - koniec ładunku
BACKLOG - pozwala na przesłanie do 30 komend w jednym ciągu oddzielonych ;

Pierwszy zestaw reguł Rule1

ON System#Boot DO Backlog Latitude 54.123456; Longitude 16.654321; Publish2 homeassistant/binary_sensor/%deviceid%_motion/config {"name":"Czujka PIR","state_topic":"stat/%topic%/MOTION","payload_on":1,"availability_topic":"tele/%topic%/LWT","payload_available":"Online","payload_not_available":"Offline","device_class":"motion","force_update":true,"off_delay":30,"unique_id":"%deviceid%_motion","device":{"identifiers":["%deviceid%"]}} ENDON
  • Wyzwalacz - system kończy proces boot
  • ustawiamy naszą pozycję szerokość i długość geograficzną dla obliczenia pozycji słońca
  • publikujemy nasz plik JSON dla konfiguracji naszego czujnika w HA
ON Switch2#State DO publish stat/%topic%/MOTION %value% ENDON
  • wyzwalacz - zmiana stanu Switch2
  • ładunek - na temacie stat/%topic%/MOTION opublikuj wartość ( value)

Następnie jednym wpisem wydajemy 4 komendy i restartujemy moduł dla przedstawienia się w HA.

Backlog Rule1 1; SwitchMode2 1, SetOption19 1; Fade 1; Speed 2

Dodałem opcjonalne Fade 1 - płynne przejście; Speed 2- z prędkością 2 dla ściemniacza

Drugi zestaw reguł Rule2 - odpowiada za automatyzację załączającą taśmę LED po zachodzie słońca z intensywnością 25% do czasu wschodu słońca. Dodatkowo pojawiają się odpowiednie wpisy dotyczące Rule3 umożliwiające załączanie taśmy z inną intensywnością po wykryciu ruchu.

Rule2
  ON Time#Initialized DO event ChkSun ENDON
  ON Time#Minute=%sunset% DO event chkSun ENDON
  ON Time#Minute=%sunrise% DO event chkSun ENDON
  ON event#chkSun DO Backlog Rule3 0; var1 0; event chkSunrise=%time%; event chkSunset=%time%; event chkmorn=%time%; event chknight=%time%; event setDimmer ENDON
  ON event#chkSunrise<%sunrise% DO Backlog Dimmer 0; Rule3 0; var1 0 ENDON
  ON event#chkSunset>=%sunset% DO Backlog Dimmer 0; Rule3 0; var1 0 ENDON
  ON event#chkmorn<%sunrise% DO Backlog Dimmer 25; Rule3 1; var1 25 ENDON
  ON event#chknight>=%sunset% DO Backlog Dimmer 25; Rule3 1; var1 25 ENDON
  ON event#setDimmer DO Dimmer %var1% ENDON

Nie zapominamy o załączeniu reguł (wyjaśnienie komendy Rule2 9 w dokumentacji TU)

Backlog Rule2 1; Rule2 9

Trzeci zestaw reguł Rule3 odpowiada za rozjaśnienie taśmy do 100% po wykryciu ruchu i powrocie do 25% po 30s od braku ruchu. Każde wychwycenie ruchu czyli wyzwolenie Switch2#state=1 uruchamia regułę na nowo odliczając od początku 30s.

Rule3
  ON Switch2#state=1 DO Backlog Dimmer 100; RuleTimer1 30 ENDON
  ON Rules#Timer=1 DO Dimmer 25 ENDON

Włączamy zestaw Rule3 komendą

Rule3 1

Ważne!
Automatyzacja działa w oparciu o czas i geolokalizację dla wyliczania pozycji słońca (zegar astronomiczny). Należy zatem pamiętać o podaniu prawidłowej lokalizacji w Rule1 ale nie możemy zapominać o prawidłowym ustawieniu opcji synchronizacji czasu, zwłaszcza jeśli nasz ESP jest odcięty od internetu a mamy zmienię czasu letni/zimowy.

timezone 99
timestd
timedst 0

Do pełni niezależności brakuje naszej czujce stałego adresu IP w naszej sieci. Ustawiamy go zapomocą komendy IPAddress1 .
obraz