Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Bewegungsmelder mit Hue und Sonos

    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

    Bewegungsmelder mit Hue und Sonos

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

      Hallo,

      ich nutze einen Aeotec Multi-Sensor 6 als Bewegungsmelder und möchte damit in meinem Bad das Licht und Sonos bei Bewegung

      unter bestimmten Bedingungen steuern, was bereits auch teilweise schon funktioniert.

      Was ich nun noch verbessern möchte ist, dass wenn das Licht bereits vorher manuell angeschalten wurde, auch eingeschalten bleibt.

      Bei Sonos möchte ich das gerne auch so umsetzen das wenn bereits vorher etwas lief, soll er auch nichts ändern.

      Der Bewegungsmelder kann ja per Parameter angepasst werden (Timeouts, Reports etc.) allerdings wäre es schöner wenn das Abschalten des Lichtes und Sonos mit einem Timer innerhalb des Scripts gelöst wäre, statt über irgendwelche Parameter in der Z-Wave Konfiguration. Soll heißen, aktuell wird abgeschaltet wenn der Haltewert von 5 Minuten in den Parametern wieder zurückgesetzt wird.

      Vielleicht kann mir da jemand ein wenig bei helfen.

      Liebe Grüße,

      Martin
      4060_bildschirmfoto_2018-01-16_um_23.54.26.png

      1 Reply Last reply Reply Quote 0
      • L
        Linedancer last edited by

        Hallo Martin,

        ich löse da Thema so:
        1564_2018-01-17.png
        Der Datenpunkt "SV_OG_FLur_LichtManuell" wird vom Lichtschalter beim Einschalten auf true und beim ausschalten auf false gesetzt. Damit ist sichergestellt das der Bewegungsmelder nix macht, wenn das Licht von Hand eingeschaltet wurde.

        1 Reply Last reply Reply Quote 0
        • M
          marphDE last edited by

          Leider habe ich hier noch keine Schalter die ich abfragen könnte ob sie manuell betätigt wurden.

          Aber der Rest leuchtet mir denke ich ein. 😄 :lol:

          1 Reply Last reply Reply Quote 0
          • M
            marphDE last edited by

            habe nun mal versucht das so umzubauen, dass das Script erstmal schaut ob der Helligkeitswert des Sensors unter einem bestimmten Wert liegt und ob Bewegung registriert wurde sowie den Status der Lampe (an/aus) vorher mit einzubeziehen (mit UND Verknüpfung).

            Dabei Sollte ja nur dann geschalten werden, wenn wirklich alle Drei Bedingungen erfüllt werden.

            Nun habe ich zusätzlich versucht das um einen Timer bzw. Timeout zu ergänzen, leider schaltet das Licht momentan überhaupt nicht ein.
            4060_bildschirmfoto_2018-01-17_um_12.40.23.png

            1 Reply Last reply Reply Quote 0
            • rantanplan
              rantanplan last edited by

              Hallo marphDE

              Setze doch mal den Debug-Baustein ein.

              Sonst ist das ein fischen im Trüben.

              1x direkt über den "Stop timeout". Damit kannst Du überprüfen ob der Trigger überhaupt gestartet wird.

              Und jeweils direkt unter der "falls" und "sonst falls" Bedingung.

              Damit kannst Du sehen welche und ob überhaupt eine Bedingung erfüllt wird.

              Der Debug-Baustein ist ein unverzichtliches Werkzeug zur Fehlersuche!

              Dann die Datenpunkte überprüfen!

              Am Besten unter Objekte.

              Was für Werte kommen da rein zum Schalten.

              Mal die Leuchte ein und ausschalten und schauen was in den Datenpunkten geändert wird.

              Grüße

              1 Reply Last reply Reply Quote 0
              • M
                marphDE last edited by

                so in etwa ?

                sorry aber das ist alles noch komplett neu für mich :roll:
                4060_bildschirmfoto_2018-01-17_um_15.59.10.png

                1 Reply Last reply Reply Quote 0
                • rantanplan
                  rantanplan last edited by

                  @marphDE:

                  so in etwa ?

                  sorry aber das ist alles noch komplett neu für mich :roll: `
                  Ja, die Anordnung ist OK.

                  Aber ich würde unterschiedliche Texte reinschreiben.

                  Sonst siehst Du im LOG nur die Ausgabe "test" und weist nicht welcher Baustein die Meldung gemacht hat.

                  1 Reply Last reply Reply Quote 0
                  • M
                    marphDE last edited by

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

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

                      1 Reply Last reply Reply Quote 0
                      • M
                        marphDE last edited by

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

                          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?

                          1 Reply Last reply Reply Quote 0
                          • M
                            marphDE last edited by

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

                              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

                              1 Reply Last reply Reply Quote 0
                              • rantanplan
                                rantanplan last edited by

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

                                1 Reply Last reply Reply Quote 0
                                • M
                                  marphDE last edited by

                                  Danke, werde ich morgen mal probieren und dann berichten 😄

                                  1 Reply Last reply Reply Quote 0
                                  • BBTown
                                    BBTown last edited by

                                    @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);
                                    }
                                    });

                                    1 Reply Last reply Reply Quote 0
                                    • M
                                      marphDE last edited by

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

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

                                        So kann man nur raten.

                                        1 Reply Last reply Reply Quote 0
                                        • M
                                          marphDE last edited by

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

                                            @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

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            722
                                            Online

                                            31.9k
                                            Users

                                            80.1k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            36
                                            4353
                                            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