Sonos + PHP

Begonnen von marco2k9, 25 Juni 2015, 12:42:24

Vorheriges Thema - Nächstes Thema

marco2k9

Hi Leute, ich hoffe ihr könnt mir auch weiterhelfen wenn es nicht in Verbindung mit einer FHEM Anlage steht. Ich bin langsam wirklich verzweifelt.

Ich versuche meine Sonos Anlage mit einem PHP Skript zu steuern. Das klappt auch ganz gut, bis zu dem Punkt an dem ich Zonen gruppieren möchte. Ich verstehe das Prinzip bei Sonos einfach nicht.

Um den Vorgang zu testen, bevor ich ihn skripte habe ich mir Device Spy runtergeladen. Hier kann ich die einzelnen Upnp befehle direkt ansteuern und ausführen.
Kann mir jemand sagen wie der genaue Vorgang ist um Beispielsweise 2 PLayer in eine Gruppe zu packen ? Welche Befehlsmodule benötige ich

"urn:schemas-upnp-org:service:Groupmanagement:1 -> AddMember " ?
"urn:schemas-upnp-org:service:AVTransporty:1->BecomeCoordinatorOfStandaloneGroup" ?
"urn:schemas-upnp-org:service:AVTransporty:1->BecomeGroupCoordinator" ?
"urn:schemas-upnp-org:service:AVTransporty:1->BecomeGroupCoordinatorAndSource" ?

Ich hoffe ihr könnt mir weiterhelfen, ich bin schon so weit und scheiterte einfach am Gruppieren :-( Vielen Dank für eure Hilfe

Reinerlein

Hi Marco,

jetzt hatte ich schon eine Mail in Vorbereitung :) Dann jetzt hier.

Eine Gruppe ist ganz einfach zu bilden:
Du musst dem neuen Gruppenmitglied sagen, dass er den Master abspielen soll:

SetAVTransportURI(0, "x-rincon:RINCON_abcdefghi")

Da musst du aber beachten, dass der neue Slavemember nicht selber Leiter einer Gruppe ist!

Das Auflösen geht dann über:

BecomeCoordinatorOfStandaloneGroup(0)
Je nachdem ob die Playliste beim Slave die neue (der Gruppe) bleiben soll oder die alte wiederhergestellt werden soll (von vor der Gruppierung), musst du das am Master oder am Slave machen...

Grüße
Reiner

marco2k9

Vielen Vielen Dank Reiner !!!! Ich will nämlich nur 4 Preset Buttons auf einem Ipad darstellen. Vielen dank :) *jetztbinichhappy*

marco2k9

Hi Reinerlein,

ein Problem taucht nun auf:

Ich habe insgesamt 4 Sonos Play 1 und will 2 Gruppen mit unterschiedlichen Quellen abspielen. Leider wird immer nur eine Gruppe erzeugt. Die zweite wird nicht mehr angelegt.

So Rufe Ich die Klasse auf:
$sonos_2->AddMember($RINCON_sonos_1);
$sonos_4->AddMember($RINCON_sonos_3);



Meine Addmember Klasse
public function AddMember($addmember) // added br
{
$url = '/MediaRenderer/AVTransport/Control';
$action = 'SetAVTransportURI';
$service = 'urn:schemas-upnp-org:service:AVTransport:1';
$args = '<InstanceID>0</InstanceID><CurrentURI>x-rincon:'.$addmember.'</CurrentURI><CurrentURIMetaData>0</CurrentURIMetaData>';
return $this->Upnp($url,$service,$action,$args);
}


Muss ich eine andere Funktion auswählen ? Become GroupCoordinator ? Vielen Dank schonmal für deine Hilfe

marco2k9

Gelöst -----

OK ich muss halt sauber bei der Config arbeiten.... Rincon hatte nicht zur IP gepasst. Funktioniert alles. Ergebnisse poste ich hier wenn ich fertig bin.