Mit Sonos Weckern und Openhab eine Kaffemaschine einschalten

Eine der wesentlichen Eigenschaften von den alten manuellen Espresso Maschinen ist die Tatsache, daß sie vor der Benutzung eine gewisse Zeit brauchen um aufzuheizen. Einfach anmachen und Espresso ziehen ist nicht. Es wäre also schön wenn man morgens die Espresso Maschine durch den Wecker gesteuert einschalten könnte. Bisher mache ich dies zu relativ festen Zeiten über eine Rapsberry Pi und eine billige Funksteckdose. Viel schöner wäre es doch wenn wir unseren Wecker des Sonos Gerätes nutzen könnten um dies morgens immer zur richtigen Zeit einzuschalten. Die Zeit die man im Bad verbringt reicht ungefähr um die Espressomaschine aufzuheizen.

Mit Openhab und dem Wecker von Sonos kann man so etwas machen.

Zuerst die Schnittstelle (Binding) von Openhab für Sonos installieren

apt-get install openhab-addon-binding-sonos 

Nach dem Neustart kann man im Logfile die IDs der ganzen Sonos Geräte finden

2015-02-28 22:06:58.356 [INFO ] [.service.AbstractActiveService] - HTTP Refresh Service has been started
2015-02-28 22:06:58.445 [INFO ] [o.o.b.h.i.bus.HomematicBinding] - 
2015-02-28 22:06:58.448 [INFO ] [.b.h.i.c.HomematicCommunicator] - Starting Homematic communicator
2015-02-28 22:06:58.550 [INFO ] [o.o.b.h.i.c.client.CcuClient  ] - Starting CcuClient
2015-02-28 22:06:58.619 [INFO ] [.b.sonos.internal.SonosBinding] - Found a Sonos device (S1) with UDN uuid:RINCON_B8E9...
2015-02-28 22:06:58.679 [INFO ] [b.h.i.communicator.StateHolder] - Loading Homematic datapoints
2015-02-28 22:06:58.724 [INFO ] [.b.sonos.internal.SonosBinding] - Found a Sonos device (Sub) with UDN uuid:RINCON_000..

Die Zahlen die mit uuid:RINCON anfangen brauchen wir gleich. Das sind nämlich die eindeutigen Adressen der Sonos Player.

Zuerst brauchen wir einen “Schalter” der über das Sonos Binding geschaltet wird. Und natürlich den Schalter für die Espressomaschine

vi items/demo.items 
 Switch Wecker_Eltern  (DG_Schlafzimmer)   {sonos="[RINCON_000E5835....:alarmrunning]", autoupdate="false"}
 Switch Light_GF_Living_Espresso "Espresso"              (EG_Kueche)  { exec="ON:/opt/caserio/tools/rpi-schalter.sh 1 1 , OFF:/opt/caserio/tools/rpi-schalter.sh 1 0" }

Hier brauchen wir diese ID die mit RINCON…. beginnt.

Und dann die Regel

vi rules/wecker.rules
 rule "MorgenWecker"
 when
    Item  Wecker_Eltern changed from false to true
 then
    sendCommand(Light_GF_Living_Espresso, ON)
 end

Wenn man jetzt einen Wecker auf dem Sonos Player einrichtet überwacht Openhab ob dieser Wecker auf “1” steht und wenn ja dann geht der Schalter an.