Homeautomation steuern über die Cloud

Mein Haus verfügt über eine Homeautomation auf Basis von openHAB. In diesem Beitrage möchte ich zeigen wie eine Steuerung von openHAB über die Cloud funktioniert und was die benötigten Konfigurationen sind.

Lösungssuche

Zu Beginn habe ich mich etwas schlau gemacht, welcher Möglichkeiten vorhanden sind. Mir war dabei eine Lösung wichtig, welche keine direkte Verbindung zu meiner openHAB Lösung braucht, sondern openHAB die Abfrage initiiert. Dies aus Gründen der Sicherheit und auch durch die kleineren Anforderungen an die Infrastruktur (keine fixe IP oder dynDNS-Service). Schnell stellte sich die Anbindung an einen Google Cloud Kalender als passende Lösung dar.

Google API Verbindung

Die Verbindung zwischen openHab und den Google Calander wird über eine API gelöst. Dazu muss zuerst der API Service von Google konfiguriert werden.

  • Anmeldung auf der Googe API Manager mit einem Google Account
  • Im Projekt Auswahlfenster entweder bestehendes Projekt auswählen oder ein neues Projekt über «Neues Projekt» erstellen
  • In der Navigation den Punkt «Anmeldedaten» auswählen und neuen «OAuth-Client-ID» auswählen
  • Als Anwendungstyp «Sonstige» auswählen und ein passender Name vergeben
  • Nun muss die Client-ID wie auch der Clientschlüssel notiert werden. Dies wird später in der Config vom openHAB benötigt. Mit diesen zwei Informationen kann auf das Google Konto zugegriffen werden.

Konfiguration openHAB

Die Community von openHAB hat das Modul «Google Calendar Scheduler” bereitgestellt. Dieses Modul kann im PaperUI von openHAB als MISC installiert werden. Nach kurzer Zeit ist der Service installiert und wird blau markiert.

Die Konfiguration des Service wird über ein Config File gemacht. Dazu muss die Datei gcal.cfg unter «\\openHAB-IP\openHAB-conf\services» geöffnet und bearbeitet werden. Folgende Parameter sind erforderlich

Parameter Beschreibung
client_id Client ID welche vorhin in der Google API generiert wurde
client_secret Schlüssel welcher vorhin in der Google API genuert wurd
calendar_name Name des Google Kalender, welcher angezogen wird. Bei mir habe ich einen Kalender mit dem Namen Heizung angelegt
filter Optional um gewisse Events zu definieren. Wird bei mit nicht gebraucht
refresh Default 90000, Abfrageinterfall in Millisekunden

Zum Abschluss muss der openHAB als autorisiertes Device bei Google konfiguriert werden. Dazu muss das openHab Log über den Browser mittels der Url http://openhab-ip:9001 geöffnet werden. Als Filter kann einfach Google eingegeben werden. Anschliessend ist eine Kurzanleitung ersichtlich, welche ausgeführt werden muss

openHab Log
openHAB Log mit der User Instruktion für die Device Registration

Nach diesem Schritt ist die Konfiguration auf dem openHAB durchgeführt. Der openHAB prüft jetzt gemäss dem definierten Intervall jeweils den Google Kalender auf neue Event.

Erfassung von Event im Google Kalender

Um die Items von openHab über den Google Kalender zu steuern, muss der Kalender über einen beliebigen Browser geöffnet werden.

Ansicht Google Kalender
Ansicht des Google Kalender der aktuellen Heizungssteuerung

Anschliessend über «+ Eintragen» ein neuer Termin zu der gewünschten Zeit eintragen. Der Titel ist frei wählbar.

In der Beschreibung kann über die Syntax start{} und end{} die jeweilige Item Konfiguration zum Startpunkt und Endpunkt des Termines definiert werden.

Im unten aufgeführten Beispiel wird der Zielwert des Thermostates im Bad EG um 09:00 auf 23 gestellt und um 10:00 auf 21.5 zurückgestellt.

Event im Google Kalender
Beispiel einer Eventsteuerung über einen Kalendereintrag

Über ein Kalendereintrag könne beliebige Items angesteuert werden.

Mit dieser Art von Anbindung kann die Homeautomation bequem über einen Browser oder Smartphone von überall konfiguriert werden.

Quellen und weiterführende Links

openHAB Homatomation Lösung:

https://www.openhab.org/

Weitere Informationen zum Google Kalander Scheduler:

https://www.openhab.org/addons/integrations/gcal/

Beitrag teilen

Lukas Jost

Lukas Jost ist Senior System Engineer bei der Swisscom (Schweoz) AG und bloggt aus dem Unterricht des CAS Cloud and Platform Manager.

Alle Beiträge ansehen von Lukas Jost →

Schreibe einen Kommentar