NEWS
Hilfe bei HUE Bewegungsmelder mit HMIP Schalter
-
Hallo zusammen,
ich bin noch ziemlich unwissend im Thema Blockly und habe folgendes Problem. Ich hätte gerne eine Schaltung im Esszimmer die auf einen Bewegungsmelder reagiert, wenn es dunkel ist für ca. 30 Sekunden und mit 50% Helligkeit oder Dauerlicht bei manueller Betätigung mit 100% Helligkeit.Folgende Komponenten sind vorhanden:
2x Bewegungsmelder von PhilipsHue
2x Taster HMIP
1x Schaltaktor für Markenschalter
1x Dämmerungssensor HMIP
1x Lampe Philips HueEgal was ich bereits ausprobiert habe, es hat nicht funktioniert. Würde mich über Unterstützung sehr freuen. Bei der Schaltung funktioniert leider nur der Bewegungsmelder ohne Dauerlicht.
Gruß
Chris -
Das sind ja mal ne Menge Komponenten für ne Lampe. Aber nun gut - ich würde es in etwa so machen (ObjektID's noch selbst einfügen):
Zunächst mal den aktuellen Zustand des Schalters holen
Code siehe Spoiler... Wäre auch ein Tipp für die Zukunft mal den Code mit in den POST zu legen
, da Bilderchen sich schlecht ausführen lassen...
Ich würde im übrigen auch keine Funktionen auslagern, wenn sie nicht mehrfach genutzt werden können...
-
2 Trigger sollten auch reichen, wenn du den Schaltaktor auch als Toggle nutzt. Dann geht der Schalter bei false nicht ins leere, wenn der Zustand durch die Short_Press bereits auf false ist.
Im ersten Trigger wird auf jeden Schaltimpuls reagiert, egal ob vom einem der 2 HmIP-Taster oder vom "Schaltaktor für Markenschalter". Faktisch könnte hier auch noch ein Sprachassistent sein unwesen treiben. Fakt ist: Anschalten mit 100%Helligkeit oder aus.
Im zweiten Trigger, wird, falls das Licht durch einen Schaltaktor ausgeschaltet wurde, bei jeder Bewegung für 30 Sekunden (fraglich ob die Bewegungsmelder in 30 Sekunden erneut feuern können) das Licht bei Helligkeit 50% angeschaltet. Falls keine Bewegung mehr registriert wird --> dann aus.
Stellt sich allerdings die Frage, ob der Dämmerungssensor im gleichen Raum ist. In diesem Fall würde der Wert wahrscheinlich nicht mehr unter 50 (Lux oder was auch immer) sein und das Licht, nachdem der Timer abgelaufen ist, nicht erneut anschalten.
Der Dämmerungssensor macht aus meiner Sicht auch nur Sinn für die dauerhaften kalten und dunklen Tage... Ansonsten kannst du besser mit der Annahme arbeiten, dass ab einem gewissen Sonnenstand in Relation zum Horizont (+- Offset), die gleiche Situation (Nennen wir sie mal Dämmerung
) erreicht wird. Das lässt sich prima berechnen (oder ist bereits in Astro-Funktionen enthalten) und kostet auch noch weniger als ein HmIP-Dämmerungssensor.
Ein weiterer Gedanke könnte "ein" zentraler Outdoor-Helligkeitssensor sein, der keinen direkten Kontakt zu künstlichen Lichtquellen (Straßenlaternen oder anderen Outdoor-Lampen) hat. Damit würde auch bei hoher Bewölkung, eine Korrelation zur Innenbeleuchtung (je Raum) möglich sein.
Das dürfte eigentlich schon alles sein.
-
Vielen Dank für die schnelle Antwort. Ich werde das heute Abend auf jeden Fall noch testen und melde mich dann nochmal.
Der Dämmerungssensor befindet sich im Außenbereich.
-
@chrissel sagte in Hilfe bei HUE Bewegungsmelder mit HMIP Schalter:
Der Dämmerungssensor befindet sich im Außenbereich.
Perfekt...
-
Habe die Schaltung soweit fertiggestellt. Leider funktioniert diese irgendwie nicht so richtig. Ich betrete den Raum, Licht geht an i.O., nach 30 Sek leider auch wieder aus obwohl eine erneute Bewegung stattfindet. Ich bewege mich weiter im Raum leider keine Reaktion und auf einmal geht die Lampe wieder an und dann nach ca. 20 Sek wieder aus. Wenn ich den Raum betrete geht das Licht an und wenn ich dann den Schalter betätige, geht die Lampe aus und fängt dann willkürlich an zu blinken.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="R8XY_=dk_G6-)1S:=;EB">Schalter_an</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="variables_set" id="}CItR,h-o^cddY32vu^5" x="-962" y="-562"> <field name="VAR" id="R8XY_=dk_G6-)1S:=;EB">Schalter_an</field> <value name="VALUE"> <block type="get_value_var" id="0q6t?M5`Fikei=DZlhh."> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="?.8o;mOO^kQNr#1}@]JM"> <field name="TEXT"></field> </shadow> <block type="field_oid" id="-^w]~qRX}9(3~@URdZ2G"> <field name="oid">hm-rpc.1.00085BE98F0B6B.4.STATE</field> </block> </value> </block> </value> <next> <block type="on_ext" id="c7Gs~,7*5`nU:tgPpD1C"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="9F=1(uB*uwuXi5KB*$M7"> <field name="oid">hm-rpc.1.00085BE98F0B6B.4.STATE</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="NA-DRD]+w3loXX%yr=8{"> <field name="VAR" id="R8XY_=dk_G6-)1S:=;EB">Schalter_an</field> <value name="VALUE"> <block type="logic_negate" id="0IQ$4]^glz]n7ZvSG%)7"> <value name="BOOL"> <block type="variables_get" id="*7+!g,~o2]_V29LvHxsR"> <field name="VAR" id="R8XY_=dk_G6-)1S:=;EB">Schalter_an</field> </block> </value> </block> </value> <next> <block type="controls_if" id="$|2iFM}3R.O-|dHgEs)."> <mutation else="1"></mutation> <value name="IF0"> <block type="variables_get" id="zJs8@_pAJL:OY$9C)Siu"> <field name="VAR" id="R8XY_=dk_G6-)1S:=;EB">Schalter_an</field> </block> </value> <statement name="DO0"> <block type="control" id="ejv^DGVv2yXQ=`MIV+R["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hm-rpc.1.00085BE98F0B6B.4.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="6tY4H}u:syM`e46:9|2n"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="p/e8O-y#,YLe,Zh?)}6w"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.1.Esstisch_Zone.level</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="9lUnH,vwW:,oC|])RO1J"> <field name="NUM">100</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="~E(QOxBZHBonTF-c$,BG"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hm-rpc.1.00085BE98F0B6B.4.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="AU,,(tfUYR1[[u$cUeu!"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> <next> <block type="on_ext" id="{TRn~M)~m`2NiLo?Vh(="> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="}A|NB2FWvKg+_w*x/;$]"> <field name="oid">hue.0.BWM_Esszimmer_1.presence</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="Y^t!0Zi^(KqJ`qS3:^|A"> <field name="oid">hue.0.BWM_Esszimmer_2.presence</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="tpX(rch{||1_(57j,#S,"> <value name="IF0"> <block type="logic_operation" id="1D:`9XxVK^Y_TtYZnPCs" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="l,*{NQVI3S(_cUAL|ryR"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="HXPD6fA#yb]S9^EX..2E"> <field name="VAR" id="R8XY_=dk_G6-)1S:=;EB">Schalter_an</field> </block> </value> <value name="B"> <block type="logic_boolean" id="`VyjOsk67)AIff0w)A$6"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="*hL92__WJVU[PHAcUe}n"> <field name="OP">LT</field> <value name="A"> <block type="get_value_var" id="=0KlD14_@F%;sLJ$_$L;"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="k0u}J.;zQlEUtWkC#gB8"> <field name="TEXT"></field> </shadow> <block type="field_oid" id="OXLFC%D@pUpxy.$.VF3z"> <field name="oid">hm-rpc.1.0031DD89A9F6B4.1.ILLUMINATION</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="?o%^VARl/wOq=$4MVRdz"> <field name="NUM">50</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="(3k-^%_7_@d-CYk$!gcp"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hm-rpc.1.00085BE98F0B6B.4.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="u2|_@DTRHxNC{HIYO6-c"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="hLpBAr^.e0Re4B_uuUQX"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.1.Esstisch_Zone.level</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="7LBj=0Dp92aP+F-/yNjF"> <field name="NUM">50</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="w5g~`hSS.X/CKhm`N,z`"> <field name="NAME">timeout</field> <next> <block type="timeouts_settimeout" id=";_(;ov3s*%^G3}OG8%a:"> <field name="NAME">timeout</field> <field name="DELAY">30</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="imjPn!$@UuwI[2ltY;w$"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hm-rpc.1.00085BE98F0B6B.4.STATE</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="tYb)8MV+3vTllq),#7A{"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </xml>
-
Das Blockly (Code) ist ein wenig kurz. Aber ich versuche es mal so. Es sind Fehler in der Zuordnung deiner Datenpunkte.
Zunächst einmal sollte beim Schalter in dem ersten "falls - mache" und im "sonst" nicht der Schalter rein, sondern die Lampe. Vermute mal Esstisch_Zone.on (oder ähnlich - falls genauer, benötige ich die Datenpunkte aus Schalter und Lampe)
Esstisch_Zone.level = 0 muss nicht gesetzt werden. (aus ist aus)
Das gleiche im 2. Trigger. Da hat nur die Lampe etwas zu suchen. Nicht der Schalter
Also 4 x Schalter gegen Esszimmer_Zone.on austauschen. Die obersten beiden Zeilen mit dem Schalter (Variable und erster Trigger) sind korrekt.
Wo sind die Taster mit dem Short_Press im oberen Trigger?
-
Die Taster habe ich durch den Schaltaktor ersetzt. Dieser ist über die RaspberryMatic mit Direktverknüpfungen von den Tastern verknüpft.
Jetzt verstehe ich auch meinen Gedankenfehler. Über den Aktor schalte ich den Strom von der Lampe weg und somit gibt es keine Rückmeldung von der Lampe.
Gibt es keine Möglichkeit das die Lampe nicht am Dauerstrom hängt?
-
Ich nahm an, dass die Lampe bereits im Dauerstrom hängt. Das kann natürlich sonst nicht funktionieren, wenn der Schalter der Lampe die Spannung nimmt...
Prinzipiell ja (Elektrik Erfahrung???)
Also Schaltaktor ohne Lampe (d.h. nur L1 und N) und Lampe (hängt jetzt wahrscheinlich im L1 out) vom Schaltaktor trennen (abnehmen) und ebenfalls direkt mit L1 verbinden.
-
Oder den Schalter mit der Lampe einschalten und eingeschaltet (Tesa drauf
) lassen.
Bei Shelly und Tasmota kannst du die auch softwareseitig auf Dauerstrom setzten. Bei HmIP weiß ich das nicht...
Du hast ja noch die beiden Taster
Wäre dann das:
-
Ich gehe davon aus, das es ein Elektriker macht.
Wenn das dein Aktor ist, dann steckt wahrscheinlich in 1 oder 2 deine Esszimmerlampe. Die muss mit (L1 der ja schon in L steckt) ebenfalls in L
An N änderst du nichts
Dann hängt der Aktor an "Dauerstrom" und die Lampe ebenfalls. Die Schaltung ist danach natürlich ausschließlich logisch, d.h. wenn du den Schalter betätigst, steuerst du ausschließlich über ioBroker die Lampe.
-
Habe jetzt in der Raspberry Ausgang 2 (L1) auf Dauerstrom gesetzt und jetzt funktioniert die Schaltung. Leider ist somit der Messwertkanal 7 (Spannung, Strom, Leistung etc.) ohne Funktion.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="R8XY_=dk_G6-)1S:=;EB">Schalter_an</variable> <variable type="timeout" id="timeout">timeout</variable> </variables> <block type="variables_set" id="}CItR,h-o^cddY32vu^5" x="-962" y="-562"> <field name="VAR" id="R8XY_=dk_G6-)1S:=;EB">Schalter_an</field> <value name="VALUE"> <block type="get_value_var" id="0q6t?M5`Fikei=DZlhh."> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="?.8o;mOO^kQNr#1}@]JM"> <field name="TEXT"></field> </shadow> <block type="field_oid" id="-^w]~qRX}9(3~@URdZ2G"> <field name="oid">hm-rpc.1.00085BE98F0B6B.5.STATE</field> </block> </value> </block> </value> <next> <block type="on_ext" id="c7Gs~,7*5`nU:tgPpD1C"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="9F=1(uB*uwuXi5KB*$M7"> <field name="oid">hm-rpc.1.00085BE98F0B6B.5.STATE</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="NA-DRD]+w3loXX%yr=8{"> <field name="VAR" id="R8XY_=dk_G6-)1S:=;EB">Schalter_an</field> <value name="VALUE"> <block type="logic_negate" id="0IQ$4]^glz]n7ZvSG%)7"> <value name="BOOL"> <block type="variables_get" id="*7+!g,~o2]_V29LvHxsR"> <field name="VAR" id="R8XY_=dk_G6-)1S:=;EB">Schalter_an</field> </block> </value> </block> </value> <next> <block type="controls_if" id="$|2iFM}3R.O-|dHgEs)."> <mutation else="1"></mutation> <value name="IF0"> <block type="variables_get" id="zJs8@_pAJL:OY$9C)Siu"> <field name="VAR" id="R8XY_=dk_G6-)1S:=;EB">Schalter_an</field> </block> </value> <statement name="DO0"> <block type="control" id="ejv^DGVv2yXQ=`MIV+R["> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.1.Esstisch_Zone.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="6tY4H}u:syM`e46:9|2n"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="p/e8O-y#,YLe,Zh?)}6w"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.1.Esstisch_Zone.level</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="9lUnH,vwW:,oC|])RO1J"> <field name="NUM">100</field> </block> </value> </block> </next> </block> </statement> <statement name="ELSE"> <block type="control" id="~E(QOxBZHBonTF-c$,BG"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.1.Esstisch_Zone.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="AU,,(tfUYR1[[u$cUeu!"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </statement> <next> <block type="on_ext" id="{TRn~M)~m`2NiLo?Vh(="> <mutation xmlns="http://www.w3.org/1999/xhtml" items="2"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="}A|NB2FWvKg+_w*x/;$]"> <field name="oid">hue.0.BWM_Esszimmer_1.presence</field> </shadow> </value> <value name="OID1"> <shadow type="field_oid" id="Y^t!0Zi^(KqJ`qS3:^|A"> <field name="oid">hue.0.BWM_Esszimmer_2.presence</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="tpX(rch{||1_(57j,#S,"> <value name="IF0"> <block type="logic_operation" id="1D:`9XxVK^Y_TtYZnPCs" inline="false"> <field name="OP">AND</field> <value name="A"> <block type="logic_compare" id="l,*{NQVI3S(_cUAL|ryR"> <field name="OP">EQ</field> <value name="A"> <block type="variables_get" id="HXPD6fA#yb]S9^EX..2E"> <field name="VAR" id="R8XY_=dk_G6-)1S:=;EB">Schalter_an</field> </block> </value> <value name="B"> <block type="logic_boolean" id="`VyjOsk67)AIff0w)A$6"> <field name="BOOL">FALSE</field> </block> </value> </block> </value> <value name="B"> <block type="logic_compare" id="*hL92__WJVU[PHAcUe}n"> <field name="OP">LT</field> <value name="A"> <block type="get_value_var" id="=0KlD14_@F%;sLJ$_$L;"> <field name="ATTR">val</field> <value name="OID"> <shadow type="text" id="k0u}J.;zQlEUtWkC#gB8"> <field name="TEXT"></field> </shadow> <block type="field_oid" id="OXLFC%D@pUpxy.$.VF3z"> <field name="oid">hm-rpc.1.0031DD89A9F6B4.1.ILLUMINATION</field> </block> </value> </block> </value> <value name="B"> <block type="math_number" id="?o%^VARl/wOq=$4MVRdz"> <field name="NUM">50</field> </block> </value> </block> </value> </block> </value> <statement name="DO0"> <block type="control" id="(3k-^%_7_@d-CYk$!gcp"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.1.Esstisch_Zone.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="u2|_@DTRHxNC{HIYO6-c"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="hLpBAr^.e0Re4B_uuUQX"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.1.Esstisch_Zone.level</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="math_number" id="7LBj=0Dp92aP+F-/yNjF"> <field name="NUM">50</field> </block> </value> <next> <block type="timeouts_cleartimeout" id="w5g~`hSS.X/CKhm`N,z`"> <field name="NAME">timeout</field> <next> <block type="timeouts_settimeout" id=";_(;ov3s*%^G3}OG8%a:"> <field name="NAME">timeout</field> <field name="DELAY">30</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="imjPn!$@UuwI[2ltY;w$"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">hue.1.Esstisch_Zone.on</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="tYb)8MV+3vTllq),#7A{"> <field name="BOOL">FALSE</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </statement> </block> </next> </block> </next> </block> </xml>
-
Klar, der ist ja nicht mehr in der Messleitung.
Evtl. findest du Infos, ob es bei HmIP eine ähnliche Funktion gibt wie bei Tasmota die "PowerOnState" https://tasmota.github.io/docs/PowerOnState/ mit Parameter 4 = turn relay(s) ON and disable further relay control
bzw. eine Entkoppelung der Relays vom Schalter (bei Power = On)
Zu den HmIP-Schaltaktoren kann ich das nicht beantworten, da ich keine habe...
-
Erstmal vielen Dank für die Hilfe.
Mein Gedanke war, dass die Philips Hue Lampen nicht die ganze Zeit im Standby laufen. Erst wenn der Aktor den Strom einschaltet.
Die Funktion ist mir bei HmIP noch nicht bekannt, werde gleich mal die CCU3 durchsuchen.
-
Das eigentliche Problem ist der Helligkeitsunterschied. Wenn die Lampe stromlos war, muss sie sich zunächst über den Hub widerverbinden und "wirklich Online" sein, damit sie über den ioBroker und den anderen Komponenten (BWM) geschaltet werden kann.
Ansonsten könnten auch die Taster und BWM den Schaltaktor bedienen. Und erst wenn der wirklich die Lampe angeschaltet hat, mit etlicher Verzögerung die Helligkeit steuern. So ein bisschen durch Brust geschossene Lösung mit Kompromissen.Alternativ kannst du auch die Spannung bei Level 50 und 100 messen und die über einen separaten Datenpunkt über die Zeit in der die Lampe je Level an ist zuordnen.
Viel Erfolg bei der Lösungssuche mit dem Aktor...
-
Vielleicht hilft dir das? Ob der Messaktor aber dann funktioniert ist aber nach wie vor fraglich! Ausprobieren...
https://de.elv.com/forum/taster-und-relais-getrennt-nutzbar-17286