HomeMatic CCU2 bei ELV bestellen

Sonos PHP Script

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Werbung


Sonos PHP Script

Beitragvon ColdFireIce » 21.06.2010, 17:43

Hallo mal wieder.

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");

aus einem Homematic Script herraus aufrufen.

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");

ich wurde gerade von owagner darauf hingewiesen, dass es bei manchen wohl Probleme gibt wenn man system.Exec ohne die Parameter &stdout &stderr aufgerufen wird. In diesem Fall wäre der Code wohl eher so richtig:
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);

Ich habe damit keine Erfahrungen gemacht aber zur Vollständigkeit sollte das erwähnt sein.

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


manchmal ist es nötig nach der Wahl was man hören will auch noch einen "Play" Befehl hinterher zu schicken:
Code: Alles auswählen
sonos.php?cmd=Play


damit dass Script funktioniert müssen noch 2-3 Parameter in dem Script eingetragen werden.
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 = "";


Bei mir ermöglicht diese Script zB dass wenn ich den "Homeleaving" Taster drücke, nicht nur alle Lichter ausgehen sondern auch die Musik gestoppt wird, und umgekehrt wenn ich wieder heimkomme.

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.
Dateianhänge
sonos.php.txt
das ".txt" müsst ihr noch löschen. Der Dateiuploader erlaubt keine .php Dateien
(24.07 KiB) 1103-mal heruntergeladen
ColdFireIce
 
Beiträge: 407
Registriert: 06.03.2009, 16:38
Wohnort: Karlsruhe

Re: Sonos PHP Script

Beitragvon Brenner » 24.08.2010, 15:59

Hallo Daniel,

läuft alles von der technischen Seite her super. Keine Fehler :-)

Ich habe aber noch nicht kapiert wie ich ganz dediziert z.B. den "NDR2" Radiostream von LastFM aufrufen kann.
Kannst du mir ein Beispiel geben? Aus deinem Beispiel werde ich nicht ganz schlau.
Viele Grüße, Stefan!
Brenner
 
Beiträge: 535
Registriert: 08.08.2009, 10:29

Re: Sonos PHP Script

Beitragvon ColdFireIce » 24.08.2010, 16:02

Brenner hat geschrieben:Ich habe aber noch nicht kapiert wie ich ganz dediziert z.B. den "NDR2" Radiostream von LastFM aufrufen kann.


Ähm wüsste ich nicht mal wie ich das beim richtigen LastFM Client machen. Ich dachte immer LastFM kann nur Tags und Artists. Wie soll man den da einen Radiosender auswählen können?

Grüße
Daniel
ColdFireIce
 
Beiträge: 407
Registriert: 06.03.2009, 16:38
Wohnort: Karlsruhe

Re: Sonos PHP Script

Beitragvon Onthefly » 24.08.2010, 16:05

ColdFireIce hat geschrieben:Bitte aber nicht wegen einer PHP Installation (auf der CCU) dazu gibt es hier andere Themen.


Die Forumsuche hat aber leider nichts hervorgebracht. Hättest Du evtl. einen TIpp für eine PHP Server Installation auf der CCU?

Danke
Onthefly
 
Beiträge: 831
Registriert: 07.12.2009, 12:55

Re: Sonos PHP Script

Beitragvon ColdFireIce » 24.08.2010, 16:19

Onthefly hat geschrieben:Die Forumsuche hat aber leider nichts hervorgebracht.


Hmm komisch, die Wörter PHP, CCU, Server bringen einen eigentlich schon recht schnell zum Ergebnis wenn man nicht nur auf der 1. Seite schaut.
viewtopic.php?f=26&t=1583
viewtopic.php?f=26&t=2221
viewtopic.php?f=26&t=3117
viewtopic.php?f=26&t=4456
viewtopic.php?f=26&t=4626

das Addons gibts auf homematic-inside.de

Viele Grüße
Daniel
ColdFireIce
 
Beiträge: 407
Registriert: 06.03.2009, 16:38
Wohnort: Karlsruhe

Re: Sonos PHP Script

Beitragvon Onthefly » 24.08.2010, 16:39

ColdFireIce hat geschrieben:Hmm komisch, die Wörter PHP, CCU, Server bringen einen eigentlich schon recht schnell zum Ergebnis wenn man nicht nur auf der 1. Seite schaut.


Daniel,
ich muss irgendwie nur in einem Teil des Forums gesucht haben! Anders kann ich es mir nicht erklären! Sorry für die Unannehmlichkeiten und Danke für die tolle Arbeit.

OTF
Onthefly
 
Beiträge: 831
Registriert: 07.12.2009, 12:55

Re: Sonos PHP Script

Beitragvon Brenner » 24.08.2010, 21:14

ColdFireIce hat geschrieben:
Brenner hat geschrieben:Ich habe aber noch nicht kapiert wie ich ganz dediziert z.B. den "NDR2" Radiostream von LastFM aufrufen kann.


Ähm wüsste ich nicht mal wie ich das beim richtigen LastFM Client machen. Ich dachte immer LastFM kann nur Tags und Artists. Wie soll man den da einen Radiosender auswählen können?

Grüße
Daniel



Hmmm, aber mit deinem Beispiel bekommt man doch auch einen Radiosender (klassik irgendwas) zum laufen. Ich würd gerne z.B. mit NDR2 haben anstatt Klassik.

Weißt du eventuell wo ich da nach Infos suchen könnte?
Dateianhänge
20100824_sonos_homematic_002.JPG
Viele Grüße, Stefan!
Brenner
 
Beiträge: 535
Registriert: 08.08.2009, 10:29

Re: Sonos PHP Script

Beitragvon ColdFireIce » 24.08.2010, 22:04

Hi,
Brenner hat geschrieben:Hmmm, aber mit deinem Beispiel bekommt man doch auch einen Radiosender (klassik irgendwas) zum laufen. Ich würd gerne z.B. mit NDR2 haben anstatt Klassik.

nur dass es sich hier bei nicht um den LastFM Musik Dienst handelt sondern ganz normale Internet Radiostreams. Du musst eigentlich nur die richtige Adresse heraus finden. man kann zB die "Unterhaltung" zwischen dem Sonos tool und der Sonos selbst einfach mit Wireshark mit schneiden und dann einfach schaun welche Adresse der Radio Sender hat.
Code: Alles auswählen
cmd=SetRadio&radio=swr.ic.llnwd.net/stream/swr_mp3_m_swr3a

Würde bspw. SWR3 starten.

ich denke es müsste für NDR2 sein:
Code: Alles auswählen
cmd=SetRadio&radio=ndr-ndr2-hi-wma.wm.llnwd.net/ndr_ndr2_hi_wma

habe den Link von hier: http://www.ndr2.de/programm/livestream176.html (google hilft: ndr 2 live stream)

Viele Grüße
Daniel
ColdFireIce
 
Beiträge: 407
Registriert: 06.03.2009, 16:38
Wohnort: Karlsruhe

Re: Sonos PHP Script

Beitragvon Masterflash » 21.07.2011, 16:19

Hallo zusammen
Erstmal vielen Dank an ColdFireIce für das Script. Genau das was ich gesucht habe.
Es klappt bei mir auch nur Versuche ist jetzt seit 1 Stunde die Lautstärke einzustellen.
Ich weiß nicht wie ich den Paramter der Lautstärke mit angeben muß.
Es wäre nett wenn mir jemand weiterhelfen könnte.
Mfg Stefan
Masterflash
 
Beiträge: 20
Registriert: 16.10.2010, 20:08

Re: Sonos PHP Script

Beitragvon Masterflash » 22.07.2011, 08:18

Hallo nochmal
Also das mit der Lautstärke habe ich jetzt hinbekommen. Jetzt würde ich aber gerne noch einen bestimmten Radiosender (Radio KW) einschalten.
Für einen Tipp wie die Adresse von dem Stream rausbekomme wäre ich sehr dankbar. Ich habe mir auch schon das Programm Wireshark installiert aber
da komme ich leider nicht mit weiter.
Vielen Dank
Mfg Stefan
Masterflash
 
Beiträge: 20
Registriert: 16.10.2010, 20:08

Nächste

Zurück zu HomeMatic Zentrale (CCU / CCU2)

Wer ist online?

Mitglieder in diesem Forum: Homoran, jklasen und 7 Gäste







© homematic-forum.de & Lizenzgebern. Alle Rechte vorbehalten. Alle Bilder & Texte auf dieser Seite sind Eigentum
der jeweiligen Besitzer und dürfen ohne deren Einwilligung weder kopiert noch sonstwie weiter verwendet werden.