Hallo,
ich möchte mit einem Hue-Bewegungsmelder ein Licht einschalten in Abhängigkeit der Helligkeit im gleichen Raum.
Zur Zeit verwende ich die Helligkeit eines anderen Raumes, da sonst ja das Licht nicht an bleibt weil es ja im gleichen Raum hell genug wäre.
Wie habt ihr das gelöst?
DOIF
DEF ([BM_WC_Motion] eq "motion" and [?BM_Flur_EG:brightness] < 40) (set WC_Licht pct 100) DOELSE (set WC_Licht off)
Attributes:
do always
wait 0:65
Bewegungsmelder
DEF sensor 38 1 IODev=HueBridge
FUUID 5e04fb40-f33f-cd72-b87a-9a0508ac8160fccf
FVERSION 31_HUEDevice.pm:0.210390/2020-01-23
ID S38
INTERVAL 1
IODev HueBridge
NAME BM_WC_Motion
NR 360
STATE nomotion
DEF sensor 39 1 IODev=HueBridge
FUUID 5e04fb88-f33f-cd72-7911-00ae625e4a760d40
FVERSION 31_HUEDevice.pm:0.210390/2020-01-23
ID S39
INTERVAL 1
IODev HueBridge
NAME BM_WC_Light
NR 361
STATE 0 lux
TYPE HUEDevice
Für Hilfe dankbar und Gruß
Dieter
ZitatWie habt ihr das gelöst?
Ich mache es mit Twilight (Aussenhelligkeit)
Zitat von: amenomade am 25 Januar 2020, 18:25:47
Ich mache es mit Twilight (Aussenhelligkeit)
Danke für die schnelle Antwort.
Ja, so mache ich das mit einem Außenlicht auch.
Wenn der Bewegungsmelder schon die Helligkeit misst, sollte es doch auch mit dieser funktionieren.
Über die Hue-App würde es ja auch nur mit dem Bewegungsmelder funktionieren.
EDIT. Mit Twilight würde es auch nicht funktionieren wenn es taghell ist aber das Zimmer z.B. mit einem Rolladen verdunkelt ist. Dann sollte ja auch das Licht angehen ;)
([BM_WC_Motion] eq "motion" and [?xxx:brightness] < 40) (set WC_Licht pct 100)
DOELSEIF ([BM_WC_Motion] eq "nomotion") (set WC_Licht off)
Zitat von: amenomade am 25 Januar 2020, 18:40:53
([BM_WC_Motion] eq "motion" and [?xxx:brightness] < 40) (set WC_Licht pct 100)
DOELSEIF ([BM_WC_Motion] eq "nomotion") (set WC_Licht off)
Wenn das Licht ausgeht weil ich mich nicht bewegt habe, es aber wieder anschalten möchte indem ich mich bewege, funktioniert es nicht weil es zu lange dauert bis der Helligkeitswert gesendet wird. ;)
Zitat von: dk3572 am 25 Januar 2020, 18:46:55
Wenn das Licht ausgeht weil ich mich nicht bewegt habe, es aber wieder anschalten möchte indem ich mich bewege, funktioniert es nicht weil es zu lange dauert bis der Helligkeitswert gesendet wird. ;)
wie wird denn die lampe geschaltet ? ist da was direkt gepaired oder schaltet fhem letztendlich?
ich greife im moment der bewegung die helligkeit ab, die ja zusammen mit der bewegung als event kommt. in diesem moment ist das licht ja noch aus - und setze diesen wert in ein userreading , der nur dann aktualisiert wird, wenn das licht im moment des events aus ist. auf diesen wert greife ich zurück um zu entscheiden, ob geschaltet wird oder nicht.
funktioniert gut , geht aber vermutlich nur , wenn kein direktes pairing vorhanden ist.
ob nun per DOIF oder womit auch immer ist wohl Geschmackssache.
gruss Byte09
Zitat von: Byte09 am 25 Januar 2020, 18:55:43
wie wird denn die lampe geschaltet ? ist da was direkt gepaired oder schaltet fhem letztendlich?
ich greife im moment der bewegung die helligkeit ab, die ja zusammen mit der bewegung als event kommt. in diesem moment ist das licht ja noch aus - und setze diesen wert in ein userreading , der nur dann aktualisiert wird, wenn das licht im moment des events aus ist. auf diesen wert greife ich zurück um zu entscheiden, ob geschaltet wird oder nicht.
funktioniert gut , geht aber vermutlich nur , wenn kein direktes pairing vorhanden ist.
ob nun per DOIF oder womit auch immer ist wohl Geschmackssache.
gruss Byte09
Danke, klingt gut und darüber habe ich auch bereits nachgedacht/gelesen.
Wie mache ich das am besten ohne Mswitch?
Es ist nichts gepaired, fhem schaltet.
Zitat von: dk3572 am 25 Januar 2020, 19:00:34
Wie mache ich das am besten ohne Mswitch?
ist dann leider nicht meine Baustelle, da ich mich sonst mit nichts gut genug auskenne um es auf die schnelle zu machen.
gruss Byte09
Idee: bei "motion", wenn brightness < 40 or DOIF war auf off seit weniger als 20s
([BM_WC_Motion] eq "motion" and ([?xxx:brightness] < 40 or [?$SELF] eq "cmd_2" and [?$SELF:state:sec] < 20))
(set WC_Licht pct 100)
DOELSEIF ([BM_WC_Motion] eq "nomotion")
(set WC_Licht off)
Ansonsten kann man die Idee von Byte09 wahrscheinlich mit setreading einsetzen. Aber mir fehlt etwas: wann soll die alte brightness zurückgesetzt werden? Bringt mich zu eine andere Idee... hmmm... muss überlegen
([BM_WC_Motion] eq "motion" and ([?xxx:brightness] < 40 or [?$SELF:oldbrightness,999] < 40))
(IF ([WC_Licht] eq "off")(setreading $SELF oldbrightness 0))
(set WC_Licht pct 100)
(set WC_Licht off)
(setreading $SELF oldbrightness 999)
attr ... wait 0,0,60,60
attr ... do resetwait
Guten Morgen und Danke für die Beispiele, werde ich testen.
Aber mal ehrlich, ist das Problem so neu oder wie lösen das andere Anwender?
Schönes Wochenende und Gruß
Dieter
Zitat von: dk3572 am 26 Januar 2020, 08:56:05
Aber mal ehrlich, ist das Problem so neu oder wie lösen das andere Anwender?
Dass die Helligkeit nicht aktuell ist, vielleicht schon.
Auch das erstmalige Einschalten des Lichtes ist damit kritisch zu sehen.
Zitat von: Damian am 26 Januar 2020, 10:31:15
Dass die Helligkeit nicht aktuell ist, vielleicht schon.
Auch das erstmalige Einschalten des Lichtes ist damit kritisch zu sehen.
Hallo und Danke für deinen Antwort.
Leider verstehe ich grad gar nicht was du mir damit sagen willst. ???
Wenn du bei Bewegung die Helligkeit abfragst und diese nicht aktuell ist, dann könnte es sein, dass du Licht einschaltest, obwohl es noch Hell ist.
Wie oft wird die Helligkeit aktualisiert?
Im günstigsten Falle sollte sie mit der Bewegung kommen.
Zitat von: Damian am 26 Januar 2020, 11:12:08
Wenn du bei Bewegung die Helligkeit abfragst und diese nicht aktuell ist, dann könnte es sein, dass du Licht einschaltest, obwohl es noch Hell ist.
Wie oft wird die Helligkeit aktualisiert?
Im günstigsten Falle sollte sie mit der Bewegung kommen.
Es ist ein Hue-Bewegungsmelder. Ich denke das sie mit der Bewegung kommt.
Wie hast du bzw. würdest du das lösen?
Zitat von: dk3572 am 26 Januar 2020, 08:56:05
Aber mal ehrlich, ist das Problem so neu oder wie lösen das andere Anwender?
zB. mit dem Modul homezone. https://forum.fhem.de/index.php/topic,98594.0.html (https://forum.fhem.de/index.php/topic,98594.0.html)
Mein Klo sieht so aus ;D :
defmod wc_zone homezone
attr wc_zone userattr hz_decay_afternoon hz_decay_day hz_decay_evening hz_decay_morning hz_decay_night hz_decay_sr hz_decay_ss hz_decay_sr hz_decay_ss :textField-long :textField-long :textField-long :textField-long hz_cmd_present:textField-long hz_lumiThreshold_present hz_cmd_likely:textField-long hz_lumiThreshold_likely hz_cmd_unlikely:textField-long hz_lumiThreshold_unlikely hz_cmd_absent:textField-long hz_lumiThreshold_absent
attr wc_zone cmdIcon closed:radio_checked@blue occupied100:rc_dot@blue open:radio_checked@lightgreen occupied0:rc_dot@red
attr wc_zone devStateIcon inactive:ios-NACK present:user_available@blue likely:user_available@lightgreen unlikely:user_unknown@orange absent:user_away@red
attr wc_zone eventMap /occupied 0:occupied0/ /occupied 100:occupied100/
attr wc_zone group Homezone
attr wc_zone hz_absenceEvent Wohnung:presence:.absent
attr wc_zone hz_cmd_absent setscene wc.hgr abwesend
attr wc_zone hz_cmd_likely IF ([Wohnung] =~ /sleep/) (setscene wc.hgr schlafen)\
ELSE (setscene wc.hgr anwesend)
attr wc_zone hz_dayTimes 05:00|morning 10:00|day 14:00|afternoon 18:00|evening 23:00|night
attr wc_zone hz_decay 300
attr wc_zone hz_lumiThreshold_likely 0:35
attr wc_zone hz_luminanceReading wc_bwm:lux
attr wc_zone hz_occupancyEvent wc_bwm:motion
attr wc_zone hz_state 100:present 50:likely 1:unlikely 0:absent
attr wc_zone icon floor
attr wc_zone room 50_Zonen
attr wc_zone userReadings lux {ReadingsNum('wc_huesens_light','lux',50);;;;},\
targetlux
attr wc_zone webCmd closed:open:occupied100:occupied0
Mal ganz einfach beschrieben: Bei Bewegung Licht an (in Abhängigkeit der Helligkeit des Sensors).
Es bleibt dann an solange Bewegung herrscht. Bei Nicht-Bewegung Licht geht das Licht aus (falls es an war).
VG Sebastian
ich verstehe das - noch bestehende - problem nicht wirklich.
Die Lösung wurde bereits genannt - und die kann nur sein , die Helligkeit immer dann zu speichern , wenn sie aktualisiert wird UND das licht noch aus ist. Diese gespeicherte Helligkeit muss weder gelöscht werden , noch sonst irgendwas. Sie wird einfach mit aktuellem wert überschrieben , wenn sie wieder geliefert wird bei ausgeschaltetem licht.
da ich davon aushgehe , das das licht mit einem timer angeschaltet wird - alles andere macht ja nicht wirklich sinn - geht es in jedem Fall von alleine aus - irgendwann und spätestens dann wird bei der nächsten bewegung die aktuelle Helligkeit aktualisiert.
das ist mitt einem simplen notify/doif umsetzbar ( zumindest die aktualisierung der helligkeit )
Zitatwenn ein motion kommt schaue nach dem reading helligkeit im sensor und schreiben diesen in das reading XXX WENN die lampe aus ist ( nur dann ).
zum schalten der lampe dann ein zweites notify oder wegen mir auch DOIF:
Zitatwenn bewegung und das reading XXX < schalthelligkeit -> anschalten für x sekunden
edit: es muss dann nur gewährleistet sein , das das zweite notify auch wirklich erst
nach dem ersten ausgelöst wird ( wie auch immer : seperater trigger etc. )
es gibt irgendwie kein problem
gruss Byte09
Ich habe den Vorschlag von amenomade getestet und funktioniert auch soweit.
Leider wird die Helligkeit nicht schnell genug aktualisiert.
Wenn es z.B. hell genug ist und ich denn Rollladen schließe, sollte das Licht angehen da es ja dann im Raum dunkel ist. ;)
Über die Hue-APP würde das doch funktionieren, möchte aber alles mit fhem lösen.
Zitat von: dk3572 am 26 Januar 2020, 11:57:57
Ich habe den Vorschlag von amenomade getestet und funktioniert auch soweit.
Leider wird die Helligkeit nicht schnell genug aktualisiert.
Wenn es z.B. hell genug ist und ich denn Rollladen schließe, sollte das Licht angehen da es ja dann im Raum dunkel ist. ;)
Über die Hue-APP würde das doch funktionieren, möchte aber alles mit fhem lösen.
dann wirst du das schliessen des rollos als zusätzlichen trigger verwenden müssen da zu diesem zeitpunkt ja unbekannt ist wann der bewegungsmelder das nächstemal meldet.
Byte09