FHEM Forum

FHEM => Automatisierung => Thema gestartet von: roedert am 30 Juli 2019, 21:18:51

Titel: [gelöst] Verzögerungstimer abbrechen ... wie am besten umsetzen?
Beitrag von: roedert am 30 Juli 2019, 21:18:51
Das ist das Ziel:
Wenn ich aufs Laufband gehe, wird Licht entsprechend eingeschaltet und TV ein, wenn ich fertig bin mit dem Laufband soll nach 5 Minuten Licht und TV wieder ausgehen. 15 sec vor Abschalten des Licht/TV möchte ich aber gewarnt werden, um dies evtl. noch abbrechen zu können.
Technisch alles kein Problem, nur suche ich eine komfortable Lösung für den Abbruch des Ausschalten. Momentan ist es so realisiert - noch ohne Abbruchmöglichkeit.
Laufband ein (erkannt übe den Stromverbrauch) schaltet via Notify TV/Licht ein.
Laufband aus triggert einen Watchdog mit 5 min für TV/Licht wieder aus.
Watchdog an sich ist schon gut geeignet, da dieser ja zurückgesetzt wird wenn das Laufband vor Ablauf der 5min wieder an geht.
Idee wäre nun dass der Watchdocg nicht Licht/TV ausschaltet, sondern die "Aalarmierung" einschaltet und ein at in 15 sec erstellt zum Ausschalten. Wenn ich dies abbrechen möchte, müsste ich dieses at wieder löschen.
Gibt es da einen eleganteren Weg ... evtl. ein sleep vor dem Ausschalten statt ein em extra definiertem at? Aber wie kann ich dies dann abbrechen?
Oder ganz andere Lösungswege?
Titel: Antw:Verzögerungstimer abbrechen ... wie am besten umsetzen?
Beitrag von: amenomade am 30 Juli 2019, 21:39:41
Ein sleep kann man abbrechen, solange er benannt wird. SIehe in CommandRef sleep und cancel.

Sonst kann man das ganze relativ einfach über Doif machen:

DOIF (laufband)
   (licht an, TV an)
DOELSE
   (warn)
   (licht aus, TV aus)

attr wait 0:285,15
Titel: Antw:Verzögerungstimer abbrechen ... wie am besten umsetzen?
Beitrag von: roedert am 31 Juli 2019, 09:45:31
Besten Dank, hab es jetzt mit einem DOIF umgesetzt.
noch ein DOELSEIF (Abbruchbedingung) dazwischen .... und es passt soweit alles!

Irgendwie habe ich bisher zwar keine richtigen Bogen um DOIF gemacht, es aber sehr sparsam genutzt und wusste somit auch gar nicht wie mächtig das Teil ist.