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. [gelöst] Lautstärke mit Aqara Cube steuern

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    16
    1
    221

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

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

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

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
27 Beiträge 5 Kommentatoren 3.1k 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.
  • D Offline
    D Offline
    daniello
    schrieb am zuletzt editiert von
    #9

    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 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #10

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

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      1 Antwort Letzte Antwort
      0
      • D Offline
        D Offline
        daniello
        schrieb am zuletzt editiert von
        #11

        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 Antwort Letzte Antwort
        0
        • B Offline
          B Offline
          Brati
          schrieb am zuletzt editiert von
          #12

          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

          CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

          1 Antwort Letzte Antwort
          0
          • D Offline
            D Offline
            daniello
            schrieb am zuletzt editiert von
            #13

            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 Antwort Letzte Antwort
            0
            • B Offline
              B Offline
              Brati
              schrieb am zuletzt editiert von
              #14

              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

              CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

              1 Antwort Letzte Antwort
              0
              • D Offline
                D Offline
                daniello
                schrieb am zuletzt editiert von
                #15

                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 Antwort Letzte Antwort
                0
                • B Offline
                  B Offline
                  Brati
                  schrieb am zuletzt editiert von
                  #16

                  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

                  CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

                  1 Antwort Letzte Antwort
                  0
                  • D Offline
                    D Offline
                    daniello
                    schrieb am zuletzt editiert von
                    #17

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

                    Gesendet von meinem BLA-L29 mit Tapatalk

                    1 Antwort Letzte Antwort
                    0
                    • D Offline
                      D Offline
                      daniello
                      schrieb am zuletzt editiert von
                      #18

                      @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 Antwort Letzte Antwort
                      0
                      • B Offline
                        B Offline
                        Brati
                        schrieb am zuletzt editiert von
                        #19

                        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

                        CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

                        1 Antwort Letzte Antwort
                        0
                        • D Offline
                          D Offline
                          daniello
                          schrieb am zuletzt editiert von
                          #20

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

                          1 Antwort Letzte Antwort
                          0
                          • B Offline
                            B Offline
                            Brati
                            schrieb am zuletzt editiert von
                            #21

                            @daniello:

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

                            Wüsste nicht woher "Wert" weiß, dass es der Variablenwert von "mihome.0.devices.xxxx.rotate" sein soll. Im JS sieht es bei mir so aus:

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

                            und bei dir müsste jetzt in der Funktion stehen:

                            if (Wert) setState(Current volume, getState(Current volume).val + Wert);

                            Das macht aber kein Sinn, weil für die If/ Then Abfrage eine boolean Variable gefragt wäre und für die Addition eine Zahl.

                            Eine If/ Then Abfrage ist eigentlich komplett entbehrlich, weil ja nur getriggert wird, wenn sich der State "Rotate Angel" ändert.

                            Ich nutze aber kein Blockly….

                            Grüße

                            Brati

                            CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

                            1 Antwort Letzte Antwort
                            0
                            • C Offline
                              C Offline
                              claus1993
                              schrieb am zuletzt editiert von
                              #22

                              Hallo,

                              habe mich auch mal mit Blockly versucht und mein erstes war die Lautstärke meines Radios mit den Aqara Cube zu ändern.

                              4537_bild.jpg

                              Der Blockly läuft soweit ganz gut, nur wenn ich nach rechts drehe und lauter machen möchte, geht das Volumen sofort auf 20 (max). Hätte jedoch lieber das er langsam wie auch wenn ich nach links drehe, step für step (also immer + 1) sich die Lautstärke ändert.

                              hat hier jemand eine Idee woran das liegen kann?

                              Die Begrenzung habe ich eingerichtet da das Volumen meines Radios vom 0 bis 20 geht.

                              Vielen Dank für eute Untesrtützung,

                              Claus

                              1 Antwort Letzte Antwort
                              0
                              • B Offline
                                B Offline
                                Brati
                                schrieb am zuletzt editiert von
                                #23

                                Ich kann nur empfehlen, dass nicht über das Event Rotation zu lösen. Die Dauer ist nicht berechenbar. Was jetzt zuverlässig läuft ist die Addition des Rotation Angel (wird ja bei Minuswert eine Subtraktion). Da mir die Sprünge beim Dimmen zu groß waren, nehme ich den halben Wert und begrenze ihn auf 25, somit muss ich ca. 4 mal von 0 auf 100 drehen oder erwische auch die Zwischenschritte:

                                Die Begrenzung ist hier 0-100. Bei 0-20 würde ich mindestens durch 4 Teilen, unter Umständen musst du noch runden.

                                var x = new RegExp("\zigbee\.0\.xxxx.+");
                                
                                on({id:x,change:'ne',chance:'ne'}, function (obj) {
                                
                                 // ************* Rotation = Dimmer ***************    
                                    if (getState(idRotLeft).val || getState(idRotRight).val) {
                                        var DimmW   =   (getState("zigbee.xxxx.rotate_angle"/*Rotate angle*/).val)/2;
                                        if (DimmW>25)  DimmW = 25;
                                        if (DimmW<-25)    DimmW = -25;
                                
                                            DimmW   =   getState(idCouchDimm).val + DimmW;
                                
                                            if (DimmW>100)  DimmW = 100;
                                            if (DimmW<0)    DimmW = 0;
                                            setState(idCouchDimm, DimmW);
                                            }
                                
                                    };
                                

                                Das ist nur ein Ausschnitt aus dem ganzen Script, aber per Blockly nachbaubar.

                                Grüße

                                Brati

                                CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

                                1 Antwort Letzte Antwort
                                0
                                • BigWumpusB Offline
                                  BigWumpusB Offline
                                  BigWumpus
                                  schrieb am zuletzt editiert von
                                  #24

                                  @Brati:

                                  Ich kann nur empfehlen, dass nicht über das Event Rotation zu lösen. Die Dauer ist nicht berechenbar. Was jetzt zuverlässig läuft ist die Addition des Rotation Angel (wird ja bei Minuswert eine Subtraktion). Da mir die Sprünge beim Dimmen zu groß waren, nehme ich den halben Wert und begrenze ihn auf 25, somit muss ich ca. 4 mal von 0 auf 100 drehen oder erwische auch die Zwischenschritte: `
                                  Ja, der reine Event ist einfach Mist…

                                  Ich nehme die Winkel und addiere sie in einem Datenpunkt auf, kommen ja ständig neue Winkel dazu (DeConz).

                                  In einem zweiten Script werte ich den Winkel aus...

                                  je positive 250 nehme ich +1 beim Dimmer,

                                  je negative 250 nehme ich -1 beim Dimmer (Wertebereich 0...255).

                                  Eine +/-90°-Drehung sind bei Deconz +/-9000 = +/-36.

                                  Es sind also ein paar Drehungen nötig.

                                  Und dann kommt da noch Lagging hinzu...

                                  Es funktioniert bei mir für 2 versch. Dimmer/Lampen, weil der Cube ja auch 6 Seiten hat und noch mehr könnte...

                                  Ich habe die Flächen farbig beklebt und alles wäre bei Dennis zu sehen, wenn er kein neues Board hätte...

                                  Pi3B ioBroker: SONOFFs Tasmota mit TasmoAdmin, Shelly2.5 Rollladen
                                  Pi2B RaspBee DeConz ZigBee: Philips&Innr&OSRAM Lampen/Stecker, Xiaomi Sensoren, Lichttaster und -Schalter
                                  Heizung: EQ-3 Max!
                                  Netz: AVM 7490, Devolo Magic 1

                                  1 Antwort Letzte Antwort
                                  0
                                  • C Offline
                                    C Offline
                                    claus1993
                                    schrieb am zuletzt editiert von
                                    #25

                                    > Ich nehme die Winkel und addiere sie in einem Datenpunkt auf, kommen ja ständig neue Winkel dazu (DeConz).

                                    Das heißt ich erstelle einen neuen Datenpunkt und addiere dort fortlaufend den Wert aus "Rotate" mittels DeConz?

                                    Wo finde ich DeConz in Blockly?

                                    Rotate hat bei mir positive oder negative Werte, je nachdem in welche Richtung ich drehe.

                                    ` > je positive 250 nehme ich +1 beim Dimmer,

                                    je negative 250 nehme ich -1 beim Dimmer (Wertebereich 0…255). `

                                    Ich nehme den oben erstellten Datenpunkt und ziehe vom vorherigen Wert den neuen Wert ab?

                                    Wie kann ich das in Blockly erstellen das er bei einer Differenz von 250 den Value +1 bzw. -1 setzt?

                                    Sorry für die vielen Fragen aber ich bin noch Neuling was Blockly und Co betrifft und habe von Programnieren so gut wie keine Ahnung.

                                    Danke und Grüße,

                                    Claus

                                    1 Antwort Letzte Antwort
                                    0
                                    • B Offline
                                      B Offline
                                      Brati
                                      schrieb am zuletzt editiert von
                                      #26

                                      @claus1993

                                      Ich glaube DeConz ist nicht der Zigbee Adapter. Du kannst aber mit den von dir gefundenen Werten gut arbeiten.

                                      Hast du etwas Ahnung vom programmieren? Dann sollte sich mein Script, vom 10.10., in Blockly umsetzen lassen.

                                      Grüße

                                      Brati

                                      CCU2 - 46 Geräte, ioBroker auf Intel NUC (DN2820FYKH) mit Tab als Frontend, Projekt Gartenhaus mit HM

                                      1 Antwort Letzte Antwort
                                      0
                                      • C Offline
                                        C Offline
                                        claus1993
                                        schrieb am zuletzt editiert von
                                        #27

                                        Habe leider keine Ahnung was das Programmieren angeht…

                                        Habe mal den Blockly von Denis nachgebaut und jetzt passt es besser. Was ich dort jedoch habe ist das die Lautstärke zwar steigt...wenn ich jedoch weiterderehe wird es auf einmal wieder leise...die Werte im Datenpunkt werden dazu passen auch kleiner.

                                        Denke das ihr deswegen von einer Addition sprecht. Ich addiere die Werte auf und bekomme somit einen immer steigenden Wert. Doch wie erstelle ich diese Addition in Blockly, hier finde ich einfach nichts.

                                        Danke und Grüße,

                                        Claus

                                        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

                                        610

                                        Online

                                        32.7k

                                        Benutzer

                                        82.5k

                                        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