NEWS
[gelöst] Lichtsteuerung mit BWM und Hue Wall Switch
-
@sentinel sagte: 3 Taster
Jeder Taster hat einen Datenpunkt? Wenn ja, könnte es so funktionieren:
-
@paul53
Vielen Dank für den schnellen Testaufbau.
Ich habe es mit einem Taster nachgebaut, ohne es jedoch im Detail genau zu verstehen. Was bewirkt/bedeutet z.B. "setze manuell_ein auf nicht manuell_ein" und direkt danach "falls manuell_ein ..."? Was bewirkt die Variable Wert?
Der Timer läuft nach der ersten Bewegung, aber das Licht geht nicht an. Ein Tastendruck bewirkt nichts.
Das muss ich doch morgen in Ruhe durchdenken. -
@sentinel sagte: Was bewirkt die Variable Wert?
Wert ist eine vordefinierte Variable unter "Trigger" und enthält den Wert des Trigger-Datenpunktes.
@sentinel sagte in Bewegung-Licht Blockly mit Hue Wall Switch Erweiterung:
Was bewirkt/bedeutet z.B. "setze manuell_ein auf nicht manuell_ein"
Umschalten (toggle).
Es wird die falsche Variable auf level 100 gesetzt. Richtig:
-
@paul53
Hallo,
Das Licht schaltete sich sowohl bei Bewegung, als auch Tastendruck immer noch nicht ein. Daraufhin habe ich die Variable Wert ausgetauscht und es wurde hell. Nur der Timer funktionierte noch nicht und das Licht ging somit noch nicht aus. Den timeout Block eine Ebene höher heben brachte dann hier auch das gewünschte Ergebnis. Lediglich untenstehende Warnmeldung taucht im log auf. Es funktioniert aber alles.
Mega, das hätte ich ohne deine Hilfe nie so schnell geschafft. Lieben Dank dafür.
-
@sentinel sagte: Warnmeldung taucht im log auf.
Gehe nochmal auf die beiden Blöcke "stop timeout" und selektiere die Variable timeout.
@sentinel sagte in Bewegung-Licht Blockly mit Hue Wall Switch Erweiterung:
Nur der Timer funktionierte noch nicht und das Licht ging somit noch nicht aus.
Wenn auf "Occupancy" wahr getriggert wird, kann es nicht funktionieren, da der sonst-Zweig bei "Occupancy" falsch ausgeführt wird.
-
@paul53
Super, das log ist jetzt auch sauber.
Lerne gerade die weiteren zwei Wandschalter Module im Zigbee Adapter an und dann geht's in den Live Test.
Ich bin begeistert. Vielen Dank und wieder viel dazugelernt. -
@paul53
Dein Script hatte ich jetzt lange Zeit wegen verschiedener Gründe nicht im Einsatz.
Mittlerweile bin ich komplett weg von der Hue Bridge und habe knapp 60 Geräte erfolgreich hin zu zigbee2mqtt portiert, inkl. diyHue Bridge und Ambilight Einrichtung.
Ich wollte mich nochmal herzlich für dein Script bedanken, an dem ich mich jeden Tag erfreue!!
Nachstehend das Blockly und der Code für alle Interessierten.
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="LK7y6jlg$CMLZk.=#BD+">manuell_ein</variable> <variable id="p?GQlqxr#Uu4lR;cwiNj">cmd_manu</variable> <variable type="timeout" id="timeout">timeout</variable> <variable id="G@AE?2U`-YF66m,^sO{H">cmd</variable> </variables> <block type="on_ext" id="ctk0GqdR|L9Qlrwo#otR" x="187" y="-13"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">ge</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="VooGFSv9c3_Dy~2+(qbl"> <field name="oid">mqtt.0.zigbee2mqtt.Taster_Badezimmer.action</field> </shadow> </value> <statement name="STATEMENT"> <block type="variables_set" id="Cs{#Z=[*RRRBz2fc|0`{"> <field name="VAR" id="LK7y6jlg$CMLZk.=#BD+">manuell_ein</field> <value name="VALUE"> <block type="logic_negate" id="_[@AkYzfT-8;kFPKxT44"> <value name="BOOL"> <block type="variables_get" id="x[]zkh|D8%Ld=%AB_Ym:"> <field name="VAR" id="LK7y6jlg$CMLZk.=#BD+">manuell_ein</field> </block> </value> </block> </value> <next> <block type="controls_if" id="L|/P1idJfR1V`p:a6Tu1"> <mutation else="1"></mutation> <value name="IF0"> <block type="variables_get" id="z;I3!,XXoK)bof_LU8mI"> <field name="VAR" id="LK7y6jlg$CMLZk.=#BD+">manuell_ein</field> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="wtf[y;2KU-07v!:r@1g*"> <field name="NAME">timeout</field> <next> <block type="variables_set" id="ff,1Uu=tpU]40;.nK.kR"> <field name="VAR" id="G@AE?2U`-YF66m,^sO{H">cmd</field> <value name="VALUE"> <block type="get_value" id="w:e_msmqzR=yLJH2-:,s"> <field name="ATTR">val</field> <field name="OID">mqtt.0.zigbee2mqtt.Licht_Badezimmer.set</field> </block> </value> <next> <block type="variables_set" id="wZenF]vpYjd$1E_}{k3H"> <field name="VAR" id="p?GQlqxr#Uu4lR;cwiNj">cmd_manu</field> <value name="VALUE"> <block type="text" id="ewNk|MEhId6F%_-8fM@a"> <field name="TEXT">{"transition": "1", "color_temp": "cool", "brightness": "254", "state": "on"}</field> </block> </value> </block> </next> </block> </next> </block> </statement> <statement name="ELSE"> <block type="variables_set" id="}fvhmgpxfQt]/a7lSrlG"> <field name="VAR" id="p?GQlqxr#Uu4lR;cwiNj">cmd_manu</field> <value name="VALUE"> <block type="variables_get" id="y_))WMxO8{{sP(OP(dX4"> <field name="VAR" id="G@AE?2U`-YF66m,^sO{H">cmd</field> </block> </value> </block> </statement> <next> <block type="control" id="lUML;/jW{qT=Ef9*k|=B"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.zigbee2mqtt.Licht_Badezimmer.set</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="efXu|r!aec+a7TWFygg~"> <field name="VAR" id="p?GQlqxr#Uu4lR;cwiNj">cmd_manu</field> </block> </value> </block> </next> </block> </next> </block> </statement> </block> <block type="on_ext" id="Hs@YoClFY~!0afsws.TY" x="188" y="362"> <mutation xmlns="http://www.w3.org/1999/xhtml" items="1"></mutation> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid" id="c)1TWhm3JsD}a21^*OKC"> <field name="oid">zigbee2mqtt.0.0x00158d0006f99862.occupancy</field> </shadow> </value> <statement name="STATEMENT"> <block type="controls_if" id="Yu0?El(D8oB7z|bfl*G("> <value name="IF0"> <block type="logic_negate" id="Ay}t=+p5Qff+Jxqz=n?o"> <value name="BOOL"> <block type="variables_get" id="XNqMSfK/Q(xe(jr?bc(q"> <field name="VAR" id="LK7y6jlg$CMLZk.=#BD+">manuell_ein</field> </block> </value> </block> </value> <statement name="DO0"> <block type="controls_if" id="{}3[b!4Xh_~c(d)3(GR{"> <value name="IF0"> <block type="on_source" id="M;-B%RKT_2TT*4HB:a]Q"> <field name="ATTR">state.val</field> </block> </value> <statement name="DO0"> <block type="timeouts_cleartimeout" id="I[_$4*AF3xdn:5zpd#=k"> <field name="NAME">timeout</field> <next> <block type="controls_if" id="%BuO:{u)J9e_=kP*?~oI"> <mutation elseif="1"></mutation> <value name="IF0"> <block type="get_value" id="sE*_x*?`#!pCW:U*|`So"> <field name="ATTR">val</field> <field name="OID">javascript.0.variables.isDayTime</field> </block> </value> <statement name="DO0"> <block type="variables_set" id="u${x{Kaq-K_}TOlZ!vrN"> <field name="VAR" id="G@AE?2U`-YF66m,^sO{H">cmd</field> <value name="VALUE"> <block type="text" id="3+rr,5InrrnbDDu@YLr6"> <field name="TEXT">{"transition": "1", "color_temp": "warm", "brightness": "254", "state": "on"}</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_compare" id="m^^0`z}CLh/0t]~zyN81"> <field name="OP">LTE</field> <value name="A"> <block type="get_value" id="G6k011Aj3iQMh1DR-ug$"> <field name="ATTR">val</field> <field name="OID">zigbee2mqtt.0.0x00158d0006f99862.illuminance</field> </block> </value> <value name="B"> <block type="math_number" id="4[,;0ET}t{/0B$S1H3|e"> <field name="NUM">10</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="{:U($ICz|.TLL_4F9M1s"> <field name="VAR" id="G@AE?2U`-YF66m,^sO{H">cmd</field> <value name="VALUE"> <block type="text" id=",Chn0wP8kduF?KF,JLK+"> <field name="TEXT">{"transition": "1", "color_temp": "warm", "brightness": "50", "state": "on"}</field> </block> </value> </block> </statement> <next> <block type="control" id="nceNOJTd8G:*S;mua?6D"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.zigbee2mqtt.Licht_Badezimmer.set</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="variables_get" id="02?xQk-|a?U#552=`UAQ"> <field name="VAR" id="G@AE?2U`-YF66m,^sO{H">cmd</field> </block> </value> </block> </next> </block> </next> </block> </statement> <next> <block type="timeouts_settimeout" id="fPE2DI001A8N2CJaPYF$"> <field name="NAME">timeout</field> <field name="DELAY">60</field> <field name="UNIT">sec</field> <statement name="STATEMENT"> <block type="control" id="e5|$uqgZDLGKt~*7q%t]"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">mqtt.0.zigbee2mqtt.Licht_Badezimmer.set</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="i[mqHP-aSYU)[4P]s]A0"> <field name="TEXT">{"transition": "10", "state": "off"}</field> </block> </value> </block> </statement> </block> </next> </block> </statement> </block> </statement> </block> </xml>
-
@paul53
Mit einer Script-Anpassung funktioniert das Script nicht mehr (Licht geht nicht mehr aus) und ich verstehe nicht warum und hoffe erneut auf deine Hilfe.
Im funktionierenden Script ist "zigbee2mqtt/Taster_Badezimmer/action" ein Hue Wallswitch, welcher zwei Eingänge hat. Zum Zeitpunkt des funktionierenden Scripts gab es im Badezimmer nur die Deckenleuchte. Jetzt habe ich den zweiten Eingang für eine Spiegelbeleuchtung hinzugenommen und den einfachen Taster gegen einen Doppeltaster getauscht.
Bei nur einem Eingang taucht bei "Taster_Badezimmer/action" kurz hintereinander "left_press" und "left_press_release" auf. Mit zweitem Eingang kommt dazu das Pärchen für right.
Somit kann ich mit Taster_Badezimmer/action "ist gleich oder größer als" nicht mehr arbeiten, da jetzt auch mit dem anderen Taster für die Spiegelbeleuchtung das Script beeinflusst wird.
Im mqtt Adapter bekomme ich leider nur den Datenpunkt "action" angezeigt.
Wenn ich mir jedoch den zigbee2mqtt Adapter zusätzlich installiere (greift per websocket auf das zigbee2mqtt Docker Web-Interface zu), habe ich diese Datenpunkte:
Egal, wie ich es mit diesen Datenpunkten versuche: Das Licht geht bei Bewegung an und bei "left_press" wechselt das Licht von warm auf cool und bleibt an (wie gewollt). Nochmaliger Tastendruck wechselt wieder, wie gewollt, von cold zu warm, aber das Licht geht nach der Timerzeit nicht aus.
Habe sogar mit einem Hilfsdatenpunkt, welcher "left_press" hochzählt, versucht das Problem zu lösen, leider erfolglos. Ich verstehe nicht, warum das Licht nicht mehr per Timer aus geht.
Ich hoffe, ich konnte mein Problem verständlich schildern.
Vielen Dank für jegliche Hilfe. -
@sentinel sagte: das Licht geht nach der Timerzeit nicht aus.
Das hat doch nichts mit dem Taster zu tun, sondern mit "Occupancy". Logge mal den Trigger von "Occupancy" mittels Debug-Block.
-
@paul53
Chapeau, du hast offensichtlich den richtigen Ansatz direkt gefunden.
War aber auch nah dran. Bevor ich deine Nachricht gelesen habe, fiel mir gerade (Ansicht auf dem Tablet) auf, dass ich immer aus dem Raum gegangen bin, ohne eine letzte Bewegung.
Dann habe ich in den Status des Bewegungsmelders in dem z2m webinterface geschaut:
Der Wert ist bei den funktionierenden auf 0
Keine Ahnung, wie der Wert da reingekommen ist. Schaue gerade, wie ich ihn wieder auf 0 setzen kann. -
@sentinel sagte: "Taster_Badezimmer/action" kurz hintereinander "left_press" und "left_press_release" auf.
Dann damit vergleichen:
-
@paul53
Teste jetzt mit deinem Script die Bewegungserkennung.
In der Küche steht der Wert auf 36, Script funktioniert aber anstandslos. Sehr merkwürdig. -
@paul53
Tatsache, da sind immer 60s zwischen den Erkennungen, obwohl
gesetzt ist. -
@sentinel sagte: da sind immer 60s zwischen den Erkennungen
Auch, nachdem das Bad verlassen wurde? Du hast geschrieben
aber das Licht geht nach der Timerzeit nicht aus.
-
@paul53
Habe jetzt einen anderen Aqara Bwm genommen und siehe da, es funktioniert wie geplant.
Keine Ahnung, wie die 60s Pause da reingekommen sind.
Fehlersuche macht eigentlich Spaß, kostet nur auch Nerven.
Danke wieder einmal für deine Hilfe. -
@paul53
Wenn ich noch einmal stören dürfte.
In dem Script ist ja bei Betätigung des Lichtschalters Dauerlicht in kalt gewünscht.
Jetzt ist mir aufgefallen, dass meine Mädels es gerne auch mal super hell haben möchten, dann aber im verwöhnten Bewegungsmeldermodus sind und den Taster nicht mehr drücken. Die Lampen sind mitunter stundenlang an. Das möchte ich natürlich gerne verhindern.
Hab mich da auch schon dran versucht, nach z.B. 10 Minuten ohne Bewegung im cold Modus mit voller Helligkeit, hat aber nicht funktioniert. -
@sentinel sagte: nach z.B. 10 Minuten ohne Bewegung
-
@paul53
Bleibt so noch der vorherige Scriptablauf bestehen?
Habe selber mit einem zweiten timeout bei dem Taster-action Teil rumprobiert. -
@sentinel sagte: Bleibt so noch der vorherige Scriptablauf bestehen?
Ja, das ist der sonst-Zweig.
@sentinel sagte in [gelöst] Lichtsteuerung mit BWM und Hue Wall Switch:
mit einem zweiten timeout bei dem Taster-action Teil rumprobiert.
Der zweite Timeout muss auf Bewegung reagieren.
-
@paul53
Da habe ich deinen Vorschlag wohl falsch umgesetzt, denn Licht cold geht auch nach 10s aus.