Sonos Steuerung mit einer Regel
Heute geht es um darum, eure Sonos automatisch abzuschalten, wenn keiner mehr im Raum ist.
Leider gibt die Sonos Steuerung in der Oberfläche nicht viel her, deswegen habe ich mir da mal etwas Neues ausgedacht.
Ich habe einen Virtuellen Schalter gebastelt, der die Sonos ausschalten kann, also Perfekt um den Schalter in eine Regel zu integrieren.
Wie ihr den Schalter baut, zeige ich euch weiter unten.
Das ganze Projekt ist ein bisschen größer da ihr auch noch ein kleines Bash Script braucht, um den Status der Sonos zu erfragen.
Unsere Sonos Play 1 steht bei uns in der Küche und beschallt Küche und Esszimmer.
Da es im Stress ab und an passiert, das wir nach Haus kommen und die Sonos immer noch läuft hat mich auf diese Idee gebracht diese Projekt zu starten.
Kurzer Überblick:
Es gibt es Bash Script das auf meinem Rasberry läuft, und den Status der Sonos alle 5 Minuten abfragt.
Ist die Sonos Aktiv, wartet die Zipabox eine bestimmte Zeit ab, und sollte in der Zeit keine Bewegung erfasst worden sein, wird die Sonos abgeschaltet.
Sollte ihr Fragen habe, wir ihr einen Raspberry aufsetzten, dann könnte ihr euch gerne in den Kommentaren verewigen.
Dann fangen wir mal mit dem Bash Script an.
Script Name: sonos_status.sh
#!/bin/bash
# Author: Helle
# Version 0.1
result=$(curl http://XXX.XXX.XXX.XXX:1400/status/perf |grep currently | awk ‚{print $2}‘)
if [ „$result“ = „PLAYING“ ]; then
curl „https://my.zipato.com/zipato-web/remoting/attribute/XXXtrue“
elif [ „$result“ = „STOPPED“ ]; then
curl „https://my.zipato.com/zipato-web/remoting/attribute/XXXfalse“
else
echo „Sonos nicht verbunden“
exit 1
fi
Weiter unten könnte ihr das Script noch Herunterladen, dann gibt es keine Formatierungsfehler.
Bitte denkt dran, nach dem anlegen des Script´s die Recht mit dem Befehl „chmod 777 SCRIPTNAME“ zu setzten, damit ihr es ausführen könnt.
Was macht das Script:
Es fragt per HTTP die Sonos ab, und schaut ob dort „Stopped“ oder „Playing“ steht, und sendet dann einen HTTP Request, der einen Virtuellen Sensor in der Zipabox schaltet.
Habe ihr die IP Adresse und die URLs angepasst (wie ihr diese bekommt, zeige ich euch noch) dann könnt ihr das Script schon einmal testen.
Wenn das dann klappen sollte, könnt ihr einen Cronjob erstelle, der alle 5 Minuten läuft.
Im nächsten Schritt bauen wir den Virtuellen Sensor.
Anlegen mit Neues Gerät hinzufügen, Virtuelle Geräte, und dort den Virtuellen Sensor auswählen. Einen Namen vergeben und fertig.
Im Gerätemanager klickt ihr jetzt solange auf das Gerät bis es komplett aufgeklappt ist
Jetzt auf das Zahnrad beim Punkt State klicken
Hier ist der Punkt URL Wichtig. Diese muss in das Script kopiert werden.
Ihr müsst am Ende der URL jetzt nur noch ein FALSE oder TRUE anhängen.
FALSE schaltet den Sensor AUS und
TRUE schaltet ihn AN.
Um das ganze zu testen könnt ihr die Sonos anschalten und das Scirpt ausführen, dann sollte das hier passieren
Dann schaltet ihr die Sonos aus, und lasst das Script noch einmal laufen
Wenn wir hier angekommen sind, brauchen wir jetzt noch einen Schalter, der die Sonos abschalten kann.
Dazu legt ihr wieder ein neues Virtuelles Gerät an, aber diesmal einen Virtuellen Switch.
Dann gebt ihr dem Kind noch den Namen „Sonos an oder aus“.
Dazu brauchen wir jetzt noch Regeln
Hier kommt der Inhalt für die HTTP Requests
„Sonos AUS“
„Sonos AN“
Hier kommen die Daten in Klartext für die Copy/Paste Freunde 😉
Sonos AUS:
URL: http://xxx.xxx.xxx.xxx:1400/MediaRenderer/AVTransport/Control Headers: SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Stop" Body: <?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:Stop xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID>,<Speed>1</Speed></u:Play></s:Body></s:Envelope> Sonos AN: URL: http://xxx.xxx.xxx.xxx:1400/MediaRenderer/AVTransport/Control Headers: SOAPACTION: "urn:schemas-upnp-org:service:AVTransport:1#Play" Body: <?xml version="1.0" encoding="utf-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><s:Body><u:Play xmlns:u="urn:schemas-upnp-org:service:AVTransport:1"><InstanceID>0</InstanceID>,<Speed>1</Speed></u:Play></s:Body></s:Envelope>
Was mit aufgefallen ist, ist das wenn ihr die Sonos vom Strom getrennt hattet und dann die Sonos per Zipabox anschalten wollt, passiert leider nichts.
Ich denke das wird daran liegen, das noch kein Track „eingelegt“ ist.
Am besten mal vorher die Sonos APP benutzten und auf AN/AUS klicken, danach die Virtuellen Schalter testen.
Wenn das auch klappt können wir zum nächsten Schritt gehen.
Jetzt brauchen wir nur noch eine Regel
– Diese Regel wird aktiviert, wenn der Sonos Status auf Aktiv ist.
– Wenn dann noch 2 Sensoren (Küche und Eßzimmer) auf „No Motion“ für
länger als X Minuten ist
– Wird die Sonos ausgeschaltet
– Und 5 Sekunden später der Status der Sonos manuel auf „Aus“ gesetzt
SO! Bei mir läuft es soweit ganz gut, sollte ihr evt Fehler finden, oder Verbesserungsvorschläge habt, dann schreibt doch nen Kommentar.
Und jetzt viel Spaß beim nachbauen 😉
Downloads: sonos_status.sh
Die Zipabox und die Fußbodenheizung
Heute gibt es einen richtig großartigen Bericht von Frank der seine Fußbodenheizung jetzt mit der Zipabox steuert.
Frank fing mit einem Projekt an, und hatte ein paar Fragen, bei dem ich ihm weiterhelfen konnte……
Als ich gesehen habe was er da cooles bastelt, habe ich ihn gefragt ob er nicht Lust hätte euch sein Projekt vorzustellen, und er hat direkt JA gesagt und mich mit Bildern und Texten versorgt…..viel Spaß beim lesen oder nachbauen 😉
Als wir vor gut 6 Jahren nach langer Suche endlich ein Haus gefunden hatten, bei dem Lage, Größe und Preis unseren Vorstellungen entsprach, wurde zunächst ein umfangreicher Renovierungsplan erstellt. Insbesondere die wilde Anordnung von Heizkörpern an den unmöglichsten Stellen störte uns zumindest im Erdgeschoss erheblich. Da wir vorher in unserer Wohnung bereits Fußbodenheizung hatten und davon begeistert waren, lag es natürlich nahe, so etwas im „neuen“ haus auch nachzurüsten.
Bedingung war aber, dass die bestehende Gastherme nicht ausgetauscht werden müsste.
Nach langer Recherche entschieden wir uns für das Roth Klimakomfortsystem. Der Vorteil war, dass der Aufbau weniger als 2 cm betrug und so bei den bestehenden Türen keine Probleme zu erwarten waren. Außerdem ist durch den geringen Aufbau die Reaktionszeit deutlich schneller als bei konventionellen Fußbodenheizungen.
Damit das warme Wasser mit genügend Druck in die engen, mehrere hundert Meter langen Heizschleifen gepumpt werden konnte, musste eine Zusatzpumpe installiert werden.
Und da sind wir jetzt bei dem Problem.
Während Raumthermostate die Stellmotoren nach Bedarf öffneten oder wieder schlossen, pumpte die Pumpe stetig und ungesteuert immer weiter. Der Installateur hatte dann die Lösung parat: Nimm eine Zeitschaltuhr, und dann pumpt die Pumpe nur noch zu bestimmten Zeiten. So ist das dann einige Jahre gelaufen. Stellmotoren und Pumpe arbeiteten völlig unabhängig voneinander. Wenn die Solltemperatur erreicht war, schloss der Stellmotor und die Pumpe pumpte weiter. Bei längeren, wärmeren Perioden wurde dann einfach der Stecker gezogen.
Das dies alles weder Energieeffizienz noch wirklich komfortabel war, braucht man eigentlich nicht weiter zu erwähnen.
Als dann in den Medien der Begriff des smarten Zuhauses zunehmend präsent wurde, recherchierte ich dann im Netz nach Möglichkeiten, diese Fußbodenheizung anders zu steuern. Dabei fiel mir die Zipabox auf, wobei mich die Erweiterbarkeit auf die unterschiedlichsten Funkstandards und die damit gegebene Flexibilität letztlich überzeugten.
Die Aufgabenstellung war schnell definiert: Ein Thermometer im Raum sollte nach einem gewissen Zeitprofil, welches Tag und Nacht sowie Abwesenheitszeiten berücksichtigt, die Stellmotoren öffnen. Insgesamt waren im EG zwei Räume, der offene Wohn-, Ess- und Küchenbereich sowie das Gaste-Bad separat zu steuern. Wenn in einem Bereich ein Stellmotor öffnete, sollte die Pumpe im Keller anspringen und das warme Wasser in die Heizschlangen pumpen.
Sobald aber alle Stellmotoren geschlossen sind, soll natürlich die Pumpe abschalten.
Folgende Komponenten habe ich dann neben der Zipabox ausgesucht:
– 2 Fibaro Motion Sensoren, die in beiden Räumen die Temperatur messen
– 1 Philio Lichtsterungsrelais, mit dem dann 2 unterschiedliche Verbraucher gesteuert werden können
– 1 schaltbare Steckdose von Popp
– 1 Kunststoffverteilerdose aus dem Baumarkt
Jetzt ging es an die Installation.
Wie die einzelnen Komponenten an der Zipabox angelernt werden, ist ja schon hinreichend beschrieben worden.
Im Wohn-/Essbereich habe ich einen Fibaro Motionsensor platziert, den anderen im Gäste-Bad.
Dann habe ich die Heizungspumpe mit der schaltbaren Steckdose verbunden.
Das war alles in wenigen Minuten erledigt.
Jetzt kam der etwas kompliziertere Teil, da jetzt der Eingriff in die bestehende Fußbodenheizungssteuerung erfolgen musste.
Also zunächst die Sicherung raus, dann den Schaltschrank öffnen und die Fußbodenheizungssteuerungseinheit aufschrauben.
Bevor man jetzt die Kabel der einzelnen Stellmotoren aus der Steuereinheit löst, empfiehlt es sich, den Istzustand mit einem Handy-Foto zu dokumentieren, dass man immer noch im Fall der Fälle den Ausgangszustand wiederherstellen kann.
Um die Heizschlangen nicht zu lang werden zu lassen, waren in einem Raum mit einem Thermostat fünf Stellmotoren verbunden.
Diese mussten dann auch wieder verbunden werden und an einem Ausgang des Philio-Relais angeschlossen werden.
Der andere Stellmotor war einzeln für das Gäste Bad und kam an den anderen Ausgang. Das Ganze habe ich dann in eine runde Verteilerdose gepackt, damit im Schaltschrank Ordnung herrscht. Das Fußbodenheizungssteuerungsmodul habe ich im Schaltschrank belassen, obwohl es jetzt ohne Funktion ist.
Zu erwähnen wäre hier, dass die Stellmotoren mit 230 V betrieben werden und NC (normally closed) sind, d.h. der Stellmotor ist ohne Spannung geschlossen.
Jetzt Sicherung wieder rein und über die Zipabox ein Klimaprofil für jeden Raum getrennt anlegen.
Anschließend zwei einfache Regeln, die die schaltbare Steckdose und damit die Heizungspumpe in Abhängigkeit vom Zustand der Stellmotoren schaltet.
Diese Steuerung läuft jetzt seit nunmehr 2 Monaten und wir sind wirklich begeistert.
Abschließend möchte ich mich noch bei Helle bedanken, der mir immer sehr geduldig bei den vielen aufkommenden Fragen mit Rat und Tat zur Seite gestanden hat.
An dieser Stelle vielen Dank an Frank für den ausführlichen Bericht!!!
Das im Bericht verbaute Relais bekommt ihr ohne oder mit Meßfunktion.