heute teile ich mal mein Script mit euch dass ich zur Ansteuerung eines Sonos Players nutze.
Es handelt sich dabei um ein PHP Script, muss also auf einem PHP fähigen (Homepage)-Server liegen. Dann kann man es einfach per
Code: Alles auswählen
system.Exec("wget http://<SERVER-IP-ADRESSE:SERVER-PORT/PFAD>/sonos.php?cmd=Play -O /var/tmp/httpRequest");
Wer auf der CCU den PHP Server laufen hat kann natürlich auch diesen nutzen.
bspw:
Code: Alles auswählen
system.Exec("wget http://127.0.0.1:90/includes/sonos.php?cmd=Play -O /var/tmp/httpRequest");
Code: Alles auswählen
string stdout;
string stderr;
system.Exec("wget http://127.0.0.1:90/includes/sonos.php?cmd=Play -O /var/tmp/httpRequest",&stdout,&stderr);
Integrierte Befehle sind:
Pause, Play, Next, Previous, Rewind (selbsterklärend)
SetVolume (benötigt noch den 'volume' parameter. setzt die Lautstärke auf den Wert 'volume')
SetPlayMode (benötigt noch den 'mode' parameter. gültige playmodes: "REPEAT_ALL", "SHUFFLE", "NORMAL")
SetMute (benötigt noch den 'mute' parameter. mute=1 -> Lautlos. mute=0 -> Normal)
SetRadio (benötigt noch den 'radio' parameter. Startet den Radio-Stream 'radio'. z.B. radio = "players.creacast.com/creacast/klassik/playlist.pls")
ClearQueue (Leert die Playliste)
AddToQueue (benötigt noch den 'file' parameter. Fügt die Datei file der Playliste hinzu. z.B. file = "192.168.1.20/mp3/playliste.m3u")
RemoveFromQueue, SetTrack (benötigt noch den 'track' parameter)
Info, Info2 (ließt aktuelle Infos aus)
InputPC (setze den Eingang auf den Cinch-Eingang)
InputQueue (setze den Eingang auf die Interne Queue)
LastFmPersonal (starte LastFM Bibliothek Stream)
LastFmRecommended (starte LastFM Empfehlungen Stream)
LastFmTag (benötigt noch den 'lfmTag' parameter. Starte einen LastFM Tag-Stream 'lfmTag' z.B. den Rock-Tag Stream)
LastFmArtist (benötigt noch den 'lfmArtist' parameter. Starte einen LastFM Artist-Stream 'lfmArtist' z.B. den Aeorosmith-Artist Stream)
einen radio sender würde mal bspw. so starten:
Code: Alles auswählen
sonos.php?cmd=SetRadio&radio="players.creacast.com/creacast/klassik/playlist.pls"
der LastFM Bibliotheks Stream lässt sich so starten:
Code: Alles auswählen
sonos.php?cmd=LastFmPersonal
Code: Alles auswählen
sonos.php?cmd=Play
die IP-Adresse des Sonos Players,
der Port des Sonos Players falls abweichend von der 1400 (standart Port),
und der LastFM Username falls man LastFM nutzen möchte:
Code: Alles auswählen
// Sonos Player device ip-address. e.g. "192.168.0.100"
// IP-Adresse des Sonos Players z.B. "192.168.0.100"
$deviceAddress = "";
// Sonos Player device port. e.g. 1400 (default)
// Port des Sonos Players z.B. 1400 (standart)
$devicePort = 1400;
// LastFM User ID e.g. "sonosrocker54"
$lfmUser = "";
Es ist noch zusagen dass fast alles Befehle mit Wireshark von dem Sonos Desktop Tool abgefangen wurden und da durch vielleicht noch irgendwelche versteckten persönlichen Infos enthalten. Da ich aber nur 1 Gerät habe lässt sich das nicht so einfach feststellen . Bei mir funktionieren alle Befehle. sollte es Probleme geben einfach melden.
Bitte aber nicht wegen einer PHP Installation (auf der CCU) dazu gibt es hier andere Themen.
Viele Grüße
Daniel
PS. Eigentlich gehört diese Script nicht umbedingt in diese Forum, da es nicht HomeMatic exclusiv ist. Man könnte es von überall ausführen wo man einen PHP Server hat und einen Aufruf starten kann.
Den Anstoss zu diesem Script habe ich in einem IP-Symcon Forum gefunden.