Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. [gelöst] Lichtsteuerung mit BWM und Hue Wall Switch

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Lichtsteuerung mit BWM und Hue Wall Switch

    This topic has been deleted. Only users with topic management privileges can see it.
    • sentinel
      sentinel last edited by sentinel

      Hallo zusammen,
      mein funktionierendes Blockly zur Lichtsteuerung über einen Bewegungsmelder mit unterschiedlichem Verhalten bei Tages- und Nachtzeit und Timer möchte ich gerne bei erstmaliger Betätigung von einem Lichttaster (3 Taster sind in dem Raum vorhanden) unterbrechen (inkl. Timer), das Licht auf 100% stellen und bei nochmaligem Drücken mit den ursprünglichen Lichteinstellungen und Timer weiter fortführen. Die Lichttaster sind jeweils mit einem Hue Wall Switch Modul über den Zigbee Adapter angebunden. Als Datenpunkt des Wall Switch Tasters steht mir nur die Rolle state mit dem Wert Zeichenkette zur Verfügung. Das Modul ist als single push button eingerichtet.
      Habe schon vieles ausprobiert und nichts führte zum gewünschten Verhalten. Ich könnte mir vorstellen, dass eine Variable über ein anderes Script erstellt wird, in dem alle 3 Taster enthalten sind und der 1. und 2. Tastendruck definiert wird.
      Leider komme ich nicht weiter und bitte euch um Hilfe.

      9382a8ca-bb8f-4d9c-8d99-31c6b624a8ce-image.png

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @sentinel last edited by paul53

        @sentinel sagte: 3 Taster

        Jeder Taster hat einen Datenpunkt? Wenn ja, könnte es so funktionieren:

        Bild_2022-01-20_200147.png

        sentinel 1 Reply Last reply Reply Quote 0
        • sentinel
          sentinel @paul53 last edited by sentinel

          @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.
          945ad9c4-3343-4e9c-a487-bc16b526d672-image.png
          7f2a2ccd-00d8-4f51-9cbf-e1a042659600-image.png
          Das muss ich doch morgen in Ruhe durchdenken.

          paul53 1 Reply Last reply Reply Quote 0
          • paul53
            paul53 @sentinel last edited by

            @sentinel sagte: Was bewirkt die Variable Wert?

            Wert ist eine vordefinierte Variable unter "Trigger" und enthält den Wert des Trigger-Datenpunktes.

            Blockly_DP_Props.JPG

            @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:

            Bild_2022-01-20_222157.png

            sentinel 1 Reply Last reply Reply Quote 0
            • sentinel
              sentinel @paul53 last edited by

              @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.
              92b6fe04-9756-4e8b-b4dd-6d8be8854bf9-image.png
              f6be292d-ecc5-4a4c-8a69-addd3e90ee9e-image.png

              paul53 1 Reply Last reply Reply Quote 0
              • paul53
                paul53 @sentinel last edited by paul53

                @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.

                sentinel 2 Replies Last reply Reply Quote 0
                • sentinel
                  sentinel @paul53 last edited by

                  @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.

                  1 Reply Last reply Reply Quote 0
                  • sentinel
                    sentinel @paul53 last edited by

                    @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.
                    d1ecdfb5-c442-46c5-8f56-c3dba1c883a6-image.png

                    <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>
                    
                    sentinel 1 Reply Last reply Reply Quote 0
                    • sentinel
                      sentinel @sentinel last edited by

                      @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.
                      058e0f10-bb3e-49a2-aadc-cbcae652fe19-image.png
                      Wenn ich mir jedoch den zigbee2mqtt Adapter zusätzlich installiere (greift per websocket auf das zigbee2mqtt Docker Web-Interface zu), habe ich diese Datenpunkte:
                      1dce7f1f-fe6e-4250-b49a-30eb0748a05f-image.png
                      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.
                      4485d56e-3b51-4470-b8a3-d26f18e7821d-image.png

                      Ich hoffe, ich konnte mein Problem verständlich schildern.
                      Vielen Dank für jegliche Hilfe.

                      paul53 2 Replies Last reply Reply Quote 0
                      • paul53
                        paul53 @sentinel last edited by paul53

                        @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.

                        Bild_2022-12-21_175709033.png

                        sentinel 1 Reply Last reply Reply Quote 0
                        • sentinel
                          sentinel @paul53 last edited by

                          @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:
                          94388bd4-1fe9-4863-802c-25bbd377250a-image.png
                          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.

                          1 Reply Last reply Reply Quote 0
                          • paul53
                            paul53 @sentinel last edited by

                            @sentinel sagte: "Taster_Badezimmer/action" kurz hintereinander "left_press" und "left_press_release" auf.

                            Dann damit vergleichen:

                            Bild_2022-12-21_180626027.png

                            sentinel 1 Reply Last reply Reply Quote 0
                            • sentinel
                              sentinel @paul53 last edited by

                              @paul53
                              Teste jetzt mit deinem Script die Bewegungserkennung.
                              In der Küche steht der Wert auf 36, Script funktioniert aber anstandslos. Sehr merkwürdig.

                              sentinel 1 Reply Last reply Reply Quote 0
                              • sentinel
                                sentinel @sentinel last edited by

                                @paul53
                                c806ee87-2a26-4ff8-84fd-4923f6032fd5-image.png
                                Tatsache, da sind immer 60s zwischen den Erkennungen, obwohl
                                3c8dbe53-4177-4633-bb8c-84c83992acf7-image.png
                                gesetzt ist.

                                paul53 sentinel 2 Replies Last reply Reply Quote 0
                                • paul53
                                  paul53 @sentinel last edited by

                                  @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.

                                  1 Reply Last reply Reply Quote 0
                                  • sentinel
                                    sentinel @sentinel last edited by

                                    @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.

                                    sentinel 1 Reply Last reply Reply Quote 0
                                    • sentinel
                                      sentinel @sentinel last edited by

                                      @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.

                                      paul53 1 Reply Last reply Reply Quote 0
                                      • paul53
                                        paul53 @sentinel last edited by paul53

                                        @sentinel sagte: nach z.B. 10 Minuten ohne Bewegung

                                        Bild_2022-12-21_200130002.png

                                        sentinel 1 Reply Last reply Reply Quote 0
                                        • sentinel
                                          sentinel @paul53 last edited by

                                          @paul53
                                          Bleibt so noch der vorherige Scriptablauf bestehen?
                                          Habe selber mit einem zweiten timeout bei dem Taster-action Teil rumprobiert.

                                          paul53 1 Reply Last reply Reply Quote 0
                                          • paul53
                                            paul53 @sentinel last edited by

                                            @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.

                                            sentinel 1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            885
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            2
                                            28
                                            1326
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo