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
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.
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.
Ü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:
Weitere Informationen zum Google Kalander Scheduler: