UWAGA: Strona oraz Forum Smart'ny Dom nie będzie dostępne 23 Grudnia 2024 ze względu na przenoszenie serwisu na mocniejszą maszynę.
W tym czasie polecam poświęcenie swojego czasu na pomoc partnerowi w przygotowaniu udanych Świąt 😉
Za niedogodności z góry przepraszam, admin
Witam
Potrzebuje reguły aby sonoff włączał i wyłączał grzałkę przy określonej temperaturze i na określony czas.
Założenia, gdy temperatura mniejsza od 5 stopni to włącz grzałkę na 10minut, następnie przerwa 1h i jeżeli po przerwie dalej temperatura mniejsza od 5 stopni, to włącz grzałkę na kolejne 10 minut itd. a jeżeli większa niż 5 stopni to grzałka wyłączona.
Czy taka reguła zadziała zgodnie z moim założeniem?
rule1 ON system#boot DO POWER1 1 ENDON ON Power1#state=0 DO ruletimer1 600 ENDON ON rules#timer=1 DO Power1 1 ENDON rule2 on Tele-DS18B20#temperature>5 do Power1 0 ENDON on on Tele-DS18B20#temperature<5 do Power1 1 ENDON rule1 1 rule2 1 PulseTime1 3600
@manius nie wystrczy, reguła 2 będzie włączać lub wyłaczać przekaźnik na podstawie odczytów czujnika bez względu na stan timera.
Żeby to działało trzeba razem z timerem sterować regułą 2
Tak właśnie myślałem, tylko jak to spiąć?
@manius przede wszystkim przy takich założeniach to
on Tele-DS18B20#temperature>5 do Power1 0 ENDON
Jest zbędne, bo i tak załączasz przekaźnik na 10 min i jeśli temp jest < 5 to przez ten czas niewiele wzrośnie.
Jeżeli jednak upierasz się przy tym warunku to muisz przebudować wszystko tak żeby załączenie grzałki wyłączało regułę 2 , a włączyło ją po wyłączeniu przekaźnika, czyli po tych 10 min grzania.
W tasmocie jeden wyzwalacz może wywołać kilka zdarzeń np
ON rules#timer=1 DO Backlog Power1 1; Rule2 0 ENDON
Taki zapis po wyzerowaniu timera, włączy przekaźnik i wyłączy regułę 2.
To oczywiście nie wystarczy bo coś musi ją jeszcze włączyć, ale to już powinieneś wywwnioskować.
Coś takiego?
Nie wiem czy dobrze kojarzę, reguła3, jeżeli timer się wyzeruje tzn. po 10 minutach wyłącz przekaźnik i włącz regułę 1, a jeżeli timer startuje włącz przekaźnik i wyłącz regułę 2?
A co z PulseTime1 3600?
rule1 ON system#boot DO POWER1 1 ENDON ON Power1#state=0 DO ruletimer1 600 ENDON ON rules#timer=1 DO Power1 1 ENDON rule2 on Tele-DS18B20#temperature>5 do Power1 0 ENDON on on Tele-DS18B20#temperature<5 do Power1 1 ENDON rule3 ON rules#timer=1 DO Backlog Power1 0; Rule2 1 ENDON ON rules#timer=0 DO Backlog Power1 1; Rule2 0 ENDON rule1 1 rule2 1 rule3 1 PulseTime1 3600
@manius teraz to już zagmatwałeś i narobiłeś błędów w tych regułach 🙂
Sprawdź sobie to
Rule1 ON system#boot DO POWER1 1 ENDON ON Power1#state=1 do Backlog rule2 0; ruletimer 3600 endon on rules#timer=1 DO Backlog rule2 1;rule2 5 ENDON rule2 on Tele-DS18B20#temperature>5 do Power1 0 ENDON on Tele-DS18B20#temperature<5 do Power1 1 endon PulseTime 700