Verzögerung beim Auslesen eines DOIF

Begonnen von ridestar, 15 September 2017, 09:15:34

Vorheriges Thema - Nächstes Thema

ridestar

Hey,

ich hätte eine Frage. Und ja ich weiss, dass man bei einem DOIF mit wait die Ausführung des auszuführenden Befehls verzögern kann. Ich möchte allerdings etwas anderes. Mein Ziel ist es mit dem DOIF einen Dummy zu schalten. Hierbei handelt es sich um einen "Homestatus"-Dummy, der entweder auf Abwesend oder Anwesend steht. Wenn der Dummy auf Abwesend steht und gleichzeitig der HUE.Bewegungsmelder eine Bewegung erkennt (Reading: motion) soll der Dummy auf Anwesend gesetzt werden. Das funktioniert mit dem unten gezeigten DOIF auch ohne Probleme. Allerdings möchte ich gerne, dass der Dummy mindestens  10 Minuten auf Abwesend steht und dann erst auf das Reading:motion des Bewegungsmelders reagiert (obwohl schon vorher eine motion erkannt werden könnte). Kann man dies überhaupt mit einem DOIF verwirklichen?

define WiederDa DOIF ([homestatus:,,Abwesend"] and [Flur.Sensor:,,motion"]) (set homestatus Anwesend)

Danke im voraus!

Otto123

Hi,

ich habe DOIFs die meine Person nach 5 min Abwesenheit meiner Geräte auf abwesend stellen. Innerhalb der 5 min kann der Status beliebig wechseln. Von der Sache her eine Art Watchdog.
defmod di_Dev_Otto DOIF ([st_Dev_Otto] eq "absent")(set PersonOtto absent) DOELSEIF ([st_Dev_Otto] eq "present")(set PersonOtto present)
attr di_Dev_Otto wait 300


Vielleicht hilft das Deinen Überlegungen.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ridestar

Zitat von: Otto123 am 15 September 2017, 09:27:37
ich habe DOIFs die meine Person nach 5 min Abwesenheit meiner Geräte auf abwesend stellen. Innerhalb der 5 min kann der Status beliebig wechseln. Von der Sache her eine Art Watchdog.
Danke schonmal  :)

Zum Verständnis: Der Trigger ist deine Abwesenheit, dann wird 5 Minuten gewartet (es kann passieren was will) und anschließend wird der Status umgestellt. Verstehe ich dies so richtig?
Ich bräuchte dies genau andersrum. Also der Homestatus wird auf Abwesend gestellt, dann wird mindestens 5 Minuten gewartet und dann müsste als zusätzlicher Trigger der Bewegungssensor ins Spiel kommen. Es wäre also auch egal, was in den 5 Minuten passiert (oder kann auch deutlich länger dauern), aber es wird nicht der Trigger vor den 5 Minuten genommen, sondern erst nach mindestens diesen...
Ich hoffe man versteht was ich meine  :-\

Otto123

also genau genommen wird der Status meiner Geräte (Smartphone Uhr was auch immer) ermittelt. Diese Geräte können fünf minuten offline sein (werden auch so erkannt) erst wenn alle meine Indikatoren 5 min abwesend waren wird mein Status abwesend gestellt.

Ich denke was Du willst geht nur mit zwei Geräten. Eines für den Trigger (das ist erstmal disabled), welches durch das andere nach 5 min scharf geschaltet wird (enabled). Ich mache so etwas in manchen Situationen um bestimmte Abläufe gegenseitig zu "verriegeln", mir ist da noch nichts besseres eingefallen.

Du willst ja den Trigger verzögern und nicht die Aktion - richtig?
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ridestar

Zitat von: Otto123 am 15 September 2017, 10:41:13
Du willst ja den Trigger verzögern und nicht die Aktion - richtig?

Genau, so habe ich es mir gedacht.

Das mit einem zweiten Gerät wäre natürlich eine Idee. Als würde ich einen Dummy erstellen, der erst auf on springt, wenn 5 Minuten lang der Homestatus auf Abwesend steht. Weisst du auf die schnelle, wie ich dort am besten diese Verzögerung einbaue?

Otto123

Hi,

ich dachte eigentlich an zwei DOIFs. Das eine ist wie mein Beispiel, das verzögert Dir den Status und schaltet das andere DOIF nach 10 min auf enabled.
Das zweite DOIF reagiert auf [Flur.Sensor:"motion"] wenn es aktiviert ist.

BTW: ich sehe gerade unten in deinem Codebeispiel hast Du "böse" Anführungszeichen - wie hast Du die denn dort rein bekommen? :o

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz