@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
.