Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. [gelöst] Lautstärke mit Aqara Cube steuern

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Lautstärke mit Aqara Cube steuern

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

      Hallo liebe Skriptler, ich hab mir ein Blockly ausgedacht, dass die Lautstärke am TV über den Cube steuern soll. Gestern abend passierte nüscht. Bevor ich heute abend weiter experimentiere wär's super wenn ihr mal drüber schauen würdet .. ob ich was generell missverstanden habe.

      4418_2018-09-24_08-38-51cube.png

      Bevor ich die Lautstärke wirklich verstelle .. möchte ich per Text-Popup prüfen was passiert. Deshalb ist der Steuern-Block (der später verwendet werden soll) ausgegraut.

      Viele Grüße

      1 Reply Last reply Reply Quote 0
      • B
        Brati last edited by

        Schau doch mal hier:

        https://smarthome.schimmer-media.de/for … -tutorial/

        da wird die Lautstärke entsprechend dem Rotationsgrad gesetzt. Muss man vielleicht umrechnen...

        Grüße

        Brati

        1 Reply Last reply Reply Quote 0
        • D
          daniello last edited by

          Hi .. das Video hab ich gesehen .. aber das mit dem Rotationsgrad gefällt mir nicht. Zum einen das Umrechnen .. zum anderen aber auch, dass ein fester Wert entsteht. Ich möcht gerne die Lautstärke da abholen wo sie ist und von da lauter und leiser machen. Bin noch nicht dazu gekommen weiter zu testen .. ist mein Skript denn von der Blockly-Anwendung prinzipiell ok?

          1 Reply Last reply Reply Quote 0
          • B
            Brati last edited by

            Ich nutze kein Blockly 🙂 und mein Cube hat erst China verlassen…

            Was ich nicht weiß, ist wie schnell der Wert zur Drehung von true/ false wechselt und ob man vielleicht den Rotationsgrad überschreiben kann. Dann würde ich nämlich die aktuelle Lautstärke in den State schreiben um dann von dort aus die Änderung ausführen.

            Zum Testen ob deine Schleife funktioniert, würde ich log Einträge favorisieren. Es sieht richtig aus, läuft aber scheinbar nicht :).

            Grüße

            Brati

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

              @daniello:

              ob ich was generell missverstanden habe. `
              Anscheinend ja. Vorschlag:
              493_blockly_changevolume.jpg

              1 Reply Last reply Reply Quote 0
              • D
                daniello last edited by

                Danke Paul .. "mit: dir" sagt mir gar nichts .. hört sich spannend an. Probiere ich aus 🙂

                Ich hatte so im Gefühl, dass es ohne "Stop zylische Ausführung" nur mit while Schleife schwierig werden könnte.

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

                  @daniello:

                  "mit: dir" sagt mir gar nichts `
                  Den Übergabeparameter an die Funktion changeVolume(dir) habe ich dir (von direction) genannt.
                  @daniello:

                  dass es ohne "Stop zylische Ausführung" nur mit while Schleife schwierig werden könnte. `
                  Ja, while Schleifen sollte man (gerade als Anfänger) vermeiden ! Damit bringt man leicht ioBroker zum Absturz.

                  In Deinem Beispiel würden tausende Intervalle erzeugt werden und nach 250 ms tausende steuere ausgeführt werden. Damit hättest Du ioBroker lahm gelegt.

                  1 Reply Last reply Reply Quote 0
                  • D
                    daniello last edited by

                    ups 😞

                    1 Reply Last reply Reply Quote 0
                    • D
                      daniello last edited by

                      Paul .. krieg ich eine XML von Dir .. nicht dass ich zu faul bin das nachzubauen .. aber ich bin schon verunsichert wie das mit den :dir funzt .. würde ich mir gerne anschauen.

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

                        @daniello:

                        krieg ich eine XML von Dir `

                        ! ````
                        <xml xmlns="http://www.w3.org/1999/xhtml"><block type="procedures_defnoreturn" id="{nLDLNZ5bE-Tb}-y!qL2" x="-387" y="12"><mutation><arg name="dir"></arg></mutation>
                        <field name="NAME">changeVolume</field>
                        <comment pinned="false" h="80" w="160">Beschreibe diese Funktion …</comment>
                        <statement name="STACK"><block type="variables_set" id="QI03a,=9D*!zEeNeEq("><field name="VAR">varvol</field> <value name="VALUE"><block type="get_value" id="bI+j65fLNd1h|uMXC!1i"><field name="ATTR">val</field> <field name="OID">ID auswählen</field></block></value> <next><block type="timeouts_setinterval" id="t_IhHN:Ab;9(nW7yZ(7Q"><field name="NAME">Intervall</field> <field name="INTERVAL">250</field> <field name="UNIT">ms</field> <statement name="STATEMENT"><block type="math_change" id=")Qgn3HJ{s[+?(6j:At!b"><field name="VAR">varvol</field> <value name="DELTA"><shadow type="math_number" id="oB]Aqoaqu0+#,%MW2)5E"><field name="NUM">1</field></shadow> <block type="variables_get" id="y7}GX30c90{PL5m4NBr"><field name="VAR">dir</field></block></value>
                        <next><block type="control" id="6SJE_,46*%00Yh_YSJu)"><mutation delay_input="false"></mutation>
                        <field name="OID">Object ID</field>
                        <field name="WITH_DELAY">FALSE</field>
                        <value name="VALUE"><block type="variables_get" id="TQQuDT7%S7`uMd1gaB@{"><field name="VAR">varvol</field></block></value></block></next></block></statement></block></next></block></statement></block>
                        <block type="comment" id="Qwf3^Di.8P?GaYB/Uj9W" x="-387" y="188"><field name="COMMENT">Rotate right</field>
                        <next><block type="on_ext" id="+,6W{)-[r#.gMV/vwB.Z"><mutation items="1"></mutation>
                        <field name="CONDITION">ne</field>

                            <value name="OID0"><shadow type="field_oid" id="zuQt==2rB]6c*cZB}p8q"><field name="oid">default</field></shadow></value> 
                            <statement name="STATEMENT"><block type="controls_if" id="c-yUO8[.JsQ[VW!8?]de"><mutation else="1"></mutation>
                                <value name="IF0"><block type="on_source" id="~C}vkaf6@JMp3.f+o~g}"><field name="ATTR">state.val</field></block></value> 
                                <statement name="DO0"><block type="procedures_callnoreturn" id=":5]3.X}ssHX4G#t::5^B"><mutation name="changeVolume"><arg name="dir"></arg></mutation> 
                                    <value name="ARG0"><block type="math_number" id="IEAP{Q!Y^0Ba:`p,Y(Q8"><field name="NUM">1</field></block></value></block></statement> 
                                <statement name="ELSE"><block type="timeouts_clearinterval" id="AI)VikvnFO(goXsxIh0g"><field name="NAME">Intervall</field></block></statement></block></statement> 
                            <next><block type="comment" id="N2]uFCFmOh[Z2QU[g9*_"><field name="COMMENT">Rotate left</field>
                                <next><block type="on_ext" id="1*82lwzQZe8[r`Ekd*}{"><mutation items="1"></mutation>
                                    <field name="CONDITION">ne</field>
                        
                                    <value name="OID0"><shadow type="field_oid" id="dI#^^e0[tP/Vq~09qVPK"><field name="oid">default</field></shadow></value> 
                                    <statement name="STATEMENT"><block type="controls_if" id="_?XGzx|b.g4Q;B9m9+se"><mutation else="1"></mutation>
                                        <value name="IF0"><block type="on_source" id="A`Fof327F]pn^}1OuP)4"><field name="ATTR">state.val</field></block></value> 
                                        <statement name="DO0"><block type="procedures_callnoreturn" id="#BhbAzK[zWRU_M+*Qtja"><mutation name="changeVolume"><arg name="dir"></arg></mutation> 
                                            <value name="ARG0"><block type="math_number" id="q,1mgB/f@9@S`VZ0V,T-"><field name="NUM">-1</field></block></value></block></statement> 
                                        <statement name="ELSE"><block type="timeouts_clearinterval" id="([kAC;q}p*]nXKy72yox"><field name="NAME">Intervall</field></block></statement></block></statement></block></next></block></next></block></next></block></xml> 
                        
                        Die Datenpunkt-IDs müssen natürlich noch zugewiesen werden.
                        1 Reply Last reply Reply Quote 0
                        • D
                          daniello last edited by

                          Mir ist vorher gar nicht bewusst geworden, dass es direkte Knöppkes in den Objekten für Vol Up/Down gibt .. hab's grad mal mit diesem Blockly probiert:

                          4418_2018-09-30_195142vol.png

                          Schaut gut aus und befreit von den Millisekundenexperimenten .. aber wirklich brauchbar ist es trotzdem nicht. Es funktionert nicht spontan .. ich muss erst eine Weile drehen bis sich was regt. Das kann an der Abfragezeit im lgtv.0 Adapter liegen oder aber der Fernseher reagiert einfach langsam.

                          Hab fast das gleiche mal im Adapter-Thread gepostet .. setze hier erstmal auf gelöst!

                          Adapter-Thread: viewtopic.php?f=24&t=3624&p=181426&hilit=lgtv.0#p181426

                          Danke nochmals für die Hilfestellung .. sehr lehrreich!

                          1 Reply Last reply Reply Quote 0
                          • B
                            Brati last edited by

                            So mein Cube ist auch da und funzt sehr gut.

                            Warum rechnest du nicht den Wert "mihome.0.devices.xxxx.rotate"/Rotation angle/" um? Der gibt dir doch die Änderung der Position wieder. Ich addiere den z.B. zum Dimmer hinzu. Somit wird der Wert immer entsprechend zur Drehung verändert.

                            Man kann sich ja auch eine Dämpfung einbauen und den halben Wert nehmen etc… Aber dann sollte es steuerbar sein.

                            setState(idCouchDimm, getState(idCouchDimm).val + getState("mihome.0.devices.xxxx.rotate"/*Rotation angle*/).val);
                            

                            Grüße

                            Brati

                            1 Reply Last reply Reply Quote 0
                            • D
                              daniello last edited by

                              Ist ja jetzt auch nicht wirklich einfacher als meins 😉

                              Geht er nach jedem Stopp sofort wieder bei 0 los?

                              Gesendet von meinem BLA-L29 mit Tapatalk

                              1 Reply Last reply Reply Quote 0
                              • B
                                Brati last edited by

                                Morjens,

                                nein der State nimmt den Wert x für rechts und -x für links Drehung an und bleibt so, bis du wieder am Cube drehst. Die Größe ist von der Drehung abhängig, schau es dir doch einfach mal unter Objekte an, während du am Cube drehst.

                                Grüße

                                Brati

                                1 Reply Last reply Reply Quote 0
                                • D
                                  daniello last edited by

                                  ja .. so hatte ich es auch wahrgenommen .. ist doch völlig unkontrollierbar wenn Du auf ein Mal zB 45 zu Deinem Wert addierst .. ausser Du ziehst vorher ab.

                                  Gesendet von meinem BLA-L29 mit Tapatalk

                                  1 Reply Last reply Reply Quote 0
                                  • B
                                    Brati last edited by

                                    Beim Dimmen passt es schon. Die Werte liegen meist so im Bereich +/- 5-45. Über die Dauer der Drehung ist es aber nicht realisierbar und der State "…angel", nimmt nur einen Wert von 0-100 an und bleibt dann z.B. bei 100 stehen, wenn ich weiter nach rechts drehe. So kann ich aber in allen Situationen regieren.

                                    Wenn das natürlich die Lautstärke wäre, würden mir bei +45 die Ohren weg fliegen. Das könnte man jedoch abfangen, wenn man die max. Änderung begrenzt und/oder grundsätzlich nur mit dem halben Wert arbeitet.

                                    z.B. wenn x die Änderung ist:

                                    x = 0,5 * x;

                                    if (x>15) x=15;

                                    if (x<-15) x=-15;

                                    Wie oben geschrieben, dreh mal am Cube und schau dir die Änderungen dabei im Tab Objekte an.

                                    Grüße

                                    Brati

                                    1 Reply Last reply Reply Quote 0
                                    • D
                                      daniello last edited by

                                      schaue nochmal .. denke aber lgtv.0 ist ohnehin zu träge damit es Spass macht

                                      Gesendet von meinem BLA-L29 mit Tapatalk

                                      1 Reply Last reply Reply Quote 0
                                      • D
                                        daniello last edited by

                                        @Brati: Du meinst also so?!

                                        4418_2018-10-07_145638aq.png

                                        Hab jetzt auch mal mein Objekt "beobachtet" und es ist alles super hakelig. Also ich dreh erstmal ne Weile bevor was passiert und wenn was passiert ist's hakelig. Ich glaub das Signal ist einfach zu schwach. Werde demnächst mal eine Antenne an den Stick löten .. vielleicht ist's dann besser. Meine Osram Smart+ als Verstärker funktioniert eine Zeit lang ganz gut .. nur jetzt ist das Signal wieder auf 6 abgesackt .. kA wieso.

                                        1 Reply Last reply Reply Quote 0
                                        • B
                                          Brati last edited by

                                          Beim mir sind Stick und Cube nur 5m von einander entfernt, ohne Mauer dazwischen… Das läuft ganz gut.

                                          Deine Variable "Wert" hat keinen definierten Wert. Das müsstest du gegen "Wert vom Objekt ID mihome.0.devices.xxxx.rotate" ändern.

                                          Grüße

                                          Brati

                                          1 Reply Last reply Reply Quote 0
                                          • D
                                            daniello last edited by

                                            Hab hier eigentlich gelernt dass das nicht erforderlich ist .. weil nur ein Objekt übergeben wird. Hab ich das falsch verstanden?

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            596
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            27
                                            2838
                                            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