Werbung
Hinweis: Diese Seite enthält Werbelinks

Smart Home – openHAB 2 automatische Anwesenheitssimulation mit Google Calender Scheduler

Im heutigen Beitrag geht es um die automatische Anwesenheitssimulation in Eurem Smart Home. In einem früheren Beitrag habe ich bereits die Möglichkeit mit dem CalDAV Binding beschrieben. Dies diente aber eher zur manuellen Festlegung von regelmäßigen Aktivitäten wie z.B. zeit-gesteuertes Schalten. Nun ist es aber Zeit das relativ frisch in openHAB 2 integrierte Google Calender Scheduler Binding zu nutzen. Dies bietet Euch eine automatische Aufzeichnungen. Ihr legt über eine bestimmte Gruppe fest welche Items aufgezeichnet werden. Diese automatische Aufzeichnung kann verwendet werden, um später eine Anwesenheitssimulation durchzuführen. Die Anwesenheitssimulation lässt sich per zentralem Schalter aktivieren und die Aufzeichnungen werden abgespielt. Diesen Schalter könnt ihr wiederum per Anwesenheitserkennung automatisch aktivieren. Falls ihr neben Euren zeitabhängigen Schaltungen einen eigenen Kalender für die Aufzeichnung nutzt, müsst ihr Euch um quasi nichts mehr kümmern. Einfach genial!

Smart Home – Google Calendar API einrichten

Als erstes müsst ihr in den Google APIs ein Projekt erstellen. Logt Euch hierfür unter  mit Eurem auf der Google Developer Seite ein.

Wählt Projekt erstellen.

Smart-Home-openHAB-2-Google-Calendar-Scheduler-Create-Project

Gebt einen Namen für das Projekt an (1) und drückt erstellen (2)

Smart-Home-openHAB-2-Google-Calendar-Scheduler-Project

Im Anschluss wählt Zugangsdaten und OAuth-Zustimmungsbildschirm. Tragt eine E-Mail-Adresse (1) ein, gebt einen Produktnamen (2) an und speichert (3).

Smart-Home-openHAB-2-Google-Calendar-Zugangsdaten

Klickt in den Zugangsdaten und Anmeldedaten und Anmeldedaten erstellen. Wählt den Eintrag OAuth-Client-ID.

Smart-Home-openHAB-2-Google-Calendar-OAuth

Für die ClientID wählt Sonstige (1), vergebt einen Namen (2) und drückt auf Erstellen (3)

Smart-Home-openHAB-2-Google-Calendar-Scheduler-Application

Ihr erhaltet nun die Client-ID und den Clientschlüssel. Kopiert beides in eine Textdatei und speichert diese.

Smart-Home-openHAB-2-Google-Calendar-Zugangsdaten-Kopieren

Zum Schluss aktiviert in der Bibliothek die Calendar API.

Smart-Home-openHAB-2-Google-Calendar-Project-Calendar-Api

Smart-Home-openHAB-2-Google-Calendar-Project-Calendar-Api-activate

Solltet ihr noch keine Google Kalender für die Anwesenheitssimulation angelegt haben, lest Euch das Kapitel „openHAB 2 CalDAV Binding – Google Kalender vorbereiten“ im Beitrag SmartHome – openHAB 2 CalDAV Binding durch. Hier wird beschrieben, wir ihr einen Kalender anlegt. Den Kalendernamen sichert Euch in die gleiche Datei wie die Client ID. Dies  waren die vorbereitenden Schritte zur Nutzung der Anwesenheitssimulation mit dem Google Calendar Scheduler. Weiter geht es mit der Installation der Bindings.

openHAB 2 Anwesenheitssimulation -Google Calendar Scheduler Binding installieren

Grundlage zur weiteren Umsetzung ist die Installation von openHAB 2. Nach der Installation ruft ihr die Paper UI auf.

http://<openHAB_IP>:8080/paperui/index.html

Geht auf Addons (1), Persistence (2) und drückt beim Google Calendar Presence Simulator (3) auf Install.

Smart-Home-openHAB-2-Google-Calendar-Presence-Simulator

Nun wählt Misc (2) und installiert den Google Calendar Scheduler (3).

Smart-Home-openHAB-2-Google-Calendar-Scheduler

 

Öffnet nun den SmartHome Designer. Falls ihr noch kein Plan von der Nutzung habt, lest Euch den Beitrag Smart Home openHAB 2 Konfiguration durch. Im SmartHome Designer öffnet den Ordner Services . Im Anschluss öffnet ihr die gcal-persistence.cfg. Tragt unter calendar_name den Kalender für die Aufzeichnung ein. Alle weiteren Punkte sind optional. Die Item-Aktivitäten der Gruppe werden mit einem Versatz von 14 Tagen gespeichert. Ihr müsst das Binding also 14 Tage aktiv laufen haben, damit die Anwesenheitssimulation das erste Mal aktiv wird. Dies könnt ihr über das Offset ändern.

Smart-Home-openHAB-2-Google-Calendar-Scheduler-gcal-persistence-cfg

Nun öffnet die gcal.cfg und tragt die kopierte Client-ID bei client_id und den Clientschlüssel bei client_secret ein. Weiterhin tragt den Kalender unter calender_name ein.

Smart-Home-openHAB-2-Google-Calendar-Scheduler-gcal-cfg

Legt im Ordner Persistence (1) die Datei gcal.persist (2) mit dem Verfahren aus dem Kapitel „openHAB 2 Konfiguration – Eclipse SmartHome Designer – Datei erstellen“ aus dem Beitrag Smart Home openHAB 2 Konfiguration an. Unter Items vergebt einen Gruppennamen für die Gruppe, die die Items für die Aufzeichnung bestimmt.

Smart-Home-openHAB-2-Google-Calendar-gcal-persist

Ihr könnt auch einfach folgendes Coding kopieren. Die Gruppe heißt beim mir gPreSim. Die Regel besagt, dass jede Änderung der Item aus der Gruppe gPreSim in den Kalender geschrieben wird.

Strategies {
    default = everyChange
}

Items {
    gPreSim* : strategy = everyChange
}

Nun startet openHAB 2 neu. Wartet bis openHAB 2 läuft und sucht im Anschluss im Installationsverzeichnis nach openhab.log. Öffnet diese Datei und ihr solltet bei erfolgreicher Installation folgende Einträge finden.

[INFO ] [g.internal.GCalEventDownloader] -#####################################################################################
[INFO ] [g.internal.GCalEventDownloader] - # 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 !!
[INFO ] [g.internal.GCalEventDownloader] - # 1. Open URL 'https://www.google.com/device'
[INFO ] [g.internal.GCalEventDownloader] - # 2. Type provided code QWFR-LHYV
[INFO ] [g.internal.GCalEventDownloader] - # 3. Grant openHAB access to your Google calendar
[INFO ] [g.internal.GCalEventDownloader] - # 4. openHAB will automatically detect the permissions and complete the authentication process
[INFO ] [g.internal.GCalEventDownloader] - # NOTE: You will only have 1800 mins before openHAB gives up waiting for the access!!!
[INFO ] [g.internal.GCalEventDownloader] -###################################################################################

Folgt der Anleitung. Ruft also die Internetadresse https://www.google.com/device auf und gebt im folgenden Bildschirm den Code aus der Zeile mit der laufenden Nummer 2 an.

Smart-Home-openHAB-2-Google-Calendar-Gerät-verbinden_FORTISYOGAPRO2_Jan-15-210420-2017_Conflict

Ihr werdet nochmals gefragt, ob ihr den Zugriff erlauben wollt. Drückt auf Zulassen.

Smart-Home-openHAB-2-Google-Calendar-Zugriff

Im Anschluss erhaltet ihr noch eine Erfolgsmeldung.

Smart-Home-openHAB-2-Google-Calendar-Gerät-autorisiert

openHAB 2 Anwesenheitssimulation –  Google Calendar Scheduler Item Konfiguration

Die Konfiguration der Items für die Aufzeichnung ist nun sehr einfach. Ihr legt Euch einfach ein das Gruppenitem an in Eurer Items Datei an.

Group gPreSim

Die Items, die ihr für die Aufzeichnung vorsehen wollt, weist ihr diese Gruppe zu.

Switch eg_ba_li_decke  "Bad Decke Unten"   <light> (gPreSim) { knx="<5/1/41" }
Color eg_ba_li_spiegel "Bad Spiegel Unten" <light> (gPreSim) { channel="hue:0210:001234567890:2:color" }

Zur Kontrolle öffnet im Browser den Google Kalender. Über die UI schaltet ihr eines der Items, welches der Gruppe zugewiesen wurde, an und aus. Bei mir erscheint nach 10 – 20 Sekunden automatisch der Schaltvorgang im Kalender. Verlasst den Kalender noch nicht.

Hat dies funktioniert, definiert ein weiteres Item zur Aktivierung der Anwesenheitssimulation. Dies ist standardmäßig wie folgt definiert.

Switch PresenceSimulation  "Anwesenheitssimulation"

Integriert das Item in Eure Sitemap und stellt die Simulation an.

Öffnet wieder den Kalender und ändert die gerade erstellten Items (an/aus) auf den aktuellen Tag und auf die aktuelle Uhrzeit + 2 Minuten.

Smart-Home-openHAB-2-Google-Calendar-Entry

Beim den ersten Tests ist mir aufgefallen, dass die Simulation nicht für Dimmer wie oben mit dem Dimmerwert funktioniert. Rollershutter werden nicht aufgezeichnet. Definiert Euch daher bei Bedarf ein Switch item, welches simpel an und aus schaltet. Das funktioniert hervorragend. Wie von Geisterhand wird das Licht geschaltet. Sobald ich eine Info habe, dass es auch mit Rollershutter und Dimmer Items funktioniert, berichte ich.

Euch Gefallen meine Beiträge? Spendet, bewertet den Block, schreibt ein Kommentar. Ich freue mich über jede Rückmeldung. =)

Smarthome Training and Tutorials
Logo