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. Cloud Dienste
  4. Fortführende Alexa Fragen zu Gruppierungen und Lautstärkenregelung mit Sonos/Harmony Adapter

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    17
    1
    499

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

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

Fortführende Alexa Fragen zu Gruppierungen und Lautstärkenregelung mit Sonos/Harmony Adapter

Geplant Angeheftet Gesperrt Verschoben Cloud Dienste
40 Beiträge 8 Kommentatoren 8.4k 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.
  • S Offline
    S Offline
    Stormbringer
    schrieb am zuletzt editiert von
    #3

    Naja geht ja bei den meisten, denke wir machen nur was falsch. Nur was :oops:

    Angaben zur Installation: JS Controller 5.0.12, npm 9.6.7, node 18.17.1, auf einem Intel NUC mit Ubuntu 22.04

    1 Antwort Letzte Antwort
    0
    • S Offline
      S Offline
      Seehofweg
      schrieb am zuletzt editiert von
      #4

      Servus!

      Ich hänge gerade bei einem Teilproblem von dir. Sonos Grundbefehle, Radio etc. funktioniert. Nur die Erhöhung bzw. Verringerung der Lautstärke will nicht. :/

      Das ist mein aktueller Stand:

      on({id: 'hm-rpc.1.000B5569A27DB7.3.PRESS_SHORT', val: true}, function () {
         log('Lautstärke erhöhen');
      
         	var volume_kueche = getState('sonos.0.root.192_168_178_70.volume');
      
      	// Lautstärke setzen
      	setState("sonos.0.root.192_168_178_70.volume", 'volume_kueche += 5');
      
      	return volume_kueche;
      });
      

      Was mache ich falsch?

      1 Antwort Letzte Antwort
      0
      • DutchmanD Offline
        DutchmanD Offline
        Dutchman
        Developer Most Active Administrators
        schrieb am zuletzt editiert von
        #5

        ich glaube deine logik stimm nicht ganz ?

        Due willst:

        • jetzige lautstarte in eine variabele schreiben

        • die variable um 5 erhoehen

        • die variable benutzen un de sonos state zu setzen

        das saehe dan eher so aus (aus dem kopf geschrieben:

        on({id: 'hm-rpc.1.000B5569A27DB7.3.PRESS_SHORT', val: true}, function () {
           log('Lautstärke erhöhen');
        
              var volume_kueche = getState('sonos.0.root.192_168_178_70.volume');
           // Variable erhoehen
              volume_kueche = volume_kueche + 5
           // Lautstärke setzen
        
        setState("sonos.0.root.192_168_178_70.volume", 'volume_kueche');
        
           return volume_kueche;
        });
        

        ergo, du setzt erst den richtigen wert der variable und dan den set anstatt set + variable erhoehen in einem mal

        btw: wofuer der return ?

        1 Antwort Letzte Antwort
        0
        • S Offline
          S Offline
          Seehofweg
          schrieb am zuletzt editiert von
          #6

          Servus! :D Das Script wurde von einem Programmierer auf Anweisung geschrieben. Ich bin bei diesem Thema (JavaScript) gerade noch in Einarbeitung…

          Allerdings entsteht der gleiche Effekt, wie bei dem Ursprungsskript. Die Lautstärke wird auf 0 gesetzt (sehe es ja in der Sonos-App).

          Wir sind bei der Erstellung des Script davon ausgegangen, dass das Programm erst den Wert abrufen und in eine Variable schreiben muss. Ist das korrekt, oder könnte die Lautstärke auch direkt erhöht werden?

          1 Antwort Letzte Antwort
          0
          • DutchmanD Offline
            DutchmanD Offline
            Dutchman
            Developer Most Active Administrators
            schrieb am zuletzt editiert von
            #7

            @Seehofweg:

            Wir sind bei der Erstellung des Script davon ausgegangen, dass das Programm erst den Wert abrufen und in eine Variable schreiben muss. Ist das korrekt, oder könnte die Lautstärke auch direkt erhöht werden? `

            habe selber kein SONOS, aber die lautstaerke wird da doch als wert eingefuegt ? Dan musst due halt erst den wert ermitteln und erhoehen ich sehe keine andere weg als per variable.

            Die frage ist warum der set nicht funtioniert, irgendwas im log ?

            was kommt im log wen du:

            log(volume_kueche);
            volume_kueche = volume_kueche + 5;
            log(volume_kueche);
            
            

            ich moechte wissen op die werte richting ermittelt werden eventueel sitzt da der fehler

            ~Dutch

            1 Antwort Letzte Antwort
            0
            • S Offline
              S Offline
              Seehofweg
              schrieb am zuletzt editiert von
              #8

              Ich bekomme diesen Output:

              > javascript.0 script.js.common.HTTP: ReferenceError: volume_kueche is not defined at script.js.common.HTTP:15:5 at ContextifyScript.Script.runInContext (vm.js:35:29)

              Wie es mir erklärt wurde, definiere ich mit diesem Befehl aber doch die Variable?

              var volume_kueche = getState('sonos.0.root.192_168_178_70.volume');
              
              1 Antwort Letzte Antwort
              0
              • DutchmanD Offline
                DutchmanD Offline
                Dutchman
                Developer Most Active Administrators
                schrieb am zuletzt editiert von
                #9

                Stimmt eigentlich dein Code aber Fehlermeldung ist deutlich und darum wird der Wert auch 0 ( Variable ist Lehr)

                Setze Mal

                var = volume_kueche über dein Script

                Und dann nur den Wert in die Variable füllen mit

                volume_kueche = get state…. {Hier was du bereits hattest}


                Send from mobile device

                1 Antwort Letzte Antwort
                0
                • DutchmanD Offline
                  DutchmanD Offline
                  Dutchman
                  Developer Most Active Administrators
                  schrieb am zuletzt editiert von
                  #10

                  nur zur verstaendlichkeit mal den kompletten code wie ich meinte:

                  // Variable declarieren
                  var volume_kueche
                  
                  //Trigger fuer volume up
                  on({id: 'hm-rpc.1.000B5569A27DB7.3.PRESS_SHORT', val: true}, function () {
                     //Log ausgabe 1
                     log('Lautstärke erhöhen');
                  
                      // Variable fuellen
                        volume_kueche = getState('sonos.0.root.192_168_178_70.volume');
                  
                      //wert der variable in log schreiben
                      log(volume_kueche);
                  
                     // Variable erhoehen
                        volume_kueche = volume_kueche + 5
                  
                     // Ueberpruefen das die variable richtig erhoet wurde
                     log(volume_kueche);
                  
                     // Lautstärke setzen
                     setState("sonos.0.root.192_168_178_70.volume", 'volume_kueche');
                  
                     return volume_kueche;
                  
                  });
                  
                  1 Antwort Letzte Antwort
                  0
                  • S Offline
                    S Offline
                    Seehofweg
                    schrieb am zuletzt editiert von
                    #11

                    Danke dir. Habe das Script probiert, aber leider noch immer das gleiche Bild. Radio läuft, Lautstärke wird auf 0 gesetzt.

                    Log:
                    ` > javascript.0 2017-06-30 13:58:12.232 warn Wrong type of sonos.0.root.192_168_178_70.volume: "string". Please fix, while deprecated and will not work in next versions.

                    javascript.0 2017-06-30 13:58:12.232 info script.js.Schalter.EG_-Küche-6-fach(Mitte): [object Object]5

                    javascript.0 2017-06-30 13:58:12.231 info script.js.Schalter.EG_-Küche-6-fach(Mitte): [object Object]

                    sonos.0 2017-06-30 13:58:12.241 info try to control id sonos.0.root.192_168_178_70.volume with {"val":"volume_kueche","ack":false,"ts":1498831092235,"q":0,"from":"system.adapter.javascript.0","lc":1498831092235}

                    javascript.0 2017-06-30 13:58:12.229 info script.js.Schalter.EG_-Küche-6-fach(Mitte): Lautstärke erhöhen `

                    Ich habe aber keine andere Variable für "Volume".

                    1 Antwort Letzte Antwort
                    0
                    • DutchmanD Offline
                      DutchmanD Offline
                      Dutchman
                      Developer Most Active Administrators
                      schrieb am zuletzt editiert von
                      #12

                      Ah object object jetzt leuchtet es Mir!

                      Bitte

                      getState('sonos.0.root.192_168_178_70.volume');
                      

                      Ändern nach

                      getState('sonos.0.root.192_168_178_70.volume').val
                      

                      Wir vergessen den wert auszulesen zu dum das ich das nicht vorher gesehen habe logs helfen….

                      ~Dutch


                      Send from mobile device

                      1 Antwort Letzte Antwort
                      0
                      • S Offline
                        S Offline
                        Seehofweg
                        schrieb am zuletzt editiert von
                        #13

                        Geht leider noch immer nicht… :shock:

                        Aber das Log gibt neue Infos.

                        ` > sonos.0 2017-06-30 17:55:35.687 info try to control id sonos.0.root.192_168_178_70.volume with {"val":"volume_kueche","ack":false,"ts":1498845335684,"q":0,"from":"system.adapter.javascript.0","lc":1498845335684}

                        javascript.0 2017-06-30 17:55:35.673 warn Wrong type of sonos.0.root.192_168_178_70.volume: "string". Please fix, while deprecated and will not work in next versions.

                        javascript.0 2017-06-30 17:55:35.672 info script.js.Schalter.EG_-Küche-6-fach(Mitte): 18

                        javascript.0 2017-06-30 17:55:35.672 info script.js.Schalter.EG_-Küche-6-fach(Mitte): 13

                        javascript.0 2017-06-30 17:55:35.671 info script.js.Schalter.EG_-Küche-6-fach(Mitte): Lautstärke erhöhen `

                        1 Antwort Letzte Antwort
                        0
                        • S Offline
                          S Offline
                          Seehofweg
                          schrieb am zuletzt editiert von
                          #14

                          Jipie!!! Hab es! Habe mir gerade nochmal die anderen Skripte angesehen und die Variable abgeändert…

                          setState("sonos.0.root.192_168_178_70.volume", volume_kueche);
                          

                          Vielen Dank für deine Unterstützung!

                          1 Antwort Letzte Antwort
                          0
                          • DutchmanD Offline
                            DutchmanD Offline
                            Dutchman
                            Developer Most Active Administrators
                            schrieb am zuletzt editiert von
                            #15

                            Na super! Sorry hätte schneller gehen können aber hatte auch was übersehen.

                            Der goldene tip ist mit Log arbeiten Dan sieht man was passiert und wo es schief geht.

                            Btw: bitte topic noch auf gelöst setzen, danke und viel Spass damit !

                            –-----------------------

                            Send from mobile device

                            1 Antwort Letzte Antwort
                            0
                            • S Offline
                              S Offline
                              Seehofweg
                              schrieb am zuletzt editiert von
                              #16

                              Kann ich das topic auf "gelöst" setzen? Das Thema wurde damals von "Stormbringer" eröffnet.

                              1 Antwort Letzte Antwort
                              0
                              • DutchmanD Offline
                                DutchmanD Offline
                                Dutchman
                                Developer Most Active Administrators
                                schrieb am zuletzt editiert von
                                #17

                                @Seehofweg:

                                Kann ich das topic auf "gelöst" setzen? Das Thema wurde damals von "Stormbringer" eröffnet. `

                                ehm nope das muesste Stormbringer dan machen ;)

                                1 Antwort Letzte Antwort
                                0
                                • S Offline
                                  S Offline
                                  Stormbringer
                                  schrieb am zuletzt editiert von
                                  #18

                                  Ähm ne das war eigentlich nicht mein Problem. Beim Skripten bin ich noch gar nicht. Ich hätte gerne die Datenpunkte von on/off und Lautstärke zusammengefügt in einem Alexa Befehl. Laut Anleitung soll gleicher Smartname das regeln. Tut es aber nicht… Kann man die Datenpunkte manuell zusammen fügen?

                                  PS: Freut mich aber, dass dein Problem gelöst wurde Seehofweg ;)

                                  Angaben zur Installation: JS Controller 5.0.12, npm 9.6.7, node 18.17.1, auf einem Intel NUC mit Ubuntu 22.04

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

                                    Noch einmal nachgefragt: Du möchtest über Alexa einen SONOS Lautsprecher einschalten, ausschalten und die Lautstärke anpassen?

                                    Das ist eigentlich kein großer Akt.

                                    1.) im cloud-Adapter ein neues Smart Gerät anlegen (+ Taste)

                                    2.) vom entsprechenden SONOS Gerät das Objekt "volume" auswählen

                                    3.) einen aussagekräftigen Namen wählen - sagen wir zum Beispiel "Sonos Wohnzimmer"

                                    4.) als Grundlautstärke einen angenehmen Wert einstellen (z.B. 25%)

                                    5.) in der Alexa App "Smart Geräte suchen" lassen und prüfen ob "Sonos Wohnzimmer" angekommen ist

                                    • mit "Alexa, schalte Sonos Wohnzimmer ein" wird mit der "Lautstärke 25" die letzte Musikquelle abgespielt

                                    • mit "Alexa, stelle Sonos Wohnzimmer auf 30%" wird die Lautstärke entsprechend gesetzt

                                    • mit "Alexa, schalte Sonos Wohnzimmer aus" wird die Lautstärke auf "0" gesetzt

                                    Ich habe das ganze noch um Scripte ergänzt:

                                    Wenn Lautstärke von Sonos Wohnzimmer > 5 dann setze "play" auf "true", "stop" auf "false", "state" auf "play"

                                    Wenn Lautstärke von Sonos Wohnzimmer < 5 dann setze "play" auf "false", "stop" auf "true", "state" auf "stop"
                                    1917_sonos-smart_ger_t.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
                                    • P Offline
                                      P Offline
                                      pix
                                      schrieb am zuletzt editiert von
                                      #20

                                      Hallo Heiko,

                                      tolle Anleitung.

                                      Statt eines Skriptes könnte man nun auch eine Szene verwenden, aber das ist ja nur Feintuning. Super Arbeit.

                                      Gruß

                                      Pix

                                      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

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

                                        @pix:

                                        Statt eines Skriptes könnte man nun auch eine Szene verwenden, aber das ist ja nur Feintuning. Super Arbeit. `
                                        Ganz genau, ich nutze zum Beispiel eine Szene für den "Party-Modus"

                                        Ich bin noch nicht dazu gekommen das mal in Feinschrift als "How-To" oderTipp aufzusetzen, ich kann aber gerne schon vorab mal eine "Kladde" zur Verfügung stellen:


                                        1.) alle SONOS zusammen im Party-Modus betreiben

                                        • eine Szene mit dem Namen "SONOS Party" anlegen

                                        • dieser Szene folgende Elemente (aus <u>jedem</u> SONOS Gerät/Objekt) hinzufügen

                                        a.) "coordinator" (dieses Element gibt es erst seit der Adapter Version v.1.6.0)!!!

                                        b.) "state"

                                        c.) "volume"

                                        • in den Einstellungen der "coordinator" Elemente kommt bei

                                        "true" - überall die Adresse des "Gruppenleiters" rein (z.B. "192_168_178_55")

                                        "false" -überall die eigene Adresse reinschrieben

                                        • in den Einstellungen der "state" Elemente kommt bei

                                        "true" - überall "play" rein

                                        "false" - überall "stop" rein

                                        • in den Einstellungen der "volume_level" Elemente kommt bei

                                        "true" - überall die Lautsträrke rein die Du beim Start ideal findest

                                        • bsp. bei mir: Bad = 20; Diele = 25; Schalfzimmer = 18

                                        "false" - überall "0" rein

                                        Jetzt solltes Du bereits die Szene "starten" und "stoppen" können.

                                        Sofern Du beim "Gruppenleiter" zuletzt eine Radiosender oder anderen Favoriten laufen hattest, sollte dies nun als Vorgabe für die Gruppenmusik funktionieren.

                                        Was passiert beim setzen der Szene auf "ja"?!

                                        • alle Geräte bekommen den gleichen Gruppencoordinator

                                        • alle Geräte werden auf "play" gesetzt

                                        • alle Geräte erhalten die voreingestellte Lautstärke

                                        Was passiert also beim setzen der Szene auf "Nein"?!

                                        • alle Geräte erhalten als "coordinator" sich selbst (werden somit aus der Gruppe genommen)

                                        • alle Geräte werden auf "stop" gesetzt

                                        • alle Geräte werden auf Lautstärke "0" (aus) gesetzt

                                        Nun wird im cloud-Adapter vom ioBroker noch ein Smart-Gerät angelegt:

                                        • "+"-Taset zum hinzufügen eines neuen Smart-Gerätes

                                        • unter den Objekten die Szene "SONOS Party" auswählen

                                        • den Eintrag so ändern, dass nur "SONOS Party" als Eintrag dort stehen bleibt

                                        • in der Alexa-App Smart-Home Geräte aktualisieren, damit Alexa das neue Gerät findet

                                        • anhand "Alexa, schalte SONOS Party ein"

                                        • und/oder "Alexa, schalte SONOS Party aus"

                                        Testen


                                        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
                                        • P Offline
                                          P Offline
                                          pix
                                          schrieb am zuletzt editiert von
                                          #22

                                          @BBTown:

                                          Ich habe das ganze noch um Scripte ergänzt:

                                          Wenn Lautstärke von Sonos Wohnzimmer > 5 dann setze "play" auf "true", "stop" auf "false", "state" auf "play"

                                          Wenn Lautstärke von Sonos Wohnzimmer < 5 dann setze "play" auf "false", "stop" auf "true", "state" auf "stop" `
                                          Ich habe das nun auch mit einem Skript gemacht.

                                          Mein Skript überwacht dabei alle Geräte, aller Instanzen auf eine Änderung im Datenpunkt "volume" und setzt dann die anderen States. Übrigens habe ich "play" und "stop" nicht mehr, nur noch "state". Dazu habe ich noch ein evtl. "mute" ausgeschaltet, wenn der Sonos eingeschaltet wird.

                                          Man kann nun in die Subscription noch ein "from:" einbauen und die Ausführung eingrenzen auf Änderungen, die vom Cloud-Adapter (also Alexa) ausgehen. Da muss ich aber erst noch weiter testen, ob das nötig ist.

                                          Die variable "regex_vol" ist recht lange geraten (geht auch kleiner) :lol: , aber so reagiert sie auf valide IP-Adressen.

                                          /* Alexa_Sonos_schalten
                                          
                                          reagiert auf Lautstärkeänderungen
                                          Alexa Smartname zeigt auf .volume
                                          sSonos-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
                                          */
                                          const logging = true;
                                          
                                          // sonos.0.root.192_168_178_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,
                                              // evtl from: cloud-Adapter
                                              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 >= 5) {
                                                  setState(pfad + '.muted', false);
                                                  setState(pfad + '.state', 'play');
                                                  setState(pfad + '.play', true);
                                                  setState(pfad + '.stop', false);
                                              }
                                              if (data.state.val < 5) {
                                                  setState(pfad + '.state', 'stop');
                                                  setState(pfad + '.play', false);
                                                  setState(pfad + '.stop', true);
                                              }
                                          });
                                          

                                          Gruß

                                          Pix

                                          EDIT: Skript angepasst auf SONOS Adapter 1.6.0

                                          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                                          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
                                          FAQ Cloud / IOT
                                          HowTo: Node.js-Update
                                          HowTo: Backup/Restore
                                          Downloads
                                          BLOG

                                          567

                                          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