Hauptmenü

DOIF Retrigger

Begonnen von chq, 15 Juli 2025, 14:41:36

Vorheriges Thema - Nächstes Thema

chq

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
So einfach wie möglich, so kompliziert wie nötig

Damian

Du kannst Verzögerungen für jeden Zweig mit wait einbauen. Das verhindert unnötiges Schalten. Hier vermutlich beim DOELSE-Fall sinnvoll. 
Programmierte FHEM-Module: DOIF-FHEM, DOIF-Perl, DOIF-uiTable, THRESHOLD, FHEM-Befehl: IF

Per

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.