OpenHAB mit Hilfe Smartphone-Kalender steuern

Um Dinge ein/auszuschalten kann man unterschiedliche Wege nutzen. Entweder direkt ein-/ausschalten oder zeitgesteuert triggern. Hierbei wäre es mir lieb dies nicht per Cron-Job tätigen zu müssen für jede einzelne Tätigkeit bzw. jede Änderung einzeln zu programmieren. Dementsprechend bietet sich eigentlich ein Kalender an, den man bequem per Smartphone anzeigen/anpasen kann und die Steuerung übernimmt. Insbesondere kann man hier relativ einfach wiederkehrende Dinge triggern oder auch einmal aussetzen.

Schritt 1: Google Kalender API aktivieren

Um mit dem Kalender direkt kommunizieren zu können nutzen wir zuerst einmal den Google API Manager unter console.developers.google.com

Also Anmelden und ein neues Projekt dort anlegen. Nennen wir es erstmal Openhab

developer google

Im Seitenmenü unter Zugangsdaten die OAuth auswählen und vervollständigen.

developer google 2

Nun die Anmeldedaten per OAuth-Client-ID Aktiveren und sonstiges als Typ auswählen.

developer google 3

Nun erhalten wir die Client-ID und den Clientschlüssel. Diese bitte speichern!

Und nicht vergessen die Google Calendar API dem Projekt hinzuzufügen.

Schritt 2: Verbinden OpenHAB - Google Calender

Nun aktivieren wir im HABmin unter Konfiguration-> Erweiterungen -> Misc den Google Calendar Scheduler und tragen die ID Daten in der Konfigurationsdatei unter services/gcal.cfg ein.

Dementsprechend die Client ID und Client_Secret wie oben erzeugt eintragen.


calendar_name=OpenHAB 
#hier habe ich einen separaten Kalender geplant

refresh=900000
# dies entspricht einer Aktualisierung alle 15 min

 

Nun sollten im OpenHAB-Log (bei mir unter http://openhabianpi:9001/) ein paar Zeilen wie folgt auflaufen:


==> /var/log/openhab2/openhab.log <==

2018-02-12 19:52:21.032 [INFO ] [openhab.io.gcal.auth.GCalGoogleOAuth] - ################################################################################################

2018-02-12 19:52:21.035 [INFO ] [openhab.io.gcal.auth.GCalGoogleOAuth] - # Google-Integration: U S E R   I N T E R A C T I O N   R E Q U I R E D !!

2018-02-12 19:52:21.038 [INFO ] [openhab.io.gcal.auth.GCalGoogleOAuth] - # 1. Open URL 'https://www.google.com/device'

2018-02-12 19:52:21.041 [INFO ] [openhab.io.gcal.auth.GCalGoogleOAuth] - # 2. Type provided code JTKS-SXST 

2018-02-12 19:52:21.044 [INFO ] [openhab.io.gcal.auth.GCalGoogleOAuth] - # 3. Grant openHAB access to your Google calendar

2018-02-12 19:52:21.047 [INFO ] [openhab.io.gcal.auth.GCalGoogleOAuth] - # 4. openHAB will automatically detect the permiossions and complete the authentication process

2018-02-12 19:52:21.050 [INFO ] [openhab.io.gcal.auth.GCalGoogleOAuth] - # NOTE: You will only have 1800 mins before openHAB gives up waiting for the access!!!

2018-02-12 19:52:21.053 [INFO ] [openhab.io.gcal.auth.GCalGoogleOAuth] - ################################################################################################

Dementsprechend handeln wir auch. Bei Aufruf der Url und entsprechende Codeeingabe kommt eine Abfrage ob wir OpenHab den Zugriff auf unseren Kalender gestatten. Ich denke man sollte hier ja sagen.

 

Schritt 3: OpenHAB steuern mittels Kalendereinträgen

Schon geschafft. Nun kann man mittels einfacher Kalendereinträge im Kalender "OpenHAB" Events triggern.

Hierbei ist der Titel irrelevant in der Beschreibung ist folgendes Format zu verwenden:


start {
  send|update  <item> <state>
} 
end { 
  send|update  <item> <state>
}

start definiert hierbei den Startzeitpunkt des Kalendereintrages und End entsprechend den Endzeitpunkt.

oder verkürzt einfach:


send|update <item> <state>

Dementsprechend habe ich mir einen Eintrag erstellt um jeden Morgen den Staubsauger seine Runde drehen zu lassen mittels:

send iWZStaubsauger ON

Nun kann hieraus einfach ein Serientermin erstellt werden der Wochentags ausgeführt wird.

 

Zusätzlich kann man auch noch mittels des Calendars eine Anwesenheitssimulation durchführen um den Eindruck einer leeren Wohnung zu vermeiden. Allerdings werde ich dies später erst implementieren.

 

Referenzen:https://docs.openhab.org/addons/ios/gcal/readme.html