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. ioBroker Allgemein
  4. Sonos Gruppen bilden

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    324

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.5k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.5k

Sonos Gruppen bilden

Geplant Angeheftet Gesperrt Verschoben ioBroker Allgemein
36 Beiträge 9 Kommentatoren 9.0k Aufrufe 1 Watching
  • Ä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.
  • justrJ Offline
    justrJ Offline
    justr
    schrieb am zuletzt editiert von
    #13

    Hab keine Probleme beim Setzen der Lautstärke. Was funktioniert denn nicht?

    1 Antwort Letzte Antwort
    0
    • J Offline
      J Offline
      jokermic
      schrieb am zuletzt editiert von
      #14

      Das Setzen der Lautstärke ist auch kein Problem, aber wenn ich die Sonos per Sprachbefehl abschalte, dann geht diese nicht aus, sondern setzt die Lautstärke auf 0 und die Playlist läuft weiter.

      Das ist mein Problem

      Gesendet von meinem SM-G900F mit Tapatalk

      1 Antwort Letzte Antwort
      0
      • justrJ Offline
        justrJ Offline
        justr
        schrieb am zuletzt editiert von
        #15

        Also entweder du nutzt zwei unterschiedliche Datenpunkte für Volumen und On/Off, die dann in Alexa natürlich auch unterschiedlich lauten müssen oder du behilfst dir mit einem Workaround und setzt den Sonos.state auf "stop" sobald die Lautstärke auf 0 steht.

        on({
            id: "sonos.0.root.192_168_xx_yy.volume",
            change: "ne";
            val: 0
        }, function (obj) {
            setState("sonos.0.root.192_168_xx_yy.state", "stop");
        });
        
        
        1 Antwort Letzte Antwort
        0
        • J Offline
          J Offline
          jokermic
          schrieb am zuletzt editiert von
          #16

          Das mit den zwei unterschiedlichen Datenpunkten möchte ich wenn möglich vermeiden.

          Dieser Workaround hört sich gut an, aber wo gebe ich den Code ein?

          Gesendet von meinem SM-G900F mit Tapatalk

          1 Antwort Letzte Antwort
          0
          • justrJ Offline
            justrJ Offline
            justr
            schrieb am zuletzt editiert von
            #17

            :shock: Gibt es ein iobroker-Leben ohne Javascript-Adapter??? ;)

            Einfach im Admin javascript-Adapter installieren, javascript-Instanz starten, javascript-Editor aufrufen (Reiter "Skripte"; falls der Reiter fehlt, über Bleistift-Symbol rechts daneben und "Zeige…" einblenden), ein neues Script unter "common" anlegen (beliebiger Name), obige Zeilen reinkopieren, speichern und starten (roter Play-Button; falls ein grüner Pause-Button angezeigt wird, läuft das Script bereits).

            1 Antwort Letzte Antwort
            0
            • J Offline
              J Offline
              jokermic
              schrieb am zuletzt editiert von
              #18

              Bin ja noch ganz frisch dabei und das wäre auch das nächste woran ich dann gehen wollte [SMILING FACE WITH OPEN MOUTH]

              Vielen Dank für die ausführliche Anleitung. Schau ich mir später mal an

              Gesendet von meinem SM-G900F mit Tapatalk

              1 Antwort Letzte Antwort
              0
              • J Offline
                J Offline
                jokermic
                schrieb am zuletzt editiert von
                #19

                @justr:

                Also entweder du nutzt zwei unterschiedliche Datenpunkte für Volumen und On/Off, die dann in Alexa natürlich auch unterschiedlich lauten müssen oder du behilfst dir mit einem Workaround und setzt den Sonos.state auf "stop" sobald die Lautstärke auf 0 steht.

                on({
                    id: "sonos.0.root.192_168_xx_yy.volume",
                    change: "ne";
                    val: 0
                }, function (obj) {
                    setState("sonos.0.root.192_168_xx_yy.state", "stop");
                });
                
                ```` `  
                

                Also der Workaround klappt grundsätzlich ganz gut mit dem JavaScript Code, nur ist mir jetzt aufgefallen, dass der Wecker nicht mehr funktioniert, weil der Wecker wohl langsam von 0 auf Ziel Lautstärke regelt.

                Bin mir aber noch nicht sicher wie man das abfangen kann.

                P.S. @justr:

                Im Code hat sich nur ein Flüchtigkeitsfehler bei " change: "ne"; " eingeschlichen. Am Ende kommt ja ein " , ".

                1 Antwort Letzte Antwort
                0
                • justrJ Offline
                  justrJ Offline
                  justr
                  schrieb am zuletzt editiert von
                  #20

                  @jokermic:

                  P.S. @justr:

                  Im Code hat sich nur ein Flüchtigkeitsfehler bei " change: "ne"; " eingeschlichen. Am Ende kommt ja ein " , ". `
                  Sorry! ;)

                  Neuer Versuch:

                  on({
                      id: "sonos.0.root.192_168_xx_yy.volume",
                      change: "ne"
                  }, function (obj) {
                      if (obj === 0) {
                          setState("sonos.0.root.192_168_xx_yy.state", "stop");
                      } else {
                          setState("sonos.0.root.192_168_xx_yy.state", "play");
                      }
                  });
                  
                  1 Antwort Letzte Antwort
                  0
                  • J Offline
                    J Offline
                    jokermic
                    schrieb am zuletzt editiert von
                    #21

                    Hmm, jetzt geht der Wecker, aber die Musik lässt sich nicht mehr stoppen [FACE WITH TEARS OF JOY]

                    Ich glaub wenn man die Bedingung Volumen ==0 und state == play sind, dann müsste man die Musik stoppen oder Pause setzen. Aber für die Umsetzung muss ich mir das noch genauer anschauen

                    Gesendet von meinem SM-G900F mit Tapatalk

                    1 Antwort Letzte Antwort
                    0
                    • justrJ Offline
                      justrJ Offline
                      justr
                      schrieb am zuletzt editiert von
                      #22

                      Sorry, man sollte halt die Scripte doch immer erst testen, bevor man "gute" Ratschläge gibt. Da fehlte der Teil des Object-Werts in der if-Abfrage:

                          if (obj.state.val === 0) {
                      

                      Allerdings gefällt mir dieser Workaround mit "play" bei volume != 0 gar nicht, da dies nicht der Sonos-Logik entspricht. D.h. immer wenn du an der Lautstärke was änderst springt die Box an ("play"). Ich würde dir ja eher einen zusätzlichen manuell erstellten Datenpunkt empfehlen,

                        "common": {
                          "name": "sonosVolume",
                          "smartName": "Deine Alexa-Bezeichnung",  // <- Anpassen!
                          "role": "",
                          "type": "number",
                          "desc": "Manuell erzeugt",
                          "unit": "%",
                          "min": 0,
                          "max": 100,
                          "read": true,
                          "write": true
                        },
                      

                      der den "smartName" des Sonos-Volumes übernimmt und den du dann per Alexa steuerst und nur wenn dieser auf 0 steht, die Sonos entsprechend stoppst:

                      on({
                          id: "javascript.0.myStates.alexa.sonosVolume",  //muss natürlich deinem Alexa-gesteuerten Datenpunkt entsprechen
                          change: "ne"
                      }, function (obj) {
                          var sonVol = obj.state.val;
                          setState("sonos.0.root.192_168_xx_yy.volume", sonVol);
                          if (sonVol === 0) {
                              setState("sonos.0.root.192_168_xx_yy.state", "stop");
                          }
                      });
                      

                      Hätte halt den Vorteil, dass beim Wecker oder auch sonst sich das Script nicht einmischt. Wenn du das mit dem manuellen Datenpunkt nicht hinbekommen solltest, kannst du natürlich immer noch die if-Abfrage des vorherigen Scripts anpassen (obj.state.val statt obj).

                      1 Antwort Letzte Antwort
                      0
                      • H Offline
                        H Offline
                        hmanfred
                        schrieb am zuletzt editiert von
                        #23

                        Ich ziehe diesen Beitrag mal hoch, obwohl er inzwischen etwas OT gelaufen ist.

                        Ich habe meine Probleme mit der Gruppenbildung:

                        SONOS Adapter Version 1.5.0

                        Die Gruppenbildung und -auflösung durch Beschreiben der Datenpunkte add_to_group und remove_from_group geht grundsätzlich. Allerdings ist das bei mir ein Blindflug was die Darstellung der SONOS-Datenpunkte unter "Objects" in IoBroker betrifft.

                        Konkret:

                        • der hinzu genommene Player spielt die Musik der Gruppe. Ich sehe dies aber an keinem Objekt dieses Players noch an einem anderen Datenpunkt.

                        • nach Auflösen der Gruppe werden die Datenpunkte des weggenommenen Players nicht aktualisiert. Er wird gestoppt, der Datenpunkt State bleibt aber z.B. wie vor der Gruppierung. Wenn er vorher also was anderes gespielt hat, steht "play" drin, obwohl er beim Auflösen gestoppt wurde.

                        • Gibt es keinen Datenpunkt, um das Volume der gesamten Gruppe zu ändern, wie im native Controller?

                        • Gruppierungen, die ich im native Controller (hier: Android) mache, werden in IoBroker nicht dargestellt, oder ich finde nicht, wo.

                        Kann mir da bitte mal jemand helfen, die Logik zu verstehen?

                        1 Antwort Letzte Antwort
                        0
                        • H Offline
                          H Offline
                          hmanfred
                          schrieb am zuletzt editiert von
                          #24

                          Schade, dass hier niemand die SONOS Gruppenbildung verwendet und bereit ist, mir zu helfen oder mit mir gemeinsam Probleme zu lösen. :-(

                          Oder mache ich mit / in meinem Post etwas falsch, was euch abschreckt? :oops:

                          1 Antwort Letzte Antwort
                          0
                          • HomoranH Nicht stören
                            HomoranH Nicht stören
                            Homoran
                            Global Moderator Administrators
                            schrieb am zuletzt editiert von
                            #25

                            @hmanfred:

                            Schade, dass hier niemand die SONOS Gruppenbildung verwendet und bereit ist, mir zu helfen oder mit mir gemeinsam Probleme zu lösen. :-( `
                            ich glaube nicht, dass dies hier im Forum wirklich zum tragen kommt :!:

                            Eher hat niemand der hier regelmäßig mitliest diese Konstallation.

                            Ich z.B. habe gerade erst eine Play:1 installiert und noch nie mit Gruppen gearbeitet.

                            Außerdem schreibst du dass dies nicht das Problem sei.

                            Der Threadtitel heisst aber "Gruppen bilden"

                            vielleicht würdest du in einem separaten Thread mit aussagekräftigem Titel eher eine Antwort bekommen.

                            Gruß

                            Rainer

                            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                            1 Antwort Letzte Antwort
                            0
                            • justrJ Offline
                              justrJ Offline
                              justr
                              schrieb am zuletzt editiert von
                              #26

                              Hallo hmanfred,

                              ich kann dir versichern, du bist nicht allein und den "Blindflug" finden sicher viele unschön. Leider weiß ich aber keine Lösung. Momentan merke ich mir den "grouped"-Status in einer Variablen, um entsprechend reagieren zu können. Funktioniert natürlich nur, wenn die Gruppenbildung über ioBroker stattgefunden hat.

                              Um zumindest beim Start von ioBroker denn IST-Stand zu haben, nutze ich den Parser-Adapter:

                              URL: http://192.168.16.34:1400/support/review (<- beliebige Sonos-Box)

                              RegEx: coordinator='false' wirelessmode='.' wirelessleafonly='.' hasconfiguredssid='.' channelfreq='….' behindwifiext='.' wifienabled='.' location='http://192.168.16.31

                              Es geht hier um den coordinator='false' (somit Slave und gruppiert; coordinator='true' -> nicht gruppiert). Der Rest der RegEx ist nur um auf die richtige IP zu referenzieren. ACHTUNG, ich habe das Intervall bei mir auf 5 min. (300000ms) gesetzt. Ein kurzes Intervall (z.B. 10s) hat die Sonos derart überlastet, dass sie überhaupt nicht mehr reagiert hat.

                              Natürlich habe ich mir auch mal den Quellcode des Sonos-Adapters angesehen (muss doch auch nativ irgendwie möglich sein), aber "auf die Schnelle" bin ich bei den vielen verlinkten Scripten nicht durchgestiegen.

                              Beste Grüße, justr

                              1 Antwort Letzte Antwort
                              0
                              • justrJ Offline
                                justrJ Offline
                                justr
                                schrieb am zuletzt editiert von
                                #27

                                PS: Vorsicht, wenn du die Seite "…/support/review" im Browser aufrufst, hat sie ein html-Format, während der Parser-Adapter wohl ein XML-Format provoziert. Somit sieht die Struktur natürlich komplett anders aus und man kann nicht über den Browser vergleichen. Wenn du aber auf den Stift neben der Parser-Regel klickst, findest du nach ein paar Sekunden warten die eingelesene Datei.

                                1 Antwort Letzte Antwort
                                0
                                • H Offline
                                  H Offline
                                  hmanfred
                                  schrieb am zuletzt editiert von
                                  #28

                                  @justr:

                                  Hallo hmanfred,

                                  ich kann dir versichern, du bist nicht allein und den "Blindflug" finden sicher viele unschön. Leider weiß ich aber keine Lösung. Momentan merke ich mir den "grouped"-Status in einer Variablen, um entsprechend reagieren zu können… `

                                  Danke für das Feedback.

                                  Dann gehe ich auch erst mal den Weg über eine Variable. Da die Akzeptanz meiner GöGa des IoBroker echt prima ist, sehe ich keine große Wahrscheinlichkeit der Konflikte mit den native Controller - vorausgesetzt, ich kriege die Implementierung gut hin. :-)

                                  Doof ist nur, dass die Gruppenlautstärke auch nicht geht. Aber das kriege ich evtl. auch mit einer zusätzlichen Variable hin.

                                  Gruß

                                  Manfred

                                  1 Antwort Letzte Antwort
                                  0
                                  • A Offline
                                    A Offline
                                    andyb
                                    schrieb am zuletzt editiert von
                                    #29

                                    Also ich hab mich jetzt auch mal an Gruppe gewagt.

                                    Per Script den Play1 "add_to_group" befüllt mit der IP von der Playbar - IP wird in den Objekten entsprechend übernommen.

                                    Allerding bleibt die Play1 stumm.

                                    Wenn ich noch ein play hinterherschicke spielt die Play1 ihren letzten Titel ab und nicht das was aus der Playbar kommt.

                                    Was mach ich denn falsch?

                                    1 Antwort Letzte Antwort
                                    0
                                    • justrJ Offline
                                      justrJ Offline
                                      justr
                                      schrieb am zuletzt editiert von
                                      #30

                                      @andyb:

                                      Per Script den Play1 "add_to_group" befüllt mit der IP von der Playbar - IP wird in den Objekten entsprechend übernommen.

                                      Allerding bleibt die Play1 stumm. `
                                      Also das "add_to_group" finde ich auch immer etwas verwirrend. So wie beschrieben hättest du die Playbar deiner Play1 untergeordnet (nicht umgekehrt). Somit sollte nach Betätigung von "Play" (bei der Play1) eigentlich auch die Playbar die Musik von der Play1 übernehmen.

                                      Achtung: In den Datenpunkt "add_to_group" wird nicht die IP-Adresse geschrieben sondern der Channel-Name der Sonos (Underscore "_" statt Punkt "."), also z.B. 192_168_1_101

                                      K 1 Antwort Letzte Antwort
                                      1
                                      • A Offline
                                        A Offline
                                        andyb
                                        schrieb am zuletzt editiert von
                                        #31

                                        Oha, dann 2 Fehler gemacht.

                                        Werds morgen testen. Danke

                                        1 Antwort Letzte Antwort
                                        0
                                        • justrJ Offline
                                          justrJ Offline
                                          justr
                                          schrieb am zuletzt editiert von
                                          #32

                                          Ok, das halbgare Gruppen-Handling hat mir jetzt doch keine Ruhe gelassen und ich habe mal versucht, in den Quellcode einzutauchen. Herausgekommen ist die angehängte (aktualisierte) sonos.js. Würde mich freuen, wenn der ein oder andere schon mal testen möchte (…/iobroker/node_modules/iobroker.sonos/sonos.js wegsichern und mit der angehängten Version ersetzen; Instanz muss natürlich neu gestartet werden). Habe auch schon einen Pull Request ins Git gestellt.

                                          Verbesserung des Gruppen-Handlings

                                          • neue Datenpunkte: coordinator, group_volume, group_muted

                                          • alle read/write, um auch Änderungen durch die Sonos-App mitzubekommen

                                          • "coordinator" entspricht dem channel-Namen des Gruppen-Masters (z.B. 192_168_1_99) und ist gleich dem eigenen channel-Namen, wenn die Sonos keiner Gruppe zugeordnet ist, also etwa die umgekehrte Logik wie die bisherigen Datenpunkte "add_to/remove_from_group", um auch größere Gruppen abzubilden und den Ist-Stand zu sehen.

                                          • "group_volume" und "group_muted" werden aber nur beim Gruppen-Master aktualisiert bzw. ausgewertet, wie auch heute schon bei den restlichen Datenpunkten. Lediglich "volume" und "muted" sind im Slave-Betrieb aktiv, da diese ja auch unabhängig vom Master gesteuert werden können (wie auch in der Sonos-App).

                                          Beste Grüße, justr
                                          1735_sonos.js

                                          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

                                          565

                                          Online

                                          32.5k

                                          Benutzer

                                          81.7k

                                          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