Smart Home openHAB 2 Anwesenheitssimulation Google Calendar Scheduler

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.

Werbung

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.

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.

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.

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.

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

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.

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. =)

Werbung
8 Comments
  1. Reply
    JayP 3. Mai 2017 at 11:35

    Hallo,

    erst einmal vielen Dank für die tollen Artikel/Tutorials.
    Ich habe versucht dies alles nachzubauen und bekomme leider beim starten von openHAB nun folgende Fehelrmeldung: [ERROR] [org.openhab.binding.caldav-personal ] – [org.openhab.binding.caldav_personal(195)] The addBindingProvider method has thrown an exception
    java.lang.NullPointerException

    Dazu gefunden habe ich nur https://community.openhab.org/t/caldav-binding-setup-issue/21651
    Die vorgeschlagene Lösung scheint mir aber ein Workaround zu sein, den ich so nur ungerne einsetzen möchte.
    Hast du eine Idee wo das Problem liegen könnte und vielleicht sogar eine offizielle Lösung.

    Viele Grüße

    • Reply
      Thomas Schwarz 5. Mai 2017 at 8:08

      Hallo Jens,

      ich lese immer mal wieder von Problemen mit dem Binding. Es funktioniert bei mir aber gut.

      Hast du nur das Caldav Binding installiert? Falls nicht würde ich mit einer blanken Installation starten.

      Was nutzt du als Server Windows, PI…?

      Beste Grüße
      Thomas

  2. Reply
    JayP 5. Mai 2017 at 12:38

    Hallo Thomas,

    binding-caldav-command1 – 1.10.0.SNAPSHOT und binding-caldav-personal1 – 1.10.0.SNAPSHOT sind installiert.
    Als Server nutze ich einen Raspberry Pi 3

    Viele Grüße
    Jens

    • Reply
      Thomas Schwarz 5. Mai 2017 at 19:58

      Hallo Jens,

      mit fällt grade auf, dass du bei einem anderen Beitrag kommentierst. Du hast aber die Einstellungen aus dem Beitrag zum CalDAV Binding ?

      Ich nutze due Stable und nicht die Snapshot Version.

      Beste Grüße
      Thomas

      • Reply
        JayP 8. Mai 2017 at 14:44

        Hallo Thomas,

        ja, habe alle Einstellungen genau wie in deinen Beiträgen beschrieben. Ich werde mal die Stable Version des Bindings ausprobieren und mich dann wieder melden.

        Vielen Dank und Gruß
        Jens

  3. Reply
    Alex 8. Oktober 2017 at 16:31

    Hallo,
    danke für die super Anleitung. Ich komme bis zu dem Punkt, dass ich Einträge in den Kalender eingetragen bekomme.
    Aber warum auch immer holt er keine Einträge ab. Im Log steht immer:
    [io.gcal.internal.GCalEventDownloader] – gcal feed contains no events …

    Eine Idee, wie und wo ich da weiter debuggen kann?

    Danke schön
    Gruß Alex

  4. Reply
    Alex 8. Oktober 2017 at 17:07

    Manchmal findet man seine Fehler ja auch selber…
    Das ist ein Bug in der Routine des gcal Moduls.

    Ich hatte in einer früheren Installation einen Filter gesetzt.
    Dieser wird (mitsamt der ganzen Config) in /var/lib/openhab2/config/org/openhab/gcal.conf gespeichert.
    Wenn man nun keinen Filter mehr hat, wird der vorhandene aber nicht gelöscht !!!

    Jetzt ist alles gut 🙂

    • Reply
      Thomas Schwarz 8. Oktober 2017 at 19:59

      Hallo Alex,

      danke für deine Rückmeldung. Da wäre ich auch nicht drauf gekommen =).

      Grüße
      Thomas

Hinterlasse einen Kommentar

One Smart Home - Ein Smart Home Blog

Music

NUR FÜR KURZE ZEIT!

3 Monate

für nur 0,99 €

 

Jederzeit

kündbar!

WERBUNG

AMAZON

Weitere Details auf der Aktionsseite