[Gelöst] Lichtsteuerung - Bewegungsmelder

Begonnen von waldy, 02 April 2020, 23:47:44

Vorheriges Thema - Nächstes Thema

waldy

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

amenomade

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?


Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

waldy

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.

Otto123

#3
Zitat von: waldy am 03 April 2020, 12:03:34
Der Bewegungsmelder ist von HomeMatic und da dieser kein "nomotion" sendet
richtig der sendet noMotion :) 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
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

waldy

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

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