Feiertage und Termine aus dem Google Kalender

In diesem Artikel zeige ich Dir, wie Du Deinen Google Kalender anbindest um globale Variablen zu pflegen. Mit diesen Variablen kannst Du Abläufe in Smart Home beeinflussen. Klassisches Beispiel ist die Steuerung der Heizpläne an gesetzlichen Feiertagen oder während des Heimaturlaubes.
Google Kalender
Über den Google Kalender brauche ich nicht viele Worte verlieren. Ein kostenloses Tool mit vielen Funktionen und nahtloser Integration in (nahezu) jedes Android Smartphone. In der Szene bediene ich mich der Infrastruktur sowie der bereitgestellten API aus dem Hause Google um das Eintragen von Ereignissen so komfortabel wie möglich zu gestalten.
Warum Feiertage und Termine?
Diese Szene ist eine Weiterentwicklung des vor gut 2 Jahren veröffentlichten Artikels zu Feiertagsvariablen im Home Center 2. In den Kommentaren zu diesem Artikel kam immer wieder der Wunsch nach der Berücksichtigung individueller Termine zur Steuerung der Variablen auf. Dies ist mit der hier vorgestellten Szene und dem Google Kalender nun möglich.
Die Integration solcher Daten in Dein Smart Home erweitert die intelligenten Steuerungsmöglichkeiten Deiner Szenen. So kannst Du beispielsweise während des Heimaturlaubes auch an einem Wochentag automatisiert Deine Heizpläne überschreiben.
Einrichtung der Szene
Um die hier zur Verfügung gestellte Szene benutzen zu können benötigst Du einen Google Kalender, eine Quelle für die gesetzlichen Feiertage Deines Bundeslandes, die Freigabe Deines Google Kalenders sowie eine eingerichtete Google API um auf den Kalender zugreifen zu können.
Weiterhin ist es wichtig, dass Du Dir für die Einrichtung Zeit nimmst und aufmerksam liest was Du eigentlich tust.
Feiertage herunterladen
Die von Google zur Verfügung gestellten Feiertage kannst Du leider nicht nutzen, da hier keine Unterscheidung nach Bundesländern erfolgt. Gesetzliche Feiertage, die nicht bundesweit gelten, mit dem Zusatz „(teilweise)“ eingetragen. Aber keine Sorge, Du musst die Feiertage nicht manuell eintragen. Es gibt diverse Quellen im Internet von denen Du diese herunterladen kann. Dies geschieht im iCal Format welches sich wunderbar in den Google Kalender importieren lässt. Ich habe hierfür den Service von schulferien.org genutzt. Wenn gewünscht, findest Du dort auch die Ferientermine für Dein Bundesland.
- Besuche die Website von schulferien.org
- Scrolle herunter zu „Feiertage“ und wähle Dein Bundesland und das Jahr. Es bietet sich an, alle zukünftigen Jahre auszuwählen
- Im kleinen PopUp musst Du das Capture ausfüllen und dann die .ics Datei herunterladen
- Lege die Datei(en) dort ab, wo Du sie später wiederfindest
Einrichtung Google Kalender
Um Konflikte mit anderen Kalendereinträgen zu vermeiden legst Du innerhalb Deines Google Kontos einen eigenen Kalender zur Nutzung mit der Szene an.
- Öffne https://calendar.google.com und melde Dich mit Deinem Google Konto an
- Einen neuen Kalender anlegen
- Diesen (und nur diesen) Kalender freigeben
Anmerkung zur Kalenderfreigabe
Bitte beachte, dass Du mit der Freigabe jedem Google Benutzer und auch der Google Suche Zugriffsrechte für diesen Kalender einräumst.
Feiertage in den Kalender importieren
Nun importierst Du die unter Feiertage herunterladen auf Deinem Computer gespeicherten iCal Dateien um die gesetzlichen Feiertage in den Kalender einzutragen.
Google Kalender API konfigurieren
Um über einfache Webrequests auf den Kalender zugreifen zu können benötigst Du noch einen API Key. Diesen generierst Du folgendermaßen:
- Besuche die Google Cloud API Console unter: https://console.cloud.google.com/apis
- Erstelle ein Projekt in der Developer Console
- Nach erfolgreicher Erstellung des Projektes musst Du diesem noch die Google Kalender API hinzufügen
- Und zum Abschluss noch einen API Key (Anmeldedaten) generieren
Szene einrichten
Puh, bis hierher hast Du es schon mal geschafft. Kommen wir nun endlich zur Szene in Deinem Home Center 2.
- Erstelle eine neue Lua Szene
- Kopiere den Quellcode aus dem Download in das Formular
- ACHTUNG: Vor dem ersten Speichern müssen ggf. Einstellungen vorgenommen werden
--------------------------------------------------- ------------- Config ------------------------------ gVarStateToday = "holidayToday" gVarStateTomorrow = "holidayTomorrow" advDebug = true version = 'v1.0'
- Die hier konfigurierten globalen Variablen werden beim ersten Start (Autostart) der Szene automatisch angelegt. Wenn Du diese umbenennen willst, dann musst Du dies vor dem ersten Speichern der Szene tun.
- Nun kannst Du die Szene speichern. Die Ausgabe sollte wie folgt aussehen. Die Fehlermeldung deutet lediglich darauf hin, dass die globalen Variablen nicht gefunden wurden.
- Nun benötigst Du noch die Google Kalender ID sowie den API Key
--------------------------------------------------- ------------- Google Calendar --------------------- gCalID = '' gCalAPIkey = ''
- Die Kalender ID findest Du in den Einstellungen des Kalenders unter https://calendar.google.com
- Und den API Key in der Google Developer Console unter https://console.developers.google.com/apis/
- Beide Parameter musst Du an folgender Stelle in der Szene eintragen
--------------------------------------------------- ------------- Google Calendar --------------------- gCalID = '6fu3rbss91at49kordsd0bkhb7bp7bo@group.calendar.google.com' gCalAPIkey = 'AISDSAzaSyAdsdss3fnEQz2kUtSCgSLh0zQkGtXxP7jrU'
- Hast Du alles eingetragen, kannst Du erneut speichern
Ablauf der Szene
Timer Funktion
Die Szene ist so konzipiert, dass sie jeden Tag um 00:05 Uhr (Parameter startTime) die Daten aus dem Google Kalender abfragt und das Startdatum aller zukünftigen Kalendereinträge mit dem Datum des aktuellen und dem nachfolgenden Tag übereinstimmt. Ist für einen der beiden Tage ein Eintrag vorhanden wird die entsprechende globale Variable von 0 auf 1 gesetzt.
Manueller Start
Weiterhin ist es möglich, den Abruf der Daten über den Start-Button zu erzwingen.
Eigene Kalendereinträge
Neben den importierten Feiertagen kannst Du natürlich auch eigene Einträge in Deinem Google Kalender erstellen, um die Variablen zu beeinflussen. So sind beispielsweise Heiligabend und Silvester keine gesetzlichen Feiertage, aber die meisten von uns sind an diesen Tagen Zuhause und möchten beim Frühstück nicht unbedingt frieren.
Bei der Anlage eigener Einträge ist zu beachten, dass es sich bei diesen immer um ganztägige Termine handelt muss. Weiterhin muss für jeden Tag ein einzelner Termin angelegt werden. Termine die sich über mehrere Tage erstrecken funktionieren nicht, bzw. würde hier nur der erste Tag berücksichtigt werden.
ChangeLog
- 1.0: Initiale Version
Download
Download “Feiertage Google Calender” FeiertageGoogleCalendar1.0.zip – 27-mal heruntergeladen – 2 kB
Comments ()