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
    #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
                • apollon77A Offline
                  apollon77A Offline
                  apollon77
                  schrieb am zuletzt editiert von
                  #33

                  Pull Request ist in 1.6.0 auf Github drin.Bitte testen

                  Beitrag hat geholfen? Votet rechts unten im Beitrag :-) https://paypal.me/Apollon77 / https://github.com/sponsors/Apollon77

                  • Debug-Log für Instanz einschalten? Admin -> Instanzen -> Expertenmodus -> Instanz aufklappen - Loglevel ändern
                  • Logfiles auf Platte /opt/iobroker/log/… nutzen, Admin schneidet Zeilen ab
                  1 Antwort Letzte Antwort
                  0
                  • H Offline
                    H Offline
                    hmanfred
                    schrieb am zuletzt editiert von
                    #34

                    Erst mal vielen Dank, justr, für deine Arbeit,

                    ein erster Test (manuelles Beschreiben unter Objects) ergab:

                    Man muss lediglich das Feld "coordinator" mit der Adresse des "Koordinators" beschreiben. Schon wird dessen Musik gespielt. Die Felder add_to-group und remove_from_group sind obsolet :-). Habe ich das richtig verstanden?

                    Im Prinzip funktioniert das, die Gruppe wird erstellt.

                    Zum Auflösen der Gruppe schreibe ich wieder die eigene Adresse ins Feld "coordinator". Dabei passiert allerdings folgendes:

                    der Slave verstummt, die Felder state play und mute zeigen aber, dass er eigentlich spielen müsste.

                    Gruß

                    Manfred

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

                      @hmanfred:

                      Habe ich das richtig verstanden? `
                      Korrekt! :)

                      Ich habe die alten DPs "add_to" und "remove_from" natürlich nicht angefasst. Ist ja nicht mein Adapter und macht schon wegen der Abwärtskompatibilität Sinn.
                      @hmanfred:

                      der Slave verstummt, die Felder state play und mute zeigen aber, dass er eigentlich spielen müsste. `
                      Ja, das ist mir leider auch schon aufgefallen und war auch zuvor schon so und auch, wenn man die Gruppe über die Sonos-App auflöst. Ich konnte bisher nicht nachvollziehen, warum unmittelbar nach Trennung des Slaves dieser ein "Playing" als PlaybackState zurück liefert.

                      Ich hatte das bisher immer ignoriert, da ich die Sonos über "favorites_set" starte und ab dann stimmen die Datenpunkte wieder.

                      Müsste sich mal jemand ansehen, der sich damit auskennt. :mrgreen:

                      Sorry, justr

                      1 Antwort Letzte Antwort
                      0
                      • justrJ justr

                        @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 Offline
                        K Offline
                        Kusi
                        schrieb am zuletzt editiert von
                        #36

                        @justr sagte in Sonos Gruppen bilden:

                        @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

                        Daran hat es bei mir gelegen. So funktioniert die Gruppenbildung einwandfrei.

                        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

                        564

                        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