Sonos: On/Off Status bei Gruppenwiedergabe

Begonnen von choetzu, 26 November 2017, 00:04:50

Vorheriges Thema - Nächstes Thema

choetzu

Hallo,
Wie macht ihr das? Ich habe 4 Sonosplayer. 2 davon sind in einer Gruppe (bad und wohnzimmer). Wenn ich nun das Bad ein und ausschalte wechselt der Status von Played auf stopped oder umgekehrt. Wohnzimmer bleibt aber immer auf played, egal ob bad einoder ausgeschaltet ist. Siehe Anlage.

Wie kann ich darstellen, ob Wohnzimmer tatsächlich läuft oder nicht?

Lg c
Raspi3, EnOcean, Zwave, Homematic

dev0

Zitat von: choetzu am 26 November 2017, 00:04:50
Wie macht ihr das?
Mit einem Notify und eigenen Readings, die den Status korrekt darstellen. Siehe hier.
Meiner Bitte so etwas ins Sonos Modul zu integrieren wurde leider nicht entsprochen, da der Maintainer die Zustände nur so wiedergeben möchte, wie sie von den Playern gemeldet werden. Aber vielleicht läßt sich der Maintainer überzeugen, wenn genug Anwender den Wunsch äußern. ;)

choetzu

Zitat von: dev0 am 26 November 2017, 07:08:47
Mit einem Notify und eigenen Readings, die den Status korrekt darstellen. Siehe hier.
Meiner Bitte so etwas ins Sonos Modul zu integrieren wurde leider nicht entsprochen, da der Maintainer die Zustände nur so wiedergeben möchte, wie sie von den Playern gemeldet werden. Aber vielleicht läßt sich der Maintainer überzeugen, wenn genug Anwender den Wunsch äußern. ;)

Herzlichen Dank für deine Antwort. Hiermit äussere ich den Wunsch :)

Dein Link führt zu einem Modul und nicht zu einem Notify. Und als Laie verstehe ich da nur Bahnhof :)

Soll ich dieses Modul installieren resp in den FHEM ordner kopieren?
Raspi3, EnOcean, Zwave, Homematic

dev0

Der Link führt zu dem Code der im notify aufgerufen wird. Das Define des Notify ist dort auch beschrieben:

# ########################################################################################
# sv_SonosTransportStateChanged()
#
# example call:
# define <notifyName> notify <yourPrefix>_.*:transportState:.* { sv_SonosTransportStateChanged($NAME,$EVTPART1) }
# eg. define n_sv_sonosGetTrackPos notify Sonos_.*:transportState:.* { sv_SonosTransportStateChanged($NAME,$EVTPART1) }
# ########################################################################################

choetzu

ok, ich blamiere mich jetzt, aber trotzdem letzte Frage :)

Reicht dieses Notify oder muss ich das 99_fronthemSonosUtils.pm in FHEM kopieren?
Raspi3, EnOcean, Zwave, Homematic

dev0

Du kannst die benötigten Subs in eine eigene 99_myUtilsXYZ.pm packen oder auch einfach 99_fronthemSonosUtils.pm in Deinen ./FHEM Ordner kopieren. Das ist egal, die Funktionen müssen nur für FHEM erreichbar sein.  Dann entweder ein reload der entsprechenden 99_myUtils... ausführen oder FHEM neu starten. Danach kannst Du die Funktionen/Subs in einem Notify nutzen.

Die neuen "svXXX" Readings werden natürlich erst dann angelegt, wenn sich die Status der Player ändern: also einmal alle möglichen Kombinationen Deiner Player gruppieren... Dadurch werden die svXXX Readings angelegt, die Du dann benutzen kannst. Ob ein Player gerade etwas abspielt kannst Du dann anhand der Readings "svTransportState.*" erkennen...


     2017-11-27 07:16:32   svTransportStatePause 0
     2017-11-27 07:16:32   svTransportStatePlay 1
     2017-11-27 07:16:32   svTransportStateStop 0


Es werden noch mehr Readings angelegt, aber die wirst Du für Dein Vorhaben nicht benötigen:

     2017-11-27 07:16:32   svHasClient_Sonos_XXX 0
     2017-11-18 13:26:57   svHasClient_Sonos_YYY 0
     2017-11-27 06:21:02   svHasClient_Sonos_ZZZ 0
     2017-11-27 07:16:32   svIsInAnyGroup  0
     2017-11-27 07:16:32   svIsInThisGroup none
     2017-10-21 10:45:36   svIsVisible     0
     2017-10-21 10:45:36   svIsVisibleName Sonos_YYY


Zitat von: choetzu am 27 November 2017, 09:09:46
ok, ich blamiere mich jetzt, aber trotzdem letzte Frage :)

Blamieren ist das falsche Wort, aber nach ~500 Beiträgen im Forum hätte ich einfach etwas mehr Know-How erwartet.

