Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Bewegungsmelder mit Hue und Sonos

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.1k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    719

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Bewegungsmelder mit Hue und Sonos

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
36 Beiträge 5 Kommentatoren 5.2k Aufrufe
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • M Offline
    M Offline
    marphDE
    schrieb am zuletzt editiert von
    #8

    So, dass Timeout zum Abschalten kommt jetzt wie gewünscht vom Script aber dafür macht mir das Sonos ansteuern irgendwie einen Strich durch die Rechnung.

    Gewünschtes Verhalten:

    • Zwischen Morgens 4:53 und 22.00 Uhr soll er mir meinen Radiosender aus den Favoriten abspielen wenn auch der Bewegungsmelder (Burglar) einen Bewegung registriert.

    • Sollte bereits manuell etwas auf der Sonos abgespielt werden unabhängig von der Tageszeit und dem Bewegungsmelder, dann soll auch nichts geädert werden, sprich Wiedergabe bleibt wie manuell vorher eingestellt und es wird auch nicht mit dem Radio aus den Favoriten überschrieben.

    • Licht soll nur automatisch eingeschalten werden wenn Helligkeit einen bestimmten Wert unterschreitet.

    • Licht soll nicht automatisch ausgehen wenn es bereits vorher manuell eigeschalten wurde (bereits an).

    Ist Zustand:

    • Licht geht an wenn Bewegung erkannt wurde.

    • Licht geht automatisch aus obwohl vorher manuell eingeschalten wurde

    • Radio geht in jedem Fall nach Timeout von 2 Min. aus auch wenn vorher manuell eingeschalten wurde.

    Hat jemand eine Idee ?

    <u>Hier mal ein Blockly Export davon:</u>

    ! ````
    <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on" id="sa9ME8u[Sog/O{wblk+0" x="88" y="-112"><field name="OID">zwave.0.NODE2.ALARM.Burglar_1</field>
    <field name="CONDITION">ne</field>

    <statement name="STATEMENT"><block type="debug" id="It-rtad-L}76|HU?HhOv"><field name="Severity">debug</field>
        <value name="TEXT"><shadow type="text" id="LuD|(_)aiB;4,;cSsIcB"><field name="TEXT">Bewegungsmelder ausgelöst.</field></shadow></value> 
        <next><block type="timeouts_cleartimeout" id="E8={^^guCVz,,c8=N^DP"><field name="NAME">timeout</field>
            <next><block type="controls_if" id="ALKGd?/:E}.?J:s4U@Iq"><mutation elseif="1"></mutation>
                <value name="IF0"><block type="logic_operation" id="*cmZABUGJfj5DS.bz5o4"><field name="OP">AND</field>
                    <value name="A"><block type="logic_compare" id="wE07ARewmnH_@G(qVTm1"><field name="OP">LT</field>
                        <value name="A"><block type="get_value" id="KX31vP}#Eb0#4PX+x)x2"><field name="ATTR">val</field>
                            <field name="OID">zwave.0.NODE2.SENSOR_MULTILEVEL.Luminance_1</field></block></value> 
                        <value name="B"><block type="math_number" id="EH5N,(v*]wuynpRQB82m"><field name="NUM">18</field></block></value></block></value> 
                    <value name="B"><block type="logic_operation" id="fsEycYCF*hg@6TK1,8P]"><field name="OP">AND</field>
                        <value name="A"><block type="logic_compare" id="{ht+Oe:*#YWvf{g_K(U4"><field name="OP">GT</field>
                            <value name="A"><block type="get_value" id="n+7srm%!h[^,]/n{23w]"><field name="ATTR">val</field>
                                <field name="OID">zwave.0.NODE2.ALARM.Burglar_1</field></block></value> 
                            <value name="B"><block type="math_number" id="]ASTeu42|_I^xj#*uwHR"><field name="NUM">0</field></block></value></block></value> 
                        <value name="B"><block type="logic_compare" id="vEXg2?.OTD2NQi.WEZr8"><field name="OP">EQ</field>
                            <value name="A"><block type="get_value" id="Rh=bEwTc3uuRnMJ@dT}{"><field name="ATTR">val</field>
                                <field name="OID">hue.0.Philips_hue.Regal_Bad.on</field></block></value> 
                            <value name="B"><block type="logic_boolean" id="Wrl%2rJs9Q{ftr((CWwL"><field name="BOOL">FALSE</field></block></value></block></value></block></value></block></value> 
                <statement name="DO0"><block type="debug" id="[!/)_ocY_HSJ`|}G__^c"><field name="Severity">debug</field>
                    <value name="TEXT"><shadow type="text" id="~}Re*u+%D[p|EH5!hl1J"><field name="TEXT">Bewegungsmelder-Bedingungen erfüllt...schalte Licht an</field></shadow></value> 
                    <next><block type="control" id="Eb@zY(c@IH%j-_vsUlqj"><mutation delay_input="false"></mutation>
                        <field name="OID">hue.0.Philips_hue.Regal_Bad.on</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE"><block type="logic_boolean" id="6jMWeNtG5vhP#vousf7?"><field name="BOOL">TRUE</field></block></value></block></next></block></statement> 
                <value name="IF1"><block type="logic_compare" id="qWY9vl]}(n-sx,#S_jve"><field name="OP">EQ</field>
                    <value name="A"><block type="get_value" id="Vc|AX2?A}FQ{5*t)w5y?"><field name="ATTR">val</field>
                        <field name="OID">zwave.0.NODE2.ALARM.Burglar_1</field></block></value> 
                    <value name="B"><block type="logic_boolean" id="`yLN)oX0eD7N](%PBK/C"><field name="BOOL">FALSE</field></block></value></block></value> 
                <statement name="DO1"><block type="debug" id="5;70Q-7`iI=ceU}JH?Qv"><field name="Severity">debug</field>
                    <value name="TEXT"><shadow type="text" id="Qhu{hgF+!Bys2`xX+T)B"><field name="TEXT">Bewegungsmelder-Bedingungen nicht erfüllt...schalte Licht aus</field></shadow></value> 
                    <next><block type="timeouts_settimeout" id=";y8d9a8?^[Vtj;RKicl`"><field name="NAME">timeout</field>
                        <field name="DELAY">2</field>
                        <field name="UNIT">min</field>
                        <statement name="STATEMENT"><block type="control" id="Sszb,~~:krW#4j7al4zN"><mutation delay_input="false"></mutation>
                            <field name="OID">hue.0.Philips_hue.Regal_Bad.on</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE"><block type="logic_boolean" id="wYGM[U#z[s^iE,8]|;2%"><field name="BOOL">FALSE</field></block></value></block></statement></block></next></block></statement> 
                <next><block type="timeouts_cleartimeout" id="u.WzqQ.3}Z68FtITg%*."><field name="NAME">timeout2</field>
                    <next><block type="controls_if" id=":;db`PD,Uu)EK7WnbM=="><mutation else="1"></mutation>
                        <value name="IF0"><block type="logic_operation" id="FnN_~C~A|g1DhkDfS/HN"><field name="OP">AND</field>
                            <value name="A"><block type="logic_compare" id="RZ[qVk!B=0A?ClI:KnCe"><field name="OP">GT</field>
                                <value name="A"><block type="get_value" id="e~JdQeY9m/f8TRL3u{@~"><field name="ATTR">val</field>
                                    <field name="OID">zwave.0.NODE2.ALARM.Burglar_1</field></block></value> 
                                <value name="B"><block type="math_number" id="_I^pz2w2{{}%iPUMi)H8"><field name="NUM">0</field></block></value></block></value> 
                            <value name="B"><block type="logic_operation" id="96A|;LtC{8b`d=IT839m"><field name="OP">AND</field>
                                <value name="A"><block type="time_compare" id="!C7y9@,KhTOhsmgqvK~;"><mutation end_time="true"></mutation>
                                    <field name="OPTION">between</field>
                                    <field name="START_TIME">4:35</field>
                                    <field name="END_TIME">22:00</field></block></value> 
                                <value name="B"><block type="logic_compare" id="+nv%qwET!z?)^j7Yz?nO"><field name="OP">NEQ</field>
                                    <value name="A"><block type="get_value" id="vQXI9#G_:OR!-:i*4!D2"><field name="ATTR">val</field>
                                        <field name="OID">sonos.0.root.10_0_0_61.state</field></block></value> 
                                    <value name="B"><block type="text" id="%lXRXHc^,5qMj{l?iK/e"><field name="TEXT">play</field></block></value></block></value></block></value></block></value> 
                        <statement name="DO0"><block type="control" id="|NXfwtq2q)t.m.1QeB1U"><mutation delay_input="false"></mutation>
                            <field name="OID">sonos.0.root.10_0_0_61.volume</field>
                            <field name="WITH_DELAY">FALSE</field>
                            <value name="VALUE"><block type="math_number" id="WFR0#DMZup_T?i@~ci%p"><field name="NUM">12</field></block></value> 
                            <next><block type="control" id="m1Z4ijnJ_.:OQTgEsI{S"><mutation delay_input="false"></mutation>
                                <field name="OID">sonos.0.root.10_0_0_61.favorites_set</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE"><block type="text" id="wb!H1}L.McRPsWlCH466"><field name="TEXT">94.3 RS2</field></block></value> 
                                <next><block type="control" id="M7=jamTO`f_Vy3asBWy_"><mutation delay_input="false"></mutation>
                                    <field name="OID">sonos.0.root.10_0_0_61.state</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE"><block type="text" id="Cp/7yeWv1Aei%jeL-SQl"><field name="TEXT">play</field></block></value> 
                                    <next><block type="control" id="0^SZ=tQeC/|]-Su_(|=k"><mutation delay_input="false"></mutation>
                                        <field name="OID">sonos.0.root.10_0_0_61.play</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="logic_boolean" id=":f1y3j};K,ER@r(@VEc#"><field name="BOOL">TRUE</field></block></value> 
                                        <next><block type="control" id="]C+RB`OFy[Nq.:xeJFeJ"><mutation delay_input="false"></mutation>
                                            <field name="OID">sonos.0.root.10_0_0_61.stop</field>
                                            <field name="WITH_DELAY">FALSE</field>
                                            <value name="VALUE"><block type="logic_boolean" id="WGj!w{y;A:*[^G+z?23+"><field name="BOOL">FALSE</field></block></value></block></next></block></next></block></next></block></next></block></statement> 
                        <statement name="ELSE"><block type="timeouts_settimeout" id="o3g;-cpX4ZM;5Oq1e#/1"><field name="NAME">timeout2</field>
                            <field name="DELAY">2</field>
                            <field name="UNIT">min</field>
                            <statement name="STATEMENT"><block type="control" id="8VX8b#!~Z9shewjZ#7_T"><mutation delay_input="false"></mutation>
                                <field name="OID">sonos.0.root.10_0_0_61.favorites_set</field>
                                <field name="WITH_DELAY">FALSE</field>
                                <value name="VALUE"></value> 
                                <next><block type="control" id="MgppBsV2+Na4|.vey`w+"><mutation delay_input="false"></mutation>
                                    <field name="OID">sonos.0.root.10_0_0_61.state</field>
                                    <field name="WITH_DELAY">FALSE</field>
                                    <value name="VALUE"><block type="text" id="=1KxAJ2sIFix]^xZb=J7"><field name="TEXT">stop</field></block></value> 
                                    <next><block type="control" id="#VA20cmt+?Olr!+@qz]P"><mutation delay_input="false"></mutation>
                                        <field name="OID">sonos.0.root.10_0_0_61.play</field>
                                        <field name="WITH_DELAY">FALSE</field>
                                        <value name="VALUE"><block type="logic_boolean" id="D}ei;}f7Y?*cU)u!Yi75"><field name="BOOL">FALSE</field></block></value> 
                                        <next><block type="control" id=",]qm.Y0v7L4sLtEs=[Pc"><mutation delay_input="false"></mutation>
                                            <field name="OID">sonos.0.root.10_0_0_61.stop</field>
                                            <field name="WITH_DELAY">FALSE</field>
                                            <value name="VALUE"><block type="logic_boolean" id="vX}fod`eXr5pnSkfr_37"><field name="BOOL">TRUE</field></block></value></block></next></block></next></block></next></block></statement></block></statement></block></next></block></next></block></next></block></next></block></statement></block></xml> 
    

    ! ````

    4060_bildschirmfoto_2018-01-17_um_18.14.39.png

    1 Antwort Letzte Antwort
    0
    • rantanplanR Offline
      rantanplanR Offline
      rantanplan
      schrieb am zuletzt editiert von
      #9

      @marphDE:

      Habe den Text nun hoffentlich sinnvoll angepasst, aber bekomme im Log trotzdem keine Ausgabe.

      Licht geht aber an aber mittlerweile auch nicht mehr aus. `
      Na dann triggert der Trigger nicht.

      Was ist den überhaupt ein "Burglar"?

      Dann mal einige Schritte zurück und erst die Grundbedingung checken.

      Mach mal ein neues Blockly.

      Darin nur einen Trigger für den "Burglar". So wie der aktuelle.

      In den Trigger nur eine Debug-Ausgabe mehr nicht.

      Also erst einmal schaffen das der BM getriggert wird.

      Kannst Du eventuell mal die Datenpunkte von dem "Burglar" liefern? (Screenshot)

      Rantanplan

      CCU3 / MS Server 2019(VM) / Scripten mit Blockly

      1 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        marphDE
        schrieb am zuletzt editiert von
        #10

        Achso Licht geht übrigens aus.

        Da ist irgendwo Scriptseitig eine Un-Logik in der Logik vorhanden. :lol:

        Er schaltet ja auch fein brav ein aus geht auch nach dem im Script voreingestellten Timeout aus.

        Allerdings berücksichtigt er dabei die manuellen Schaltungen (Sonos spielt bereits etwas ab und soll weder umgeschalten noch ausgeschalten werden, auch wenn keine Bewegung vorhanden ist und es nicht in der Zeit von 4:35 - 22.00 Uhr ist.

        Lampe soll ja auch anbleiben sofern sie vor Bewegung an war (auch wenn unter angegebener Helligkeit).

        Hier der Screenshot: Burglar springt hoch wenn Bewegung registriert wurde und nach eingestellter Abklingzeit geht er auf 0 wenn keine Bewegung mehr vorhanden ist.

        4060_bildschirmfoto_2018-01-17_um_18.41.53.png

        javascript.0	2018-01-17 19:05:28.388	info	script.js.Bad.Bewegungsmelder: setTimeout(ms=120000)
        javascript.0	2018-01-17 19:05:28.388	info	script.js.Bad.Bewegungsmelder: Sonos Stop ! - Keine Bedingung wurde erfüllt
        javascript.0	2018-01-17 19:05:28.388	info	script.js.Bad.Bewegungsmelder: getState(id=zwave.0.NODE2.ALARM.Burglar_1, timerId=0) => {"val":0,"ack":true,"ts":1516212328383,"q":0,"from":"system.adapter.zwave.0","lc":1516212328383}
        javascript.0	2018-01-17 19:05:28.388	info	script.js.Bad.Bewegungsmelder: clearTimeout() => cleared
        javascript.0	2018-01-17 19:05:28.388	info	script.js.Bad.Bewegungsmelder: setTimeout(ms=120000)
        javascript.0	2018-01-17 19:05:28.388	info	script.js.Bad.Bewegungsmelder: Bewegungsmelder-Bedingungen nicht erfüllt...schalte Licht aus
        javascript.0	2018-01-17 19:05:28.388	info	script.js.Bad.Bewegungsmelder: getState(id=zwave.0.NODE2.ALARM.Burglar_1, timerId=0) => {"val":0,"ack":true,"ts":1516212328383,"q":0,"from":"system.adapter.zwave.0","lc":1516212328383}
        javascript.0	2018-01-17 19:05:28.388	info	script.js.Bad.Bewegungsmelder: getState(id=zwave.0.NODE2.ALARM.Burglar_1, timerId=0) => {"val":0,"ack":true,"ts":1516212328383,"q":0,"from":"system.adapter.zwave.0","lc":1516212328383}
        javascript.0	2018-01-17 19:05:28.388	info	script.js.Bad.Bewegungsmelder: getState(id=zwave.0.NODE2.SENSOR_MULTILEVEL.Luminance_1, timerId=0) => {"val":0,"ack":true,"ts":1516211851840,"q":0,"from":"system.adapter.zwave.0","lc":1516203423068}
        javascript.0	2018-01-17 19:05:28.387	info	script.js.Bad.Bewegungsmelder: Bewegungsmelder ausgelöst.
        javascript.0	2018-01-17 19:05:03.794	info	script.js.Bad.Bewegungsmelder: setTimeout(ms=120000)
        javascript.0	2018-01-17 19:05:03.794	info	script.js.Bad.Bewegungsmelder: Sonos Stop ! - Keine Bedingung wurde erfüllt
        javascript.0	2018-01-17 19:05:03.794	info	script.js.Bad.Bewegungsmelder: getState(id=sonos.0.root.10_0_0_61.state, timerId=0) => {"val":"play","ack":true,"ts":1516212300333,"q":0,"from":"system.adapter.sonos.0","lc":1516212273204}
        javascript.0	2018-01-17 19:05:03.794	info	script.js.Bad.Bewegungsmelder: getState(id=zwave.0.NODE2.ALARM.Burglar_1, timerId=0) => {"val":8,"ack":true,"ts":1516212303786,"q":0,"from":"system.adapter.zwave.0","lc":1516212303786}
        javascript.0	2018-01-17 19:05:03.794	info	script.js.Bad.Bewegungsmelder: clearTimeout() => cleared
        javascript.0	2018-01-17 19:05:03.794	info	script.js.Bad.Bewegungsmelder: getState(id=zwave.0.NODE2.ALARM.Burglar_1, timerId=0) => {"val":8,"ack":true,"ts":1516212303786,"q":0,"from":"system.adapter.zwave.0","lc":1516212303786}
        javascript.0	2018-01-17 19:05:03.793	info	script.js.Bad.Bewegungsmelder: getState(id=hue.0.Philips_hue.Regal_Bad.on, timerId=0) => {"val":true,"ack":true,"ts":1516212277406,"q":0,"from":"system.adapter.hue.0","lc":1516212273193}
        javascript.0	2018-01-17 19:05:03.793	info	script.js.Bad.Bewegungsmelder: getState(id=zwave.0.NODE2.ALARM.Burglar_1, timerId=0) => {"val":8,"ack":true,"ts":1516212303786,"q":0,"from":"system.adapter.zwave.0","lc":1516212303786}
        javascript.0	2018-01-17 19:05:03.793	info	script.js.Bad.Bewegungsmelder: getState(id=zwave.0.NODE2.SENSOR_MULTILEVEL.Luminance_1, timerId=0) => {"val":0,"ack":true,"ts":1516211851840,"q":0,"from":"system.adapter.zwave.0","lc":1516203423068}
        javascript.0	2018-01-17 19:05:03.793	info	script.js.Bad.Bewegungsmelder: clearTimeout() => cleared
        javascript.0	2018-01-17 19:05:03.793	info	script.js.Bad.Bewegungsmelder: Bewegungsmelder ausgelöst.
        
        
        1 Antwort Letzte Antwort
        0
        • BBTownB Offline
          BBTownB Offline
          BBTown
          schrieb am zuletzt editiert von
          #11

          kannst Du bitte einmal erklären:

          • woran erkennst du dass die SONOS bereits läuft?

          • woran erkennst Du dass die Lampe bereits eingeschaltet ist?

          • bei welchen Bedingungen sollen sowohl Licht als auch die SONOS wieder ausgehen?

          • immer nach 2 Minuten sofern diese durch den Bewegungsmelder eingeschaltet wurden?

          • sofern Lampe und/oder SONOS bereits bei "Bewegung erkannt" eingeschaltet waren, soll dann das Ausschalten manuell erfolgen?

          ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            marphDE
            schrieb am zuletzt editiert von
            #12

            Hallo BBTown,

            wenn ich den Status der Objekte des Sonos ansehe, steht doch da ob Play, Pause, Stop -> true oder false.

            Soweit habe ich auch ohne Schalter ja sonst keine Möglichkeit das anders auszuwerten.

            Ausgehen sollen Licht sowie Sonos nach dem Timeout nur dann, wenn keine Bewegung registriert wird und Lampe sowie Sonos nicht bereits vorher schon liefen (weil ich eben mal nicht bloß kurz in's Bad gehe sondern vielleicht auch mal länger ein Entspannungsbad nehmen möchte).

            Immer dann nach im Script eingestellten Timeout wenn keine Bewegung für eine gewisse (wenn möglich variable Zeit) erfolgt ist.

            Zudem soll der SONOS natürlich nur innerhalb der Zeit zwischen 4.35 und 22 Uhr immer angehen (bei Bewegung) wenn er nicht vorher sowieso schon etwas abspielt (dann soll er daran auch nix ändern).

            Beim Licht soll dann auch noch Luminance(Lux) vom Sensor mit einbezogen sein um Tagsüber nicht unnötig das Licht einzuschalten.

            1 Antwort Letzte Antwort
            0
            • BBTownB Offline
              BBTownB Offline
              BBTown
              schrieb am zuletzt editiert von
              #13

              das wäre mein Ansatz, wobei ich nicht 100%ig sicher bin ob "Löschen falls läuft" für die Erneuerung der 2 Minuten bei erneuter Bewegung ausreicht?!

              Da könnte ggf. @rantanplan unterstützen bzgl. zusätzlicher timeouts zu den "Verzögerungen"
              1917_sonosundlicht.jpg

              ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

              1 Antwort Letzte Antwort
              0
              • rantanplanR Offline
                rantanplanR Offline
                rantanplan
                schrieb am zuletzt editiert von
                #14

                @BBTown:

                das wäre mein Ansatz, wobei ich nicht 100%ig sicher bin ob "Löschen falls läuft" für die Erneuerung der 2 Minuten bei erneuter Bewegung ausreicht?! `
                Ja, das geht. Die Zeit wird dann jeweils um 2 Min. verlängert.

                Nach Ablauf der 2 Minuten werden die Befehle aber fast "gleichzeitig" abgefeuert.

                Keine Ahnung ob SONOS sich dabei "verschluckt".

                Rantanplan

                CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                1 Antwort Letzte Antwort
                0
                • M Offline
                  M Offline
                  marphDE
                  schrieb am zuletzt editiert von
                  #15

                  Danke, werde ich morgen mal probieren und dann berichten :D

                  1 Antwort Letzte Antwort
                  0
                  • BBTownB Offline
                    BBTownB Offline
                    BBTown
                    schrieb am zuletzt editiert von
                    #16

                    @rantanplan:

                    Nach Ablauf der 2 Minuten werden die Befehle aber fast "gleichzeitig" abgefeuert.

                    Keine Ahnung ob SONOS sich dabei "verschluckt". ` Das ist bei mir (in Verbindung mit 7 SONOS Geräten) bisher völlig unkritisch.

                    Wobei ich einen etwas anderen Weg gehe da ich über Alexa auch den Party-Modus steuere (alle SONOS in einer Gruppe spielen die gleiche Musik).

                    Ich habe ein separates Script welches alle meine SONOS überwacht.

                    Sofern bei einem SONOS die Lautstärke sich auf "> 1" ändert, wird über das Script für den/das SONOS Gerät folgendes gesetzt:

                    mute = false

                    play = true

                    stop = false

                    state = "play"

                    Ändert sich die Lautstärke eines/mehrerer SONOS auf "< 2", dann wird im umgekehrten Fall folgendes je Gerät gesetzt:

                    play = false

                    stop = true

                    state = "stop"

                    Somit benötige ich im Script für die Lichtschaltung im Bad bsp. nur den Befehl "SONOS Lautstärke = 20" und beim Ausschalten "SONOS Lautstärke = 0" anzugeben alles andere wird automatisch durch das generische Script geschaltet. Das hält meine anderen Scripte sehr übersichtlich.

                    Das Java-Script stammt von "pix" und ist auch in meinem http://forum.iobroker.net/viewtopic.php?f=37&t=7395 enthalten.

                    ! ````
                    /* Alexa_Sonos_schalten
                    ! reagiert auf Lautstärkeänderungen
                    Alexa Smartname zeigt auf .volume
                    Sonos-Adapter Version 1.6.0 voraus!
                    ! http://forum.iobroker.net/viewtopic.php?f=37&p=75526#p75526
                    ! 15.07.2017 erstellt von pix nach Idee von BBTown
                    16.07.2017 Quelle zugefügt
                    */
                    const logging = true;
                    ! // sonos.0.root.XXX_XXX_XXX_XXX.volume
                    var regex_vol = /^sonos.[0-9].root.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)_(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).volume$/;
                    ! on({
                    id: regex_vol,
                    change: 'ne'
                    }, function(data) {
                    var pfad = getIdByName(data.channelName);
                    if (logging) log(data.channelName + ' (' + pfad + '.' + data.name + ') Lautstärke auf ' + data.state.val + '% geändert');
                    if (data.state.val >= 2) {
                    setState(pfad + '.muted', false);
                    setState(pfad + '.state', 'play');
                    setState(pfad + '.play', true);
                    setState(pfad + '.stop', false);
                    }
                    if (data.state.val < 2) {
                    setState(pfad + '.state', 'stop');
                    setState(pfad + '.play', false);
                    setState(pfad + '.stop', true);
                    }
                    });

                    ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                    1 Antwort Letzte Antwort
                    0
                    • M Offline
                      M Offline
                      marphDE
                      schrieb am zuletzt editiert von
                      #17

                      ich habe das Blockly von BBTown mal nachgebaut, funktioniert auch soweit, bis auf eine Ausnahme.

                      Die Musik und das Licht gehen trotz Bewegung aus lassen sich wie es mir scheint auch vor Ablauf des Timeouts nicht wieder einschalten. Obwohl der Sensor schon etwas registriert.

                      1 Antwort Letzte Antwort
                      0
                      • rantanplanR Offline
                        rantanplanR Offline
                        rantanplan
                        schrieb am zuletzt editiert von
                        #18

                        Dann mach doch mal eine Screenshot, besser noch eine Export.

                        So kann man nur raten.

                        Rantanplan

                        CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                        1 Antwort Letzte Antwort
                        0
                        • M Offline
                          M Offline
                          marphDE
                          schrieb am zuletzt editiert von
                          #19

                          Ok, habe das Verhalten nochmal getestet er schaltet nach Timeout ab, allerdings selbst wenn ich vor dem Bewegungsmelder quer durch den Raum umherlaufe geht die Lampe und das Radio trotzdem nicht an.

                          Erst nach einer Weile wenn ich den Raum verlasse und eine bissen warte bevor ich ihn betrete, geht es wieder.

                          Komisch, eigentlich sollte er das Abschalten ja eigentlich außer Kraft setzen bzw. den Timeout verlängern so lange Bewegungen erfolgen.

                          Achja der Sensor erkennt aber auch Bewegungen (kann ich in den Objekten sehen), also liegt es nicht daran das nix angeschaltet wird.

                          Export:

                          ! ````
                          ! <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="~_jTRd2uEjv6BtxPG%fx" x="-13" y="13"><mutation items="1"></mutation>
                          <field name="CONDITION">ne</field>

                          <value name="OID0"><shadow type="field_oid" id="g54nI7K}1QilT[uDuw|^"><field name="oid">zwave.0.NODE2.ALARM.Burglar_1</field></shadow></value> 
                          <statement name="STATEMENT"><block type="controls_if" id="mR`+!yPdR6x#HZIUOGB]"><value name="IF0"><block type="logic_compare" id=",(1+%Q#FS=,;J[.8MUf)"><field name="OP">GT</field>
                                  <value name="A"><block type="get_value" id="}NMjHF,YZy#H?JmqV/{s"><field name="ATTR">val</field>
                                      <field name="OID">zwave.0.NODE2.ALARM.Burglar_1</field></block></value> 
                                  <value name="B"><block type="math_number" id="EqNu{/|gvV#BjB6sq2!U"><field name="NUM">0</field></block></value></block></value> 
                              <statement name="DO0"><block type="controls_if" id="r(n(?1ooC@}*dg.hb.^("><value name="IF0"><block type="logic_operation" id="8x/85[6ht1Wp?=C^Bbb]"><field name="OP">AND</field>
                                      <value name="A"><block type="time_compare" id="FXx1B]c4%R8#[h:Q+qCt"><mutation end_time="false"></mutation>
                                          <field name="OPTION">>=</field>
                                          <field name="START_TIME">18:00</field></block></value> 
                                      <value name="B"><block type="time_compare" id="W0L,nK%HQ+*:y]Pkw(E)"><mutation end_time="false"></mutation>
                                          <field name="OPTION"><</field>
                                          <field name="START_TIME">22:00</field></block></value></block></value> 
                                  <statement name="DO0"><block type="controls_if" id="|6yqMrq{ljIAzuAyMXT2"><value name="IF0"><block type="logic_compare" id=";:;uyP_6||mFe-),la/0"><field name="OP">NEQ</field>
                                          <value name="A"><block type="get_value" id="tnX,zOR3cMUH:~@pn3LU"><field name="ATTR">val</field>
                                              <field name="OID">sonos.0.root.10_0_0_61.state</field></block></value> 
                                          <value name="B"><block type="text" id="DEb[(D8PC}S8E8Zjj!NV"><field name="TEXT">play</field></block></value></block></value> 
                                      <statement name="DO0"><block type="control" id="XB/H3U!K90wtF[7|vbQ9"><mutation delay_input="false"></mutation>
                                          <field name="OID">sonos.0.root.10_0_0_61.volume</field>
                                          <field name="WITH_DELAY">FALSE</field>
                                          <value name="VALUE"><block type="math_number" id="(mhD+dAVVQVFv%YJTSoD"><field name="NUM">12</field></block></value> 
                                          <next><block type="control" id="nl98VkAw|z,C(emzqnj!"><mutation delay_input="false"></mutation>
                                              <field name="OID">sonos.0.root.10_0_0_61.state</field>
                                              <field name="WITH_DELAY">FALSE</field>
                                              <value name="VALUE"><block type="text" id="+vXq}[4M]dA+)4i@3z%]"><field name="TEXT">play</field></block></value> 
                                              <next><block type="control" id="OkL0pgQZ9`AJjQSPW#hH"><mutation delay_input="false"></mutation>
                                                  <field name="OID">sonos.0.root.10_0_0_61.favorites_set</field>
                                                  <field name="WITH_DELAY">FALSE</field>
                                                  <value name="VALUE"><block type="text" id="8|r]Y/R+ek~x#31fIu,P"><field name="TEXT">94.3 RS2</field></block></value> 
                                                  <next><block type="control" id="qQ;MkWLC:,z,R5!S0wa."><mutation delay_input="false"></mutation>
                                                      <field name="OID">sonos.0.root.10_0_0_61.stop</field>
                                                      <field name="WITH_DELAY">FALSE</field>
                                                      <value name="VALUE"><block type="logic_boolean" id="aZojuBdcU[bwg:4e2qyF"><field name="BOOL">FALSE</field></block></value> 
                                                      <next><block type="control" id="iq0Sb}MvKL^iu:eM{`/y"><mutation delay_input="false"></mutation>
                                                          <field name="OID">sonos.0.root.10_0_0_61.play</field>
                                                          <field name="WITH_DELAY">FALSE</field>
                                                          <value name="VALUE"><block type="logic_boolean" id="[Z`0CFHd?tS?dPg!LQi8"><field name="BOOL">TRUE</field></block></value> 
                                                          <next><block type="control" id="6buX@Sdq!ibXvl94Upi,"><mutation delay_input="true"></mutation>
                                                              <field name="OID">sonos.0.root.10_0_0_61.state</field>
                                                              <field name="WITH_DELAY">TRUE</field>
                                                              <field name="DELAY_MS">5</field>
                                                              <field name="UNIT">min</field>
                                                              <field name="CLEAR_RUNNING">TRUE</field>
                                                              <value name="VALUE"><block type="text" id="@WZWY+M@Gt;BG|p=1nzk"><field name="TEXT">stop</field></block></value> 
                                                              <next><block type="control" id="v7b2,e:fQG!bAI1;?6;}"><mutation delay_input="true"></mutation>
                                                                  <field name="OID">sonos.0.root.10_0_0_61.stop</field>
                                                                  <field name="WITH_DELAY">TRUE</field>
                                                                  <field name="DELAY_MS">5</field>
                                                                  <field name="UNIT">min</field>
                                                                  <field name="CLEAR_RUNNING">TRUE</field>
                                                                  <value name="VALUE"><block type="logic_boolean" id="5W%zBmmorL.Yw(Rq0dT9"><field name="BOOL">TRUE</field></block></value> 
                                                                  <next><block type="control" id="r?~AGLc9![dhMQ#P!GUt"><mutation delay_input="true"></mutation>
                                                                      <field name="OID">sonos.0.root.10_0_0_61.play</field>
                                                                      <field name="WITH_DELAY">TRUE</field>
                                                                      <field name="DELAY_MS">5</field>
                                                                      <field name="UNIT">min</field>
                                                                      <field name="CLEAR_RUNNING">TRUE</field>
                                                                      <value name="VALUE"><block type="logic_boolean" id="z^?F.0o4/K-iK_Ey/;%k"><field name="BOOL">FALSE</field></block></value></block></next></block></next></block></next></block></next></block></next></block></next></block></next></block></statement></block></statement> 
                                  <next><block type="controls_if" id="g]X2ch:E`b5r~fWTf_uH"><value name="IF0"><block type="logic_compare" id="ka@,mcr|HqLDmoz)!M=="><field name="OP">LT</field>
                                          <value name="A"><block type="get_value" id="T{:U-zon~czyj9n|e![a"><field name="ATTR">val</field>
                                              <field name="OID">zwave.0.NODE2.SENSOR_MULTILEVEL.Luminance_1</field></block></value> 
                                          <value name="B"><block type="math_number" id="cLpWZSzugm|}d5q|cV[J"><field name="NUM">8</field></block></value></block></value> 
                                      <statement name="DO0"><block type="controls_if" id="ENf_66UQK0e%V~!(`j0v"><value name="IF0"><block type="logic_compare" id="}5w|SRh7[G;Ib}51C!}N"><field name="OP">EQ</field>
                                              <value name="A"><block type="get_value" id="]npCfa)JM9l)15%ZPJw?"><field name="ATTR">val</field>
                                                  <field name="OID">hue.0.Philips_hue.Regal_Bad.on</field></block></value> 
                                              <value name="B"><block type="logic_boolean" id="74TgnKyM,3/P`wo]9sh/"><field name="BOOL">FALSE</field></block></value></block></value> 
                                          <statement name="DO0"><block type="control" id="G=qPrmHO5l+z^ZJE),L%"><mutation delay_input="false"></mutation>
                                              <field name="OID">hue.0.Philips_hue.Regal_Bad.on</field>
                                              <field name="WITH_DELAY">FALSE</field>
                                              <value name="VALUE"><block type="logic_boolean" id=".#=F^vP7ok^u}8eq]a-#"><field name="BOOL">TRUE</field></block></value> 
                                              <next><block type="control" id="[[!wWvXc~6!UX4WMU6N~"><mutation delay_input="true"></mutation>
                                                  <field name="OID">hue.0.Philips_hue.Regal_Bad.on</field>
                                                  <field name="WITH_DELAY">TRUE</field>
                                                  <field name="DELAY_MS">5</field>
                                                  <field name="UNIT">min</field>
                                                  <field name="CLEAR_RUNNING">TRUE</field>
                                                  <value name="VALUE"><block type="logic_boolean" id="h*ei|yucD)K}rUfzUvl1"><field name="BOOL">FALSE</field></block></value></block></next></block></statement></block></statement></block></next></block></statement></block></statement></block></xml> 
                          

                          ! ````

                          4060_bildschirmfoto_2018-01-19_um_19.32.41.png
                          4060_bildschirmfoto_2018-01-19_um_19.33.05.png

                          1 Antwort Letzte Antwort
                          0
                          • rantanplanR Offline
                            rantanplanR Offline
                            rantanplan
                            schrieb am zuletzt editiert von
                            #20

                            @marphDE:

                            Achja der Sensor erkennt aber auch Bewegungen (kann ich in den Objekten sehen), also liegt es nicht daran das nix angeschaltet wird. `
                            Wahrscheinlich ist das so ein "komischer" BM der die Bewegungserkennung immer auf "true" hat.

                            Oder schaltet der auch irgendwann wieder auf "false"?

                            Wenn nicht, musst Du auf "aktualisiert" triggern.

                            Das Script habe ich mir noch nicht angesehen.

                            Grüße

                            Rantanplan

                            CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                            1 Antwort Letzte Antwort
                            0
                            • BBTownB Offline
                              BBTownB Offline
                              BBTown
                              schrieb am zuletzt editiert von
                              #21

                              @marphDE:

                              ich habe das Blockly von BBTown mal nachgebaut ` Nein, hast Du nicht!!

                              Du hast eine <u>wesentliche</u> Eigenschaft meines Blockly Beispiels geändert, da Du im Trigger nicht auf "aktualisiert" sondern auf "geändert" reagierst …

                              ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                              1 Antwort Letzte Antwort
                              0
                              • M Offline
                                M Offline
                                marphDE
                                schrieb am zuletzt editiert von
                                #22

                                @BBTown

                                Ok, es war genau so nachgebaut !

                                Ändert aber nichts an der Tatsache das dass Verhalten eben wie beschrieben ist, denn deshalb hatte ich ja das auf "geändert" gesetzt.

                                @rantanplan:

                                Dieser "komische" Bewegungsmelder sagt eigentlich weder "true" noch "false".

                                Er gibt bei keine Bewegung eine "0" und bei höchster Empfindlichkeit eine "8" und er steht keinesfalls permanent auf größer "0".

                                In meinem ursprünglichen Script (was auch auf "geändert" triggert ) funktioniert das mit dem nur Abschalten wenn keine Bewegung mehr erfolgt ja, bis auf einen Timeout und der Tatsache, abzufragen ob bereits Sonos & Licht vorher eingeschalten waren (manuell weil so gewünscht) und wenn nicht dann dann auch nichts daran ändern.

                                Fakt ist, dass er momentan nach dem Timeout abschaltet auch wenn Bewegung erfolgt.

                                1 Antwort Letzte Antwort
                                0
                                • BBTownB Offline
                                  BBTownB Offline
                                  BBTown
                                  schrieb am zuletzt editiert von
                                  #23

                                  Wir können nur auf das reagieren was Du uns zeigst, und das war etwas anderes als die Vorlage beinhaltete.

                                  Hast Du den Unterschied zwischen "Aktualisieren" und "geändert" verinnerlicht?

                                  Dann versuche doch mal folgendes (Screenshot):
                                  1917_sonosundlichtvariablen.jpg

                                  ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                                  1 Antwort Letzte Antwort
                                  0
                                  • M Offline
                                    M Offline
                                    marphDE
                                    schrieb am zuletzt editiert von
                                    #24

                                    hallo, danke für deine Hilfe.

                                    ehrlich gesagt habe ich den Unterschied noch nicht wirklich realisiert, da sich nach meinem Verständnis nach auch bei einer Aktualisierung der Wert meines Objektes ändert.

                                    Zu deinem Änderungsvorschlag hätte ich eine Frage: Wo muss ich denn "Musik_durch_BWM", "Licht_durch_BWM" "Licht und Musik aus" erzeugen?

                                    1 Antwort Letzte Antwort
                                    0
                                    • rantanplanR Offline
                                      rantanplanR Offline
                                      rantanplan
                                      schrieb am zuletzt editiert von
                                      #25

                                      @marphDE:

                                      Zu deinem Änderungsvorschlag hätte ich eine Frage: Wo muss ich denn "Musik_durch_BWM", "Licht_durch_BWM" "Licht und Musik aus" erzeugen? `

                                      Das sind lokale Variablen.

                                      Schau mal unter "Variablen".

                                      Rantanplan

                                      CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                      1 Antwort Letzte Antwort
                                      0
                                      • rantanplanR Offline
                                        rantanplanR Offline
                                        rantanplan
                                        schrieb am zuletzt editiert von
                                        #26

                                        @marphDE:

                                        ehrlich gesagt habe ich den Unterschied noch nicht wirklich realisiert, da sich nach meinem Verständnis nach auch bei einer Aktualisierung der Wert meines Objektes ändert. `
                                        Bei einer Aktualisierung ändert sich der Wert nicht unbedingt.

                                        Angenommen Dein BM hat eine Bewegung erkannt und setzt seinen Status.

                                        Jetzt bemerkt ein eine weitere Bewegung während der sein Status noch auf "erkannt" ist.

                                        Jetzt sendet der wieder "erkannt".

                                        Der Status "erkannt" bleibt gleich, ändert sich also nicht.

                                        Der Status wird "nur" aktualisiert".

                                        Auf "Aktualisierung" sollte man nur sehr überlegt und nur wenn notwendig anwenden!!!

                                        Viele Aktoren "aktualisieren" ihren Zusand sehr häufig.

                                        Grüße

                                        Rantanplan

                                        CCU3 / MS Server 2019(VM) / Scripten mit Blockly

                                        1 Antwort Letzte Antwort
                                        0
                                        • BBTownB Offline
                                          BBTownB Offline
                                          BBTown
                                          schrieb am zuletzt editiert von
                                          #27

                                          @marphDE:

                                          Zu deinem Änderungsvorschlag hätte ich eine Frage: Wo muss ich denn "Musik_durch_BWM", "Licht_durch_BWM" "Licht und Musik aus" erzeugen? ` Wenn Du eine Variable in dein Script einbaust, dann kannst Du den Namen der Variablen ändern (klick auf den Pfeil/Dropdown neben dem Variablennamen), das habe ich hier getan damit Du die beiden Variablen besser unterscheiden kannst.

                                          Den Namen des Timers änderst Du in dem Du einfach auf das Wort "timeout" klickst und überschreibst.

                                          Auch hier habe ich die Änderung der Übersichtlichkeit halber vorgenommen.

                                          ioBroker auf NUC (VM debian v13 (Trixie ), node v22.21.0 npm v10.9.4, js-controller v7.1.0 jsonl/jsonl / HomeMatic CCU-2 (Wired und Funk) / Philips HUE / echo.DOT / Broadlink RM pro / SONOS

                                          1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          402

                                          Online

                                          32.6k

                                          Benutzer

                                          82.0k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe