SONOS-Lautsprecher einbinden (Internet-Radio & Durchsagen)

Aus Haus-Bus.de Home Automation System
Wechseln zu: Navigation, Suche

Die SONOS-Lautsprecher stellen eine sehr fortgeschrittene Lautsprechergeneration dar, die -zumindest laut Testberichten- mit einem Preis ab 200€/Lautsprecher eher günstig im Vergleich ist. SONOS selbst bietet keine offizielle API an, wohl aber gibt es eine PHP-Class, die komplett ohne nodeJS auskommt.

Möglich werden dadurch das Abspielen von Internetradios, die Unterbrechung der Ausgabe für eine Durchsage und anschließendes Weiterspielen des eigentlichen Streams.

[noch nicht fertig / Verantwortlich: Andreas]

Benötigt wird die HTTP-API (https://github.com/ThomasTr/sonos) und die PHPClass (siehe Dokumentation der API; Link zum Script mit der Class: https://www.symcon.de/forum/threads/14938-br_sonos?p=133623#post133623). Beides wird in einen Unterordner von /var/www geschoben. Dazu muss ggf. die Berechtigung des Verzeichnisses geändert werden, da das Standardimage dort keine Schreibrechte gewährt. Möglich ist das z.B. mit dem MidnightComander ("sudo mc"). Das neu angelegte Verzeichnis "sonos" benötigt wieder volle Schreibrechte (777).

Wenn alles auf den Homeserver kopiert ist, wird die config.php-Datei angepasst. Pfade von Radiosendern bekommt man in der Regel einfach über Google heraus.

Anschließend werden die Taster im Haus-Bus belegt. Wenn nur Radio abgespielt werden soll, klappt die Bedienung mit nur einer Taste. Dazu folgende Regeln festlegen: onClick(Status: aus): http://yourserver/sonos/index.php?zone=kitchen&action=Play; Led einschalten; Folgestatus: an onClick(Status:an): http://yourserver/sonos/index.php?zone=kitchen&action=Stop; Led ausschalten; Folgestatus: aus onDoubleclick: http://yourserver/sonos/index.php?zone=kitchen&action=nextRadio

Ungetestete Idee: onHoldStart(Status:lauter): http://yourserver/sonos/index.php?zone=kitchen&action=VolumeUp onHoldEnd(Status:lauter): Folgestatus: leiser onHoldStart(Status:leiser): http://yourserver/sonos/index.php?zone=kitchen&action=VolumeDown onHoldEnd(Status:leiser): Folgestatus: lauter


Übrigens kann man sich über HTTP auch detailierte Berichte zu SONOS-Boxen anzeigen und z.B. das interne WLAN der Lautsprecher ausschalten. Eine Befehlsliste gibt es hier: https://www.witmer.ch/index.php/sonos

Beispiel: http://IP/support/review gibt eine Systemübersicht des SONOS-Netzes aus.