Hauptmenü

define im DOIF drin

Begonnen von Frood42, 31 Januar 2020, 23:53:46

Vorheriges Thema - Nächstes Thema

Frood42

Fast ganz genauso habe ich es gemacht. Mann bin ich gut. Habe ja fast - zumindest temporär - und partiell - das Otto-fhem-Level erreicht  :o :o :o Awesome


defmod di_motion_monitor_kitchen DOIF ([HM_5FEBBB_MOTION_KITCHEN:"motion:.on"]) ({system("/opt/fhem/bin/fhemswitchmonitor.sh on")}) ({system("/opt/fhem/bin/fhemswitchmonitor.sh off")})
attr di_motion_monitor_kitchen resetwait
attr di_motion_light_floor wait 0,3600


Allerdings habe ich keine Ahnung warum der Timer nach 240 sec abgebrochen werden kann. Aber ich glaube dabei ging es auch um die alte Version , ne.

Bei den Lichtern im Flur bin ich mir nicht sicher, manchmal geht da nur eins (floor1_lights) aus, und nicht beide (floor2_lights und floor1_lights) aber das muss man mal beobachten....  :o

Otto123

system() ist an der Stelle unnütz!
Zitatwarum der Timer nach 240 sec abgebrochen werden
Weil der BM nur alle 240 sec (im BM einstellbar) eine Bewegung registriert. D.h. erst frühestens nach 240 sec kann ein neuer Event kommen, der das DOIF wieder triggert.

Dei Beobachtung kannst Du ja loggen, ist meist besser als das Gefühl. Es muss ja einen Grund geben (die Frage hast DU nicht beantwortet) warum Du 1 sec zeit lässt. Ich nehme an weil das Dinger sind die man nicht mit einem IO gleichzeitig beschicken kann?

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

Frood42

Ok, aber der Timer wird ja dann nach 240 sec nicht abgebrochen, wenn dann eine Bewegung registriert wird,  sondern neu bestellt, also wieder auf 900,901 in der Zukunft, oder?

Ja, das mit der einen Sekunde unterschied habe ich gemacht, weil es den Eindruck erweckt hat, dass das Ikea GW nicht zwei Befehle auf einmal verarbeiten kann. Also beim Einschalten sieht es einfach besser aus wenn die Lichter den Gang entlang angehen, aber beim Ausgehen dachte ich es liegt daran dass das GW das nicht kann, weil einmal eine Lampe anblieb. Dass eine anblieb habe ich aber auch noch mal beobachtet, das muss ich mal genauer beobachten, oder am besten loggen... yes.

Otto123

Zitatnach 240 sec nicht abgebrochen, wenn dann eine Bewegung registriert wird,  sondern neu bestellt
Ja ...
...es liegt im Auge des Betrachters:  :D zurückgesetzt auf den Ausgangswert und neu gestartet.
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

Frood42

Also der Käse der läuft so prima.
Bei einem attr di_motion_light_floor wait 0,1,3600,1  muss man sagen, dass die Werte wohl immer ein Delta zu dem vorigen Wert darstellen / bedeuten...
Ein attr di_motion_light_floor wait 0,1,3600,3601 bewirkt, dass der 4. Befehl 3601 nach dem 3. Befehl ausgeführt wird.

Otto123

Stimmt, ist so auch dokumentiert :)
ZitatDie Verzögerungszeit bezieht sich immer auf den vorherigen Befehl.
War mir glaub ich nicht so bewusst ;)
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

Frood42

Kann man denn anstatt einem
(set floor2_lights on) und (set floor2_lights off)
wait 0,900

genausogut ein

(set floor2_lights on-for-timer 900)
verwenden? Das erscheint mir einfacher, kürzer.

Frank_Huber

Zitat von: Frood42 am 06 März 2020, 22:08:42
Kann man denn anstatt einem
(set floor2_lights on) und (set floor2_lights off)
wait 0,900

genausogut ein

(set floor2_lights on-for-timer 900)
verwenden? Das erscheint mir einfacher, kürzer.
Wenn dein aktor das zulässt, klar!

Gesendet von meinem S68Pro mit Tapatalk


Otto123

Zitat von: Frood42 am 06 März 2020, 22:08:42
verwenden? Das erscheint mir einfacher, kürzer.
Wenn es das Ziel ist die Befehle kurz zu halten klar ;)

Der große Unterschied ist das nachtriggern! Das (set on) (set off) mit dem wait Timer sendet ein on und wenn immer wieder durch Bewegung innerhalb des Timers ein Reset des Timers erfolgt erst ganz am Ende ein off.
Ein set on-for-timer sendet bei jedem trigger ein on-for-timer. Hängt davon ab ob der Aktor das kann und "verkraftet". Es gab glaub ich Aktoren, die kurz ausgehen.

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