Moin,
ich hab Probleme meine Lichtsteuerung zum laufen zu bekommen. Ich hab echt schon vieles probiert, aber irgendwo hapert es immer.
Folgendes Szenario ich habe 2 Lichtquellen an der Hausseite, die eine soll abhängig von der Helligkeit und Uhrzeit schalten (das funktioniert auch soweit) und die andere soll in Abhängigkeit des Bewegungsmelders schalten.
Wenn das eine Licht bedingt durch die Uhrzeit ausgeschaltet ist, soll es bei Bewegung trotzdem mit angehen.
Beides hätte ich gerne in zwei separaten DOIFs
garten_brightness
( [Garten_MotionDetect:brightness] <= 100 and [?05:30-23:00])
(set House_Side_Light on)
DOELSE
(set House_Side_Light off)
und
DOIF_Garden_Lights_Test
( [Garten_MotionDetect] eq "motion" and [garten_brightness] eq "cmd_1")
(set House_Side_Motion_Light on, setreading Garten_MotionDetect state nomotion)
DOELSEIF ([Garten_MotionDetect] eq "motion" and [Garten_MotionDetect:brightness] <= 115)
(set House_Side_Motion_Light on, set House_Side_Light on, setreading Garten_MotionDetect state nomotion)
DOELSEIF ([Garten_MotionDetect] eq "nomotion" and [garten_brightness] eq "cmd_1")
(set House_Side_Motion_Light off)
DOELSE
(set House_Side_Motion_Light off, set House_Side_Light off)
...mit Wait Attribut
wait 0:240
Vielleicht kann mit ja einer von euch hier helfen!?
Gruß
Waldy
Also schon mal nicht schlecht (bis auf das setreading nomotion, da habe ich ein Zweifel, aber das ist von deinem Bewegungsmelder abhängig). Was geht dann nicht?
Nur... was willst Du mit deinem wait genau verzögern? Das Angehen in 2. Zweig? Wirklich?
Der Bewegungsmelder ist von HomeMatic und da dieser kein "nomotion" sendet benötige ich das wait, damit das Licht nicht sofort wieder ausgeschaltet wird, sobald ich das "nomotion" setze.
Aber du hast schon recht, ich möchte nicht das Angehen verzögern, sonder das Ausschalten.
Wäre "on-for-timer" hier vielleicht der richtige Ansatz?
Aber wo ich gerade das erste DOIF (garten_brightness) nochmal so durchgucke, müsste da nicht auch evtl. auch noch ne Abfrage des zweiten DOIFs rein, damit dieses das Licht nicht direkt wieder ausschaltet.
Ich hab das Gefühl ich denke da zu kompliziert und das geht irgendwie viel einfacher.
Zitat von: waldy am 03 April 2020, 12:03:34
Der Bewegungsmelder ist von HomeMatic und da dieser kein "nomotion" sendet
richtig der sendet no
Motion :) bzw. motion: off
Vorschlag, mit nachtriggern:
defmod di_LichBewegung DOIF ([Garten_MotionDetect:"motion:.on"] and ([Garten_MotionDetect:brightness] <= 100 or [?23:00-05:30])) (set House_Side_Motion_Light on, set House_Side_Light on)(set House_Side_Motion_Light off, set House_Side_Light off)
attr di_LichBewegung do resetwait
attr di_LichBewegung wait 0,260
Achtung minInterval steht beim Sensor normalerweise auf 240. Deswegen habe ich die Zeit in der nachgetriggert wird etwas größer gewählt.
Gruß Otto
Zitat von: Otto123 am 03 April 2020, 13:13:07
richtig der sendet noMotion :) bzw. motion: off
...hmm, du hast recht. Das hab ich ehrlich gesagt nie überprüft, ich hab mich auf die Aussage hier im Wiki verlassen:
https://wiki.fhem.de/wiki/HM-Sen-MDIR-O_Funk-IR-Bewegungsmelder_au%C3%9Fen#Betrieb_mit_FHEM (https://wiki.fhem.de/wiki/HM-Sen-MDIR-O_Funk-IR-Bewegungsmelder_au%C3%9Fen#Betrieb_mit_FHEM)
Ich hab jetzt noch ne Abfrage eingebaut, wie das erste DOIF geschaltet ist, damit das Seitenlicht nicht mit ausgeschaltet wird, wenn es vorher schon an war.
([Garten_MotionDetect:"motion:.on"] and ([Garten_MotionDetect:brightness] <= 100 or [?23:00-05:30]))
(set House_Side_Motion_Light on, set House_Side_Light on)
(IF ([garten_brightness] eq "cmd_1")
(set House_Side_Motion_Light off)
ELSE
(set House_Side_Motion_Light off, set House_Side_Light off))
Scheint soweit zu funktionieren.
Ich danke euch vielmals für eure Hilfe!
Gruß
Waldy