SonosBY (Sonos // Gruppen erstellen, Gruppen auflösen, Text to Speech, ...)

@Bayaro

Ja, verwende die Version 1.7

Bei
SonosBY_PlayPlaylistByName_Auswahl(„Wohnzimmer“,„Faun“);
oder jeder anderen Playlist wird die Playlist nicht abgespielt.
Andere Befehle von Deinen Script funktionieren - damit sollte ja die Basiseinrichtung korrekt sein.

Der Befehl $result = SonosBY_BrowsePL(); gibt die folgende Info für die Playlist Faun zurück.

$result = SonosBY_BrowsePL();

Array
(
[0] => Array
(
[id] => SQ:2
[title] => Faun
[file] => file:///jffs/settings/savedqueues.rsq#2
)

Hilft das?

Moin Marcus :slight_smile:

Kommt keine Fehlermeldung beim Abspielen einer Playlist?

Könntest du bitte mal parallel die Sonos-Software am Computer öffnen, dann den Raum beobachten, ob die Playliste in den Raum geladen und nur nicht abgespielt wird oder irgendwie etwas mehr an Infos kommen wo es klemmt?

Diese Befehle sollten die Playlist im Raum leeren und dann die Playlist „Faun“ laden (ohne sie abzuspielen)…klappt das? Wie sieht die Rückgabe aus, wenn nicht „200 OK“?

SonosBY_PlaylistLeeren("Wohnzimmer");
$result = SonosBY_AddURItoQueue($SonosGroupNrDesPlayers, "file:///jffs/settings/savedqueues.rsq#2");   // Bitte bei "$SonosGroupNrDesPlayers" die Nr. vom Wohnzimmer im Array eintragen
print_r($result);

Grüße,
Chris

Hallo Chris,

das kommt zurück …

Notice: Undefined index: Wohnzimmer in C:\IP-Symcon\scripts\30908.ips.php on line 385

Notice: Undefined index: Wohnzimmer in C:\IP-Symcon\scripts\30908.ips.php on line 399

Warning: fsockopen(): unable to connect to :1400 (Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte.
) in C:\IP-Symcon\scripts\30908.ips.php on line 1033

Warning: fputs() expects parameter 1 to be resource, boolean given in C:\IP-Symcon\scripts\30908.ips.php on line 1034

Warning: stream_get_contents() expects parameter 1 to be resource, boolean given in C:\IP-Symcon\scripts\30908.ips.php on line 1035

Warning: fclose() expects parameter 1 to be resource, boolean given in C:\IP-Symcon\scripts\30908.ips.php on line 1036
HTTP/1.1 200 OK
CONTENT-LENGTH: 385
CONTENT-TYPE: text/xml; charset=„utf-8“
EXT:
Server: Linux UPnP/1.0 Sonos/31.3-22220 (ZPS1)
Connection: close

20467270

In der Sonos App sieht man das nicht nix tut - d.h. das was „läuft“ läuft weiter es wird keine Queue gelöscht - hinzugefügt etc. Das was läuft läuft so weiter.

Danke und Grüsse,
Marcus

Hi Marcus!

Sorry, hatte einen Fehler drin :rolleyes: :smiley:

Bitte das nochmal probieren:

$SonosGroupNrDesPlayers = 0;  // Hier die Nr von deiner Sonos aus dem Config-Array eintragen
SonosBY_PlaylistLeeren($SonosGroupNrDesPlayers); 
$result = SonosBY_AddURItoQueue($SonosGroupNrDesPlayers, "file:///jffs/settings/savedqueues.rsq#2");
print_r($result);

Wenn das funktioniert, dann sollte der Rest auch funktionieren :confused: Und das „HTTP/1.1 200 OK“ sagt auch, dass die Playlist erfolgreich geladen wurde. Kannst du bitte nochmal alles überprüfen bei dir und etwas genauer testen? Sicher alles richtig in der Config eingetragen? Stimmen alle RINCON? …?

Hab es eben nochmal bei mir durchgetestet - egal ob grad etwas abgespielt wird oder nicht, die Playlist wird geleert und dann die neue Playlist geladen und abgespielt.

Kann bitte noch jemand anderes gegen testen mit der Playlist? Klappt das bei anderen?

SonosBY_PlayPlaylistByName_Auswahl("Raumname", "Sonos-Playlist-Name");

Grüße,
Chris

Moin :slight_smile:

So, nun sieht es anders aus …

HTTP/1.1 200 OK
CONTENT-LENGTH: 382
CONTENT-TYPE: text/xml; charset=„utf-8“
EXT:
Server: Linux UPnP/1.0 Sonos/31.3-22220 (ZPS1)
Connection: close

Nun, habe ich mal verschiedene Sachen probiert … es hängt davon ab was ich vorher mache und selbst dann variiert das Ergebnis.

  1. MP3 läuft (egal was) - Dein Script - „Laufendes“ Lied wird aus Queue gelöscht und auf Playlist Faun umgestellt - aber Playlist Faun wird nicht abgespielt/gestartet.

  2. Radiosender läuft aus Meine RadioSender - Dein Script - Es passiert nichts - trotz der obigen auch erfolgreichen „Aktion“ läuft der Radiosender einfach weiter

Moin Marcus!

Bei den Test-Zeilen von mir wird auch nur die Playlist geladen und nicht abgespielt, hatte ich ja geschrieben.

Aber wenn das funktioniert, dann fehlt ja fast nichts mehr…

Probier mal das:

$SonosGroupNrDesPlayers = 0;  // Hier die Nr von deiner Sonos aus dem Config-Array eintragen 
SonosBY_Stop_Playing($SonosGroupNrDesPlayers);
SonosBY_PlaylistLeeren($SonosGroupNrDesPlayers);  
$result = SonosBY_AddURItoQueue($SonosGroupNrDesPlayers, "file:///jffs/settings/savedqueues.rsq#2"); 
IPS_Sleep(2000);
$result1 = SonosBY_SetAVTransportURI($SonosGroupNrDesPlayers, "x-rincon-queue:".$SonosGroupAR[$SonosGroupNrDesPlayers][2]."#0"); 
print_r($result1); 
echo "-----------------------------------------------------------------------------------------"
$result2 = SonosBY_StartResume_Playing($SonosGroupNrDesPlayers);
print_r($result2); 

Und wenn das funktioniert, dann muss es auch mit der normalen Funktion „SonosBY_PlayPlaylistByName_Auswahl“ funktionieren! Weil das quasi das gleiche ist, nur in „einzeln“ (bis auf Gruppe erstellen, aber das fällt bei einem Player ja eh weg) :slight_smile:

EDIT: Selbst wenn ich vorher einen Radiosender laufen lasse, funktioniert die Funktion mit der Playlist einwandfrei :slight_smile: Eben ganz frisch getestet :slight_smile:

Grüße,
Chris

Hallo Chris,

Ich habe heute mal als Master die Stereopaare eingetragen. Nachdem dann TTS ausgeführt wurde werden auch die Gruppen
(WohnzimmerStereo,Küche,Schlafzimmer) wieder getrennt.
Was bei mir nicht funktioniert das der alte Zustand hergestellt wird
Also wenn die Sonos alle auf Stop stehen bevor ich das Script starte wird nach dem Script die letzte Wiedergabe an allen Sonos gespielt und nicht wie es sein sollte das die Sonos danach wieder auf Stop stehen.
<?
include ‚SonosBY.ips.php‘;
$AlterZustandAR = SonosBY_AltenZustandLesen();
SonosBY_GruppeErstellen();
SonosBY_TTS_ALLE(„Ich bin ein Test der Sprachausgabe“);
SonosBY_GruppeAufloesen();
SonosBY_AltenZustandSetzen($AlterZustandAR);
?>

Gruß

Stephan

Hi Stephan!

Du machst das doppelt und falsch, deswegen wird es nicht funktionieren :slight_smile:

Beim Befehl „SonosBY_TTS_Alle($Text);“ ist schon alles mit drin, was du nochmal extra ihm mit gibst an Befehlen :wink:

In der Beschreibung oben im Skript steht:

SonosBY_TTS_Alle($Text) << Merkt sich den Zustand aller Player, erstellt eine Gruppe, spielt den Text ab, löst die Gruppe auf, stellt alte Zustände wieder her

Also reicht dir ein Skript mit diesem Inhalt:

<?
include 'SonosBY.ips.php';
SonosBY_TTS_Alle("Ich bin ein Test der Sprachausgabe");
?>

…darin wird automatisch das schon gemacht, was du nochmal extra geschrieben hast. Also alter Zustand gemerkt, Gruppen erstellen, Sprachausgabe, Gruppen auflösen, alten Zustand wieder setzen. Bei allen, AUßER beim Master der Gruppe! Steht aber auch so in der Beschreibung vom Skript!

Ich kam noch nicht dazu, dass mit dem Stereopaar zu testen, mache ich die Tage…

Grüße,
Chris

Hallo Chris,

so habe mal … weiter ausprobiert … Dein Script :

$SonosGroupNrDesPlayers = 0; // Hier die Nr von deiner Sonos aus dem Config-Array eintragen
SonosBY_PlaylistLeeren($SonosGroupNrDesPlayers);
$result = SonosBY_AddURItoQueue($SonosGroupNrDesPlayers, „file:///jffs/settings/savedqueues.rsq#2“);
IPS_Sleep(2000);
$result1 = SonosBY_SetAVTransportURI($SonosGroupNrDesPlayers, „x-rincon-queue:“.$SonosGroupAR[$SonosGroupNrDesPlayers][2]."#0");
print_r($result1);
echo „-----------------------------------------------------------------------------------------“;
$result2 = SonosBY_StartResume_Playing($SonosGroupNrDesPlayers);
print_r($result2);

Gibt folgendes zurück …

HTTP/1.1 500 Internal Server Error
CONTENT-LENGTH: 347
CONTENT-TYPE: text/xml; charset=„utf-8“
EXT:
Server: Linux UPnP/1.0 Sonos/31.3-22220 (ZPS1)
Connection: close

s:ClientUPnPError714-----------------------------------------------------------------------------------------HTTP/1.1 200 OK
CONTENT-LENGTH: 240
CONTENT-TYPE: text/xml; charset=„utf-8“
EXT:
Server: Linux UPnP/1.0 Sonos/31.3-22220 (ZPS1)
Connection: close

Danke und Grüsse,
Marcus

Magst du mir mal deine ganzen Zeilen aus dem Konfiguration-Bereich per PN zuschicken? Ich vermute eine falsche RINCON im Konfiguration-Teil.

-Chris-

Hi MaLu,
ich vermute fast es liegt an Deiner Playlist „Faun“. Andere mal probiert? Ich hatte das Problem mal, als einTitel nicht mehr auffindbar war. Ist „Faun“ eine offline oder Dienste-Playlist? (Spotify, rdio)
Gruß
Hoep

Da könnte MaLu auch einfach mal eine Sonos-Playlist mit Namen „IPS“ oder „Test“ anlegen, da dann mal 2 oder 3 Lieder rein und testen.

Edit: Danke für den Hinweis Hoep!!! :slight_smile:

Grüße,
Chris

Hallo Chris,

Danke für den Tip - ich glaub ich werd wahnsinnig - meine RINCON hat sich geändert. Unter http://x.x.x.x:1400/status/zp nochmal geschaut … und siehe da … eine andere als ich schon immer verwendet hatte - also bis zum Update auf die Version 6 vom Sonos System.Da steckt ja die MAC Adresse drin … … naja nun gehts mal weiter …

Wo wohnst denn Chris - Schulde Dir mindestens - 2 Bier :slight_smile:
@hoep - wenn wir schon mal dabei sind - Du kriegst auch 2 Bier :slight_smile:

Daaaaaaanke und Grüsse,
Marcus

Aiaiaiaiai :smiley: Das hättest du aber auch schneller haben können :wink: :stuck_out_tongue:

Aber freut mich, dass wir die Ursache des Fehlers finden konnten und es jetzt bei dir klappt! Es gibt nichts schlimmeres für mich als aufgeben und den Fehler „auf sich beruhen lassen“.

Wohnort steht neben jedem Beitrag von mir :smiley:

Grüße,
Chris

Cool, ich wette jetzt klappts auch mit IPSSonos…
Aber Rincon-Änderung? Dachte die hängt and der MAC?
Interessante Beobachtung…
Gruß
Hoep

@hoep

Ja, mit den Playlists klappt es nun auch unter IPSSonos … aber Oje:confused:, die Radio Stations lassen sich immer noch net synchronisieren. Eieieieieieieiei

Grüsse,
Marcus

Hi MaLu,
Aargh. TuneIn Staions oder eigen definierte?
Gruß hoep

Bitte eure Unterhaltung im IPSSonos-Thread fortführen :wink: Danke! :slight_smile:

-Chris-

Guten Abend!

Leider bekomme ich seit dem update auf Sonos V6 meine Playlisten bzw Radiosender nicht mehr ausgelesen bzw. gesetzt.
Ich vermute nach wie vor einen Fehler in der Browse Funktion.
Evtl. stehe ich aber auch nur auf dem Schlauch… :wink:

Der Output beim Aufruf von zB:
SonosBY_PlayPlaylistByName_Auswahl(‚Wohnzimmer‘, ‚Club Music‘);

lautet:

Warning:  SimpleXMLElement::__construct(): Entity: line 1: parser error : EntityRef: expecting ';' in C:\IP-Symcon\scripts\13475.ips.php on line 370

Warning:  SimpleXMLElement::__construct(): otify:spotify%3atrack%3a2xiuLdATFe8xoSFBwvegkA%3fsid%3d9%26flags%3d32%26sn%3d1&l in C:\IP-Symcon\scripts\13475.ips.php on line 370

Warning:  SimpleXMLElement::__construct():                                                                                ^ in C:\IP-Symcon\scripts\13475.ips.php on line 370

Warning:  SimpleXMLElement::__construct(): Entity: line 3: parser error : Opening and ending tag mismatch: albumArtURI line 1 and container in C:\IP-Symcon\scripts\13475.ips.php on line 370

Warning:  SimpleXMLElement::__construct(): xcX1np7NsK5XtQQao%3fsid%3d9%26flags%3d32%26sn%3d1</upnp:albumArtURI></container> in C:\IP-Symcon\scripts\13475.ips.php on line 370

Warning:  SimpleXMLElement::__construct():                                                                                ^ in C:\IP-Symcon\scripts\13475.ips.php on line 370

Warning:  SimpleXMLElement::__construct(): Entity: line 4: parser error : expected '>' in C:\IP-Symcon\scripts\13475.ips.php on line 370

Warning:  SimpleXMLElement::__construct(): 1000 in C:\IP-Symcon\scripts\13475.ips.php on line 370

Warning:  SimpleXMLElement::__construct(): ^ in C:\IP-Symcon\scripts\13475.ips.php on line 370

Warning:  SimpleXMLElement::__construct(): Entity: line 4: parser error : Opening and ending tag mismatch: albumArtURI line 3 and u in C:\IP-Symcon\scripts\13475.ips.php on line 370
Abort Processing during exceed of maximal ErrorCount: SimpleXMLElement::__construct(): 1000
   Error in Script C:\IP-Symcon\scripts\13475.ips.php on Line 370

Und gesetzt wird natürlich nichts…
Die Konfig des Scriptes erscheinbt mir korrekt zu sein.

Bis jetzt habe ich mit SonosBR bzw PHP Sonos gearbeitet und hat auch immer alles funktioniert.

Hätte bitte jemand eine Lösung bzw. Idee für mein Problem??

Herzlichen Dank

Peter

Abend Peter!

Sind das zufällig Spotify Playlisten? Die Rückmeldungen deuten sowas an… Ist diese „Club Music“ eine Spotify oder Sonos-Playlist? Hast du allgemein Spotify-Playlisten?

Die Funktion mit den Playlisten in SonosBY ist nur für Sonos-Playlisten. Da ich keinen Spotify-Zugang habe, kann ich das leider nicht testen.

Grüße,
Chris