SetAVTransportURI spricht dafü, dass gerade eine Quelle eingestellt werden soll.
x-sonos-vli sieht irgendwie nach Spotify aus, was aus der Spotify App an die Box geschickt wurde.
Hier meine Vermutung, was passiert:
Auf der Box ist noch hinterlegt, dass zuletzt Soptify abgespielt wurde. Aber die wiedergabe ist (evtl. schon länger) pausiert.
Jetzt wird mittels PlayFiles (oder so) einwas abgespielt und danach versucht die letzte Wiedergabe wieder einzustellen.
Und das geht nicht, weil es Spotify ist.
Andere Entwickler scheinen aber das Gleiche Problem zu haben
Habe nun die IP Nummern im Discovery manuell angepasst und gespeichert. Bei mir waren die Boxen nicht mit fixer IP hinterlegt im DHCP server. Der hatte ein Update mit Neustart - das wird es gewesen sein. Habe jetzt beide Boxen als fix eingetragen.
Seither keine neuen Fehler! Danke - das Script hat den Fehler aufgedeckt.
Allerdings sollte der Discovermode die IP Nummern richtigstellen - oder?
danke für deine Rückmeldung. Deine Theorie könnte etwas damit zu tun haben, aber wir steuern Sonos nicht per Spotify App. Wir hören hier meistens Radio über Tunein (per SNS_SetRadio) und gelegentlich Spotify per Sonos App und manchmal über Alexa getriggert. Das Rückspringen auf die letzte Wiedergabe funktioniert hier bei Ansage über PlayFiles problemlos.
Ich glaube, es tritt auf, wenn ich morgens eine Szene aktiviere, die per Ansage über Sonos quittiert wird und anschließend der Radio-Stream starten soll. Ich denke, er will dann nach der Ansage erstmal wieder zurückspringen, obwohl der alte Transport ja schon lange inaktiv ist bzw. pausiert/gestoppt ist (beides probiert) und dabei bricht er mit dem Fehler ab.
ich kann den Fehler hier absolut bestätigen:
Sobald ich über die SpotifyApp auf die Sonos Lautsprecher streame und dann mit SNS_PlayFiles einen Klingelton ausgebe, kommt es zu dem oben genannten Fehler, wie von dir vermutet.
Auch wenn man die Wiedergabe nicht wieder starten kann, weil das API das möglicherweise nicht hergibt: Könntest du in deinem Modul den Fehler abfangen, damit eigene Skripte sauber durchlaufen?
Die werfen einen Fehler, wenn Spotify gestartet ist und man SNS_PlayFiles benutzt. Ich habe schon die @SNS_PlayFiles() Syntax benutzt, aber das Skript bricht an der Stelle ab, nachfolgende Befehle werden nicht mehr ausgeführt.
Hallo Zusammen,
ich stell mich bissle doof an - wie kann ich denn eine Gruppe erstellen von Lautsprechern?
SNS_SetGroup(int $InstanceID, int $groupCoordinator)
Fügt die Instanz zu einer Gruppe hinzu oder entfernt es aus einer Gruppe.
Wenn die InstanzID eines Gruppenkoordinators mitgegeben wird, wird die instanz dieser Gruppe hinzugefügt.
Wenn 0 mitgegeben wird, wird die Instanz aus allen Gruppen entfernt.
Ich bekomm das net hin - ich mach was falsch!?! Ich will einfach Box 1 und Box 2 und Box 3 in einer gruppe und eine davon soll auch der Coordinator sein…
der Befehl ist schon richtig.
einfach die Instanz-ID der entsprechenden Boxen eintragen.
Sonst poste mal deinen Versuch, damit man dir besser helfen kann.
ja.
Das „x-sonos-vli“ ist verräterisch.
Schau Dir mal meine Antwort an crandler vom 31.1. an (Sonos Modul - #1746 von crandler).
Es scheint sich um eine Wiedergabe zu handelt, die von der Spotify App aus gestartet wurde.
Solche kann ich nicht resumen.
Wenn ich Zeit finde baue ich ein, dass dann einfach nichts gestartet wird. Ob das besser ist habe ich keine Ahnung, aber dann gibt es zumindest keine Exception…
Hi Thorsten,
ja das kann gut sein dass sie gerade einer anderen Gruppe als Koordinator zugeiwesen ist. Deshalb hatte ich auch mal testweise die Zeile BecomeCoordinator (siehe oben) vorne ran gestellt, um sicherzu gehen dass es nicht daran liegt. Aber die Fehlermeldung bleibt die selbe.
Hallo Thorsten,
habe natürlich nicht die „12345“ genommen
Fehlermeldung ist
Fatal error: Uncaught Exception: Error during Soap Call: UPnPError s:Client 501 (UNKNOWN) in C:\ProgramData\Symcon\modules\.store\de.kugelberg.sonos\libs\sonosAccess.php:801
Stack trace:
#0 C:\ProgramData\Symcon\modules\.store\de.kugelberg.sonos\libs\sonosAccess.php(558): SonosAccess->processSoapCall('/MediaRenderer/...', 'urn:schemas-upn...', 'SetAVTransportU...', Array)
#1 C:\ProgramData\Symcon\modules\.store\de.kugelberg.sonos\SonosPlayer\module.php(1854): SonosAccess->SetAVTransportURI('x-rincon:RINCON...')
#2 C:\ProgramData\Symcon\scripts\__generated.inc.php(523): SonosPlayer->SetGroup(38920)
#3 C:\ProgramData\Symcon\scripts\38043.ips.php(31): SNS_SetGroup(38260, 38920)
#4 {main}
thrown in C:\ProgramData\Symcon\modules\.store\de.kugelberg.sonos\libs\sonosAccess.php on line 801
Meine Gruppierungs-Sequenz ist:
case 1: // Party-Modus = alle Lautsprecher an
SNS_SetGroup($group_id, 0); // gibt Fehler
SNS_SetGroup($buero_id,$group_id);
SNS_SetGroup($kueche_id,$group_id);
SNS_SetGroup($sz_id,$group_id);
SNS_SetGroup($bad_id,$group_id);
SNS_SetGroup($gabi_id,$group_id);
SNS_SetGroup($wk_id,$group_id);
SNS_SetDefaultGroupVolume($group_id);
// SONOS starten
SNS_Play($group_id);
break;
Den ersten Befehl SNS_SetGroup($group_id, 0); habe ich erst neu hinzugefügt.
diese Funktion macht die angegebene Instanz zum Koordinator der Gruppe in der die Box gerade ist.
Wenn aber 11386 in der Gruppe von 27631 ist, hilft ein SNS_BecomeCoordinator(54958); nicht.
Wenn Du sichergehen willst, dass keine Box in einer Gruppe ist könntest Du folgendes für alle Player machen:
Wenn SNS_IsCoordinator() false liefert, ein SNS_SetGroup(, 0) ausführen.
nein, eigentlich nicht.
Aber das ist eine Box, bei der schonmal die WLAN-Verbindung abbricht.
Ich habe den Aufruf nochmal gestartet als ich mir sicher war, dass die BOX erreichbar ist.
Der Fehler trat nicht mehr auf!
War wohl eine Verkettung verschiedener Ursachen.
Sorry, für die Verwirrung.
Hat sich erledigt: Ich hatte Player in verschiedenen Subnetzen. Nun habe ich pro Subnetz einen eigenen Splitter angelegt und die dazugehörigen Player damit verbunden. Jetzt geht es wieder wie gewünscht.
Hallo Thorsten,
ich habe derzeit einen komischen Effekt, wo ich leider nicht sagen kann, woher der kommt. Hatte ich jedenfalls bisher nicht.
Sobald ich einen Player mittels der App (Desktop oder auch Smartphone) in eine Gruppe aufnehme, wird der Status des Players der hinzugefügt wird als auf „Wiedergabe“ angezeigt. Der Master, der den zweiten Player aufnimmt, steht auf „Stop“. Der aufgenommene Player spielt auch nichts. Trenne ich die Gruppe, ist der Player wieder auf Stop.