dev0

Durch Deine Frage ist mir gerade noch ein Tippfehler aufgefallen, den ich gerade korrigiert habe... Also ggf. die 99_fronthemSonosUtils neu downloaden.

choetzu

wo du recht hast, hast du recht.. ;) Und deshalb sorry die Umstände.. Ich habe mich in den 500Beiträgen brutal entwickelt, von 0 auf 40... Bis ich auf 100 bin dauert es vermutlich noch was.. Aber ich bleibe dran und bin um alle Komentare dankbar.
Raspi3, EnOcean, Zwave, Homematic

choetzu

Hallo dev

sorry nochmals, aber es funktioniert noch nicht. Wenn ich z.B. das Bad (=Master) und die Küche in einer Gruppe zusammenfasse, dann kommt bei beiden svTransportStatePlay = 1. Wenn ich nun ausschalte, ist bei Bad svTransportStatePlay=0 und bei Küche bleibt svTransportStatePlay=1.

da sollte doch auch 0 stehen, oder?

lg c
Raspi3, EnOcean, Zwave, Homematic

dev0

Ich schaue es mir die Tage an, komme im Moment nicht dazu.

juemuc

Warum nutzt ihr denn nicht das reading transportState?
Damit lasse ich mir den Status jedes einzelnen Players anzeigen.

VG
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

dev0

@juemuc: Weil Slaves in einer Gruppe den Status nicht korrekt anzeigen. Oder hat sich das in der aktuell Modulversion geändert?
@choetzu: Kann ich nicht nachvollziehen. Wenn ich eine Gruppe bilde und den Master etwas abspielen lasse, dass wechselt bei allen Mono-Speakern das svTransportStateStop auf 0 und svTransportStatePlay auf 1. Beim Stoppen des Masters genau andersrum. Bei Stereopärchen Slaves werden die Readings nur bei den linken Device gesetzt.

juemuc

Zitat von: dev0 am 28 November 2017, 06:28:32
@juemuc: Weil Slaves in einer Gruppe den Status nicht korrekt anzeigen. Oder hat sich das in der aktuell Modulversion geändert?
@choetzu: Kann ich nicht nachvollziehen. Wenn ich eine Gruppe bilde und den Master etwas abspielen lasse, dass wechselt bei allen Mono-Speakern das svTransportStateStop auf 0 und svTransportStatePlay auf 1. Beim Stoppen des Masters genau andersrum. Bei Stereopärchen Slaves werden die Readings nur bei den linken Device gesetzt.

Also bei mir ist der Wert von "transportState" immer korrekt. Auch in einer Gruppe.

VG
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).

choetzu

#13
Zitat von: juemuc am 28 November 2017, 22:09:46
Also bei mir ist der Wert von "transportState" immer korrekt. Auch in einer Gruppe.

VG
Jürgen
sprich wenn du die Gruppe stoppst, dann haben alle in der Gruppe befindlichen Slaves ebenfalls eine 0 bei "svTransportStatePlay" und bei "svTransportStateStop" eine 1? Bei mir bleibt beim Slave das "svTransportStatePlay" auf 1.

Zur Sicherheit: ich rede nicht von "transportState"


Zitat@choetzu: Kann ich nicht nachvollziehen. Wenn ich eine Gruppe bilde und den Master etwas abspielen lasse, dass wechselt bei allen Mono-Speakern das svTransportStateStop auf 0 und svTransportStatePlay auf 1. Beim Stoppen des Masters genau andersrum

hmm, bei mir eben nicht. Beim Abspielen verhält er sich korrekt.. Beim Stoppen aber eben leider nicht...
Raspi3, EnOcean, Zwave, Homematic

juemuc

Zitat von: choetzu am 01 Dezember 2017, 15:38:52
sprich wenn du die Gruppe stoppst, dann haben alle in der Gruppe befindlichen Slaves ebenfalls eine 0 bei "svTransportStatePlay" und bei "svTransportStateStop" eine 1? Bei mir bleibt beim Slave das "svTransportStatePlay" auf 1.

Zur Sicherheit: ich rede nicht von "transportState"


hmm, bei mir eben nicht. Beim Abspielen verhält er sich korrekt.. Beim Stoppen aber eben leider nicht...

Ich meine schon "transportState". Die Readings "svTransportStatePlay", "svTransportStateStop" habe ich nicht.

VG
Jürgen
3x Sonos Play 1, 1x Sonos Arc + Sub, 1 Sonos-One, 1x Sonos Playbar
FB6690 + FB7490 mit 4x Dect 200 und 3 Dect-ULE-Thermostate,  raspberry3B+, HM Funkmodul HM-MOD-RPI-PCB, HM Klingelsensor HM-Sen-DB-PCB, HM (IP) Fensterkontakte und  Amazon Echo Dot,  piVCCU, pi OS (bookworm).