ioBroker / ioBroker.sonos

Control and monitor SONOS player from ioBroker
MIT License
37 stars 19 forks source link

Update der Playstates und Coordinator/Playstate etc auf Anfrage oder Intervall #121

Open JorinL opened 2 years ago

JorinL commented 2 years ago

Moin,

um eine automatische Gruppierung anhand von Bewegungsmeldern zu konfigurieren - wäre es sehr hilfreich, wenn man entweder aktiv aktualisieren kann oder die Datenpunkte aktualisiert werden.

Aktuell bekommt man es - meiner Ansicht nach - nur hin bei einem Player der aus der Gruppe heraus geworfen wurde den Playstate zu aktualiseren indem man den Adapter neu startet.

Hier wäre es grandios, wenn die "Eigenschaften" der Player regelmäßig oder per anfrage aktualisiert würden. Ggf ist das ja auch gar nicht so ein großer Aufwand :-)

Es passiert leider so, dass der state auf "play" / "true" bleibt wenn der Player gar nichts mehr abspielt und nicht mehr in der Gruppe ist.

Idee: im Wonzimmer spielt Musik - geht man in die Küche wird diese über den Bewegungsmelder und Script dann dem Wohnzimmer zu gruppiert - nach X Minuten ohne Bewegung in der Küche fällt die Gruppe wieder weg. Gleiche beim Badezimmer.

Baenker commented 2 years ago

@GermanBluefox das ist keine Erweiterung. Normal sollte der Adapter jederzeit den aktuellen Stand der Datenpunkte anzeigen. Tut er das nicht ist es ein Fehler im Adapter.

Wenn ich den Adapter stoppe und starte werden die aktuellen Daten abgefragt. Danach kann man ein Gerät oder eine Gruppe starten oder stoppen mit der Sonos App und der Adapter zeigt augenblicklich die Änderungen in den Datenpunkten an. Sieht so aus als ob Sonos die Änderungen an den Datenpunkten eigentlich per API weitergibt!?

Wann genau die Felder nicht korrekt angezeigt werden und unter welchen Konstellationen kann ich nicht sagen. Ich nutze den Adapter anders und habe so eigentlich nie Probleme

@JorinL Welchen Datenpunkt nutzt Du genau? Der Datenpunkt sonos.0.root.xxx_xxx_xxx_xxx.state liefert eigentlich immer den aktuellen Wert aber als string d. h. stop, play oder pause. Habe insgesamt 6 Geräte im Adapter.

JorinL commented 2 years ago

Hey Moin, :-)

dann ist es ggf. wohl ein Fehler - ich wollte für meinen Fall die hier nutzen:

sonos.0.root.192_168_0_55.state sonos.0.root.192_168_0_55.state_simple

Beide sind nachdem man (in diesem Fall) die Küche aus der Gruppe genommen hat fälschlicherweise noch auf "play"/"true" obwohl das halt nicht stimmt - die ist quasi auf stop oder sonstigem - jedenfalls nicht play :-) Fühlt sich an wie ein - fehlendes Update nach auflösen der Gruppe.

image image

Es kam auch schon vor, dass der Coordinator sich dann nicht auf die 192_168_0_55 zurückgesetzt hatte sondern bei der IP des Sonos Wohnzimmer blieb - das konnte ich nun aber nicht beobachten - gab ja vor kurzem ein Update) Das die Screenshots sind nun aus der aktuellsten Version v2.1.4.

GermanBluefox commented 2 years ago

Ja ich konnte alles neu abfragen, nun wie sieht so ein Event aus? Sieht man was im Log?

Baenker commented 2 years ago

@JorinL Da stimmt etwas bei Dir nicht. Wenn ich eine Gruppe habe steht nur der State beim Gruppencoordinator auf play und bei den Mitgliedern auf stop. Was ja richtig ist, denn die Sonos spielen nicht ihren Stream sondern den vom Coordinator. Man muss also bei einen Script erstmal abfragen wie ist das Coordinator-Feld gefüllt. Ist es die eigene IP und steht state auf play dann läuft das Sonos alleine. Ist im coordinator Feld ein andere IP muss man von der IP den state abfragen. Wenn im coordinator Feld die eigene IP ist kann man noch das Memberfeld prüfen um zu sehen wo überall die Musik übertragen wird.

JorinL commented 2 years ago

Okay - einmal alles löschen und von vorn?

Wobei ich halt genau nichts bisher gemacht habe - und auch nur die Felder angesehen habe noch nichts verwertet mit Script oder sonstige Änderungen.

@GermanBluefox - sobald ich zu komme gibt es ein Log - gerade auf dem Sprung.

JorinL commented 2 years ago

Sonderlich mehr gemacht als was oben in den 3 Punkten steht hab ich weiterhin nicht. Versteh ich nicht so richtig.

Im Log gibt es leider nichts zu sehen - habe es auf Debug gestellt. Der Adapter wirft keine Einträge ins Log bei mir wenn ich am Sonos Controller Gruppen erstelle oder aufhebe.

Ich kann nun konkreter sagen - er aktualisiert nur sonos.0.root.192_168_0_55.coordinator beim Gerät in der Küche wenn wenn ich eine Gruppe erstelle und wenn ich dann aber das Gerät aus der Gruppe entferne aktualisiert er sonos.0.root.192_168_0_55.current_artist sonos.0.root.192_168_0_55.current_cover sonos.0.root.192_168_0_55.current_duration sonos.0.root.192_168_0_55.current_duration viele weitere in der Region und danna ber schlussendlich auch:

sonos.0.root.192_168_0_55.state sonos.0.root.192_168_0_55.state_simple

Welche dann anscheind vom Coordinator stammen und von VORHER stop auf play wechseln bzw auf true.

Es scheint also beim auflösen einer Gruppe ein Update von Datenpunkten vom Coordinator auf das ehemalige Gruppenmitglied zu geben oder wo auch immer die Infos dann her kommen. Sie werden dann jedenfalls gesetzt. Daher steht meine Küche nun auf Play obwohl sie nichts spielt :-)

Könnte auch nen Video von machen. Ich würde erstmal sagen wollen - das etwas bei mir nicht stimmt vermute ich nicht unbedingt. Ich denke hier ist ein Bug :-)

Aber dem können wir gern noch weiter auf den Grund gehen. Braucht ihr ein Video von dem ganzen? Gibt es eine Option doch noch Log einträge zu bekommen vom Adapter?

Lg :-)

JorinL commented 2 years ago

Das ganze existiert übrigens weiterhin.

Habe es gerade nochmal getestet:

Da ist also noch echt was defekt. :-)

Ich hatte hierfür einmal alles vom Sonos Adapter entfernt (deinstalliert/ordner gelöscht).

Wohnzimmer: image

Küche nachdem ich es aus der Gruppe entfernte: image

Sonos Controller sagt was wirklich ist: image

Die Küche dürfte also gar nicht "grün" aktualisieren in dem Zustand.

JorinL commented 2 years ago

Habe jetzt um auf Nummer sicher zu gehen nochmal gaaaanz bei 0 angefangen. Alles deinstalliert von Sonos im ioBroker und gelöscht. Und zwischenzeitlich diesen neu gestartet, dann den Adapter erneut installiert.

Mein Fazit -> Da ist etwas kaputt.

In dem Moment wo ich die Küche aus der Gruppe entferne - geht der State auf play und es wird aktualisiert als "würde" sie abspielen.

Habe es mit meinen Sonos unter sicht nun ebenfalls getestet (Wohinzimmer Play 1 Stereo Ste und Büro Play 1 Stereo Set) sowie aber mit den SYMFONISK (Bad und Küche). Jedes Mal wenn ich die Gruppe quasi auflöse - fängt der nicht mehr in der Gruppe befindliche an sich zu aktualisieren als würde er abspielen.

SamLowrie commented 2 years ago

Ich kann den Fehler so bestätigen ... wird eine Player aus der Gruppe genommen, so bleibt der state auf "play", obwohl nichts mehr abgspielt wird. Scheinbar fehlt hier ein Update für das Event. Vielleicht noch wichtig: ich hab die Sonos V1 (alte Software) am laufen. Mir würde auch schon genügen, wenn ich alle paar Minuten per cron das Update anschubsen kann.

JorinL commented 2 years ago

Bei mir isses die aktuelle Sonos Software.

LukasVFL99 commented 1 year ago

Moin mir ist der Fehler gestern genau so aufgefallen. Habe die Sonos One Gen 2. Wenn die Box in der Gruppe ist steht der state auf Stop und die IP (coordinator) ändert sich in die des master. Bei auflösen der Gruppe ändert sich der state auf Play und die IP (coordinator) ist die selbe wie die der Box, allerdings wird hier keine Musik abgespielt.

Gibt's hier schon einen fix?