Sonos: Basissteuerung mit PHP für Linux

Ich wollte schon seit längerem eine Möglichkeit finden, wie ich die Sonos Player in meinem Haushalt von meinem Linux Server aus steuern kann. Zuerst sollten einfache Befehle wie Starten, Pause oder Lautstärke verändern im Vordergrund stehen. Es gibt zwar schon kleinere Programme die das für Windows machen aber noch keins für Linux.

Am Ende habe ich folgenden  Ansatz gefunden der mit PHP realisiert worden ist und in die Administration von IPCop integriert worden ist. Da man PHP auch von der Kommandozeile aus starten kann schien das ein guter Startpunkt.

An diesem Script habe ich dann folgende Änderungen / Erweiterungen vorgenommen.

  • Entfernen von Aktionen dich ich nicht brauche
  • Hinzufügen von sehr rudimentären Parameterübergabe für die Kommandozeile
  • Eine sehr einfache Wahlmöglichkeit bei der Übergabe von Parametern für die Radiosender. Sender und Sender URLs müssen im Script angepasst werden.


Folgende Aktionen sind definiert

Starten:    php sonos-v2.php sonos-ip-addresse Play
Pause:      php sonos-v2.php sonos-ip-addresse Pause
Mute ein:   php sonos-v2.php sonos-ip-addresse Mute 1
Mute aus:   php sonos-v2.php sonos-ip-addresse Mute 0
Lautstärke: php sonos-v2.php sonos-ip-addresse SetVolume 22
Radio SWR3: php sonos-v2.php sonos-ip-addresse SetRadio SWR3
Radio WDR2: php sonos-v2.php sonos-ip-addresse SetRadio WDR2

Weitere Ideen:

  • Wenn das Telefon klingelt werden alle Sonos auf Mute geschaltet (von Asterisk)
  • Wecker mit "langsam ansteigender Lauststärke" und zeitversetzem Einschalten von unterschiedlichen Räumen/Zonen.

Bekannter Fehler:

  • Der Titel der Radiosenders enthält die Zeichenkette "IPSym Radio". Keine Ahnung, wenn ich das entferne gibts einen Fehler.

Hier ist die Datei