FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: chq am 15 Juli 2025, 14:41:36

Titel: DOIF Retrigger
Beitrag von: chq am 15 Juli 2025, 14:41:36
Hallo,

ich habe seit ewiger Zeit mal wieder etwas mit DOIF gemacht.

Der folgende Code fährt einen Rolladen an eine bestimmte Position, sobald die IP-Adressen von zwei Geräten auftauchen, es draußen zu hell ist und sich der Rolladen an einer höheren Stelle befindet.

([OLED:presence] eq "present"
and [PS5:presence] eq "present"
and [?Wetterstation:luminosity] > 20000
and [?Wetterstation:UVR:d1] >= 1000
and [?HM_rolloWohnzimmer:control] > 28) (set HM_rolloWohnzimmer pct 28)

Wenn die IP-technisch erfassten Geräte ausgeschaltet werden, kann es aufgrund dessen, dass dies von FHEM nicht unmittelbar bemerkt wird zu folgender Situation kommen:

Die Geräte wurden ausgeschaltet und es wird händisch die Rolladensteuerung betätigt. Da die Geräte aus Sicht von FHEM vermeintlich noch an sind, wird der Rolladen unmittelbar wieder runtergefahren. Die Geräte werden jeweils folgendermaßen getrackt:

function {CheckPresence("XXX.XXX.XXX.XXX", "YY:YY:YY:YY:YY:YY")} 60 60
Wäre cmdpause 61 evtl. eine mögliche Lösung? Würde das dann aber nicht auch zu einer verzögerten Ausführung bei gewünschten Ausführungen führen?



Gruß Chris
Titel: Aw: DOIF Retrigger
Beitrag von: Damian am 15 Juli 2025, 18:49:26
Du kannst Verzögerungen für jeden Zweig mit wait einbauen. Das verhindert unnötiges Schalten. Hier vermutlich beim DOELSE-Fall sinnvoll. 
Titel: Aw: DOIF Retrigger
Beitrag von: Per am 16 Juli 2025, 11:58:20
Du kannst, wenn manuelles fahren erkannt wurde, CheckPresence aufrufen. Zusätzlich würde ich einen der beiden mit ? versehen und die Reihenfolge der Funktionsaufrufe entsprechend gestalten.