Tasmota cykliczny wyłączenie urządzenia na 2 sekundy

Cześć, mam sonof mini z wgranym systemem Tasmota. Potrzebuje ustawić go tak aby co godzinę po włączeniu wyłączał podpięte urządzenie na 2 sekundy po czym ponownie je włączał. W harmonogramie ustawienia są dla godzin i minut. Pytanie zadałem na grupie FB gdzie mnie skierowano tutaj :slight_smile: czy mogę prosić o pomoc jak to zrobić?

Jeśli dobrze rozumiem, to chcesz raz włączyć i mieć w pętli cykl praca 1h , stop 2 sek i znów praca 1 h.
Przejdź do konsoli wklej taką regułę

Rule1
ON Power1#state=1 DO RuleTimer1 60 ENDON
ON Rules#Timer=1 DO Backlog Power1 0;RuleTimer2 1 ENDON
ON Rules#Timer=2 DO Power1 1 ENDON

Potwierdź ENTER
Potem aktywuj regułę wpisując w tej samej konsoli
Rule1 1
i również zatwierdź ENTER
Włącz tego sonoff i sprawdź czy, po 1 min wyłączy na 2 sek i włączy ponownie.
Jak tak to zmień w regule RuleTimer1 60 na RuleTimer1 3598
Jak czegoś nie rozumiesz, to pytaj. Nie będę opisywał co się dzieje po kolei, bo skoro szukasz po grupach na FB , to i tak pewnie nie chcesz się niczego nauczyć, tylko osiągnąć zamierzony cel.

1 Like

@isom1266 - to ja kolegę zachęciłem do odwiedzenia @patryk_jawo naszego forum więc witamy i pozwolę sobie wyjaśnić co dzieję się w tym kodzie.
Na początek garść informacji podstawowej z Tasmota. W konsoli możemy wpisywać wszystko jednym ciurkiem i bez znaczenia jest wielkość liter. Zamiast pisać ON możemy wstawić 1, zamiast pisać off możemy wstawić 0. Dzięki komendzie początkowej Backlog możemy wysłać do 30 komend oddzielonych średnikiem, jednym wpisem.
Reguły możemy podzielić na 3 zestawy: Rule1; Rule2 i Rule3.

Rule1

Rozpoczyna się pierwszy zestaw, każda reguła zaczyna się od ON po którym następuje wyzwalacz, następnie mamy akcję po DO i kończymy wpis ENDON.

ON Power1#state=1 DO RuleTimer1 60 ENDON

Wyzwalacz Power1#state=1 - czyli gdy POWER1 uzyska stan 1 (ON) uruchamia się reguła po DO - ustawia się RuleTimer1 używany w regułach na 60s (może ich być od 1 do 8).

ON Rules#Timer=1 DO Backlog Power1 0;RuleTimer2 1 ENDON

Druga reguła za wyzwalacz ma nasz Rules#Timeri gdy ten dobije odliczanie z 60s do 1s następuje akcja po DO a rozpoczyna ją komenda Backlog, która umożliwia pisanie kilku po sobie oddzielonych średnikiem. Wyłączamy przekaźnik Power1 0; ustawiamy drugi timer na 1s i ENDON.

ON Rules#Timer=2 DO Power1 1 ENDON

Pozostaje zamknąć pętlę. Gdy Rules#Timer osiągnie 2 (po upływie 1 sekundy), włączy się Power1.

A jak to działa w praktyce pokazuje konsola:

20:44:49.805 RSL: RESULT = {"POWER":"ON"}
20:44:49.806 RSL: POWER = ON
20:44:49.822 RUL: POWER1#STATE=1 performs "RuleTimer1 60"
20:44:49.828 RSL: RESULT = {"T1":60,"T2":0,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
20:45:50.434 RUL: RULES#TIMER=1 performs "Backlog Power1 0;RuleTimer2 1"
20:45:50.470 RSL: STATE = {"Time":"2023-11-29T20:45:50","Uptime":"0T00:01:28","UptimeSec":88,"Heap":25,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":21,"MqttCount":0,"POWER":"OFF","Wifi":{"AP":1,"SSId":"DWR-116_613E28","BSSId":"F0:9F:C2:7A:85:AF","Channel":6,"Mode":"11n","RSSI":52,"Signal":-74,"LinkCount":1,"Downtime":"0T00:00:03"}}
20:45:50.493 RSL: RESULT = {"POWER":"OFF"}
20:45:50.495 RSL: POWER = OFF
20:45:50.718 RSL: RESULT = {"T1":0,"T2":1,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}
20:45:52.432 RUL: RULES#TIMER=2 performs "Power1 1"
20:45:52.439 RSL: STATE = {"Time":"2023-11-29T20:45:52","Uptime":"0T00:01:30","UptimeSec":90,"Heap":25,"SleepMode":"Dynamic","Sleep":50,"LoadAvg":19,"MqttCount":0,"POWER":"ON","Wifi":{"AP":1,"SSId":"DWR-116_613E28","BSSId":"F0:9F:C2:7A:85:AF","Channel":6,"Mode":"11n","RSSI":52,"Signal":-74,"LinkCount":1,"Downtime":"0T00:00:03"}}
20:45:52.460 RSL: RESULT = {"POWER":"ON"}
20:45:52.463 RSL: POWER = ON
20:45:52.481 RUL: POWER1#STATE=1 performs "RuleTimer1 60"
20:45:52.487 RSL: RESULT = {"T1":60,"T2":0,"T3":0,"T4":0,"T5":0,"T6":0,"T7":0,"T8":0}

Jeśli będziesz chciał aby cykl uruchamiał się automatycznie przy starcie systemu, to należy wymienić wyzwalacz z Power1#state=1 na np System#Boot

Zapomniał bym dodać. Każdy zestar reguł należy na końcu włączyć dlatego na koniec podajemy Rule1 1.

1 Like

@angler skoro tak dokładnie rozpisałeś tą regułę i wskazałeś jaki wyzwalacz ustawić żeby cykl uruchamiał się z automatu, to warto Twój opis uzupełnić o wersję 2.
Automatyczny start po podłączeniu modułu do zasilania.

Rule1
ON System#Boot DO Backlog Power1 1; RuleTimer1 60 ENDON
ON Rules#Timer=1 DO Backlog Power1 0;RuleTimer2 1 ENDON
ON Rules#Timer=2 DO Power1 1 ENDON

Podałem ten wyzwalacz jako przykład z linkiem do listy kolejnych do wyboru. Często używałem też Wifi#Connected dla rozpoczęcia automatyzacji.

Kilka ich popełniłem i działają do dziś od paru lat:

1 Like