Die Squeezebox wird durch ihre MAC-Adresse identifiziert. Diese kann man direkt in der Web-Oberfläche des Logitech Media Servers unter „Information“ ablesen.
Für das Script muss der Doppelpunkt durch %3A ersetzt werden.
Im Schlafzimmer lasse ich den Verstärker der Squeezebox automatisch von der HomeMatic schalten
Auf dieser Seite
Im Schlafzimmer betreibe ich ein minimalistisches Ensemble bestehend aus einer Squeezebox Classic, einem kleinen Verstärker von Conrad sowie zwei Boxen einer alten Schneider-Anlage, welche erstaunlich gut klingen.
Hängeregal mit kompletter Squeezebox-Anlage
Der Verstärker ist nicht fernbedienbar, daher habe ich ihn an einen Schaltaktor aus dem HomeMatic-Programm angeschlossen, der ganz normal an der CCU angelernt ist. Meine Squeezeboxen betreibe ich an einem virtuellen Ubuntu-Server, auf dem der Logitech Media Server läuft. Damit habe ich alles zusammen, um den Verstärker automatisch ein- und ausschalten zu lassen.
Die Lautstärke regle ich über die Squeezebox – und mit dem PowerSave-Plugin brauche ich mich nicht mal um das Ausschalten zu kümmern, wenn ich unter sanfter Musikberieselung eingeschlafen bin.
Auf der CCU ist kein eigenes Programm nötig. Der Ubuntu-Server schaltet einfach bei Bedarf den Aktor über dessen URL ein oder aus.
Damit der Aktor über eine URL direkt erreichbar ist, muss jedoch mein DB-Access-Add-on (oder eine entsprechende Alternative) auf der CCU installiert sein.
Auf dem Server läuft ein Shell-Script, das in regelmäßigen Abständen den Zustand der Squeezebox im Schlafzimmer abfragt und dann entsprechend den Aktor ein- und ausschaltet.
gesamtes Script markieren / kopieren
#!/bin/bash power=`cat /var/tmp/squeezebox-status` while [ `date +%S` -lt 55 ] ; do x=`(echo '00%3A04%3A20%3A12%3A43%3Acf power ?' ; sleep 1 ; echo 'exit') | telnet sbs 9090 2>/dev/null | awk '/power/ { print $3 }'` if [ "$x" == "1" ] ; then newpower='true' fi if [ "$x" == "0" ] ; then newpower='false' fi if [ "$newpower" != "$power" ] ; then wget -O /dev/null -q 'http://ccu2/addons/db/state.cgi?item=Schlafzimmer.Squeezebox&dp=STATE&value='$newpower power=$newpower fi sleep 5 done
Das Script muss natürlich an die eigene Installation angepasst werden:
Adresse der Squeezebox
Die Squeezebox wird durch ihre MAC-Adresse identifiziert. Diese kann man direkt in der Web-Oberfläche des Logitech Media Servers unter „Information“ ablesen.
Für das Script muss der Doppelpunkt durch %3A ersetzt werden.
Adresse des Servers
Die IP-Adresse, auf dem der Logitech Media Server erreichbar ist. In meinem Fall ist der Server unter dem Namen „sbs“ erreichbar – ohne entsprechenden lokalen DNS-Server wird hier eine IP-Adresse benötigt, zum beispiel 192.168.0.55.
Die Adresse ist dieselbe, unter der auch die Weboberfläche aufgerufen werden kann.
Adresse der CCU
Hier muss die IP-Adresse oder der Name eingetragen werden, unter dem die CCU erreichbar ist. Bei mir wäre das „ccu“.
Name des Aktors
Zum Schluss muss noch der Name des Aktors angegeben werden – bei mir „Schlafzimmer.Squeezebox“ entsprechend meiner persönlichen Namenskonvention.
Das Script speichert man an passender Stelle unter einem sinnvollen Namen ab – zum Beispiel als /usr/local/bin/squeezebox-schalter.sh. Natürlich muss es ausführbar gemacht werden:
sudo chmod +x /usr/local/bin/squeezebox-schalter.sh
Damit das Script jederzeit läuft und automatisch gestartet wird, richtet man es als Cron-Job ein. Ich lasse es als root laufen:
sudo crontab -e
In der Tabelle fügt man die passende Zeile ein und speichert sie ab.
* * * * * /usr/local/bin/squeezebox-schalter.sh
Fertig! Das Script wird ab jetzt jede Minute gestartet. Nach jedem Start prüft es eine Minute lang alle 10 Sekunden, ob die zugeordnete Squeezebox eingeschaltet ist oder nicht. Anschließend wird bei Bedarf der Aktor für den Verstärker ein- oder ausgeschaltet.