A tak wyglądają logi z tym wsadem z timerami-nie włącza się z nimi przekaźnik:
82395: ADS1x15: RAW value: 19821, output value: 19821.000000
82408: EVENT: ads#flow=230
82415: ACT : TimerSet,1,3
82420: ACT : TimerSet,2,0
82422: TIMER: disable timer
82860: EVENT: stan#gpio2=1
82868: EVENT: http#192.168.0.107=200
83396: ADS1x15: RAW value: 19822, output value: 19822.000000
Dobra nie rozumiem tego espeasy, w tasmocie, która bazuje na podobnych regułach mogę sobie zarządzać dowolną ilością timerów w jednym wywołaniu.
Jak coś działa to zostaw a buforowo zrób bloczki w domoticz, albo może ktoś kto ogarnia ten dziwny soft pomoże
@isom zgadzam się z Tobą- nie ma się co z tym boksować i tak zrobiłeś mi mega robotę czego ja by, na pewno nie zrobił. Dzięki. A czy coś by pomogło w tym wariancie ze zmiennymi jakby dołożył jeszcze jedną zmienną ?
Wartości zmiennych var nie są trwałe, po zaniku zasilania może wyjść kosmos. W tasmocie są zmienne Var i MEM i te drugie nie zapominają danych więc gdyby to była tasmota zrobiłbym całość bez problemu. Tu nie wiem i nie mam ochoty się uczyć bo nigdy nie skorzystam 🙂
Chyba się udało :). Moc jest z nami.
https://youtube.com/shorts/8j-Ped-RAN0?si=VUGpObL12OBArUcT
w kodzie opisałem co zrobiłem:
1. bez timerów,
2. niepotrzebnie zmieniałem te stany on na off i off na on - tu coś przekombinowałem,
3. gpio po system boot dałem na ON
On System#Boot Do
GPIO,2,0 // OFF (active-LOW) ---->>>>>>>tu zmieniłen na ON
Let,0,0 // wymagany stan GPIO = OFF---->>>>> i tu też zmieniłem na ON, zlikwidowałem timery
Endon
//WŁĄCZANIE (flow ≥ 160)
On ads#flow>=160 Do
TimerSet,1,3 // warunek musi trwać 3 s
Endon
On Rules#Timer=1 Do
GPIO,2,0 // ON ---->>> włącza przekaźnik, gdy przepływ jest niski
Let,0,0
Endon
//WYŁĄCZANIE (flow < 140)
On ads#flow<140 Do
TimerSet,2,5 // warunek musi trwać 5 s
Endon
On Rules#Timer=2 Do
GPIO,2,1 // OFF ------->>> wyłącza gdy przepływ jest wysoki, odwrotnie niż trzeba
Let,0,1
Endon
//WATCHDOG (ochrona przed ręcznym sterowaniem)
On Clock#Second Do
If [GPIO#2] != [UserVar#0]
GPIO,2,[UserVar#0]
EndIf
Endon
Mały minus układu- po resecie zawsze włączy przekaźnik, pompę obiegową, ale to nie problem.
https://youtube.com/shorts/e9E0FjkWTlw?si=1dhLnZeB-BF36f6b
On System#Boot Do
GPIO,2,0 // ON
Let,0,0 // wymagany stan GPIO = ON
Endon
//WŁĄCZANIE (flow < 140)
On ads#flow<140 Do
TimerSet,1,3 // warunek musi trwać 3 s
Endon
On Rules#Timer=1 Do
GPIO,2,0 // ON
Let,0,0
Endon
//WYŁĄCZANIE (flow > 160)
On ads#flow>160 Do
TimerSet,2,5 // warunek musi trwać 5 s
Endon
On Rules#Timer=2 Do
GPIO,2,1 // OFF
Let,0,1
Endon
//WATCHDOG (ochrona przed ręcznym sterowaniem)
On Clock#Second Do
If [GPIO#2] != [UserVar#0]
GPIO,2,[UserVar#0]
EndIf
Endon
Wymyśliłem jak to zrobić na tzw. chama.
Zmienię po system#boot na gpio,2,1 - czyli wyłącz pompę ciepła - tak będzie lepiej.
Wtedy taki stan, taki zanik napięcia będzie wymagał resetu.
Taki reset albo zrobić ręcznie albo jakiś inny przekaźnik albo regułę, która musi zrobić tak:
jeżeli przepływ jest duży, a nie działa pompa ciepła, zmniejsz przepływ i znów go zwiększ.
Zrobiłem tak, testowałem, działa, problem się trochę sam rozwiązał z drugim przekaźnikiem od pompy obiegowej.
Jedyny minus - co jeszcze będę sprawdzał z telegramem przez noc- że ESP się raz na jakiś czas samo resetuje. Jak często? Zobaczymy.
// FLOW SWITCH pompa ciepła On System#Boot Do GPIO,2,1 // ON Let,0,1 // wymagany stan GPIO = ON Endon //WŁĄCZANIE (flow < 140) On ads#flow<140 Do TimerSet,1,10 // warunek musi trwać 10 s Endon On Rules#Timer=1 Do GPIO,2,0 // ON Let,0,0 Endon //WYŁĄCZANIE (flow > 160) On ads#flow>160 Do TimerSet,2,10 // warunek musi trwać 10 s Endon On Rules#Timer=2 Do GPIO,2,1 // OFF Let,0,1 Endon // termostat pompy ciepła-załączanie pompy obiegowej-- to jeszcze będzie do modyfikacji, dojdzie warunek mocy-poboru pradu przez PC On ads#t Do If [ads#t]>100 // i moc poboru W>100 GPIO,0,0 Endif If [ads#t]<30 // i moc poboru W<=100 GPIO,0,1 Endif Endon
Ja bym zaczął od zmiany GPIO dla przekaźników, oba wybrane są w pewnych okolicznościach problematyczne
Zmiana na GPIO12 i 14 może poprawić sytuację.
W rule wykasuj wszędzie Let , skoro go nie wykorzystujesz do watchdoga


