Feiertagsvariablen im HC2

Feiertagsvariablen im HC2

22. Dezember 2016 19 643 Von Bastian

Leider (oder zum Glück?) sind wir mit der Technologie noch nicht so weit, dass das Home Center eigene Entscheidungen trifft oder gar mitdenkt. Alle Automatismen im Smart Home basieren auf Einsen und Nullen bzw. logischen Abläufen und Bedingungen. So kennt das Home Center einen Kalender, Monate, Tage und so weiter. Alles logische und wiederkehrende Dinge die nahezu überall identisch sind. Sobald es aber individueller wird kommen die Einsen und Nullen schnell an ihre Grenzen. Beispielsweise bei Feiertagen. Diese sind in Deutscland je nach Bundeslang unterschiedlich und fallen auch nicht jedes Jahr auf denselben Tag. In diesem Artikel stelle ich eine Schnittstelle vor, mit deren Hilfe eine Feiertagsvariable im HC2 gefüllt wird.

Feiertagsvariable

Feiertagsvariable

Warum Feiertage?

Kalenderdaten in das Home Center zu integrieren ist eine große Herausforderung. Die Daten müssen in einem geeigneten Format geliefert werden um sie mit Lua verarbeiten zu können. Das gängigste Format ist JSON, denn JSON lässt sich schnell und sauber in ein Array bzw. eine Table wandeln und die Daten sicher verwenden.

Aber warum gerade Feiertage? Unsere Feiertage lassen sich mathematisch berechnen, jedoch ist ein Feiertag in Bayern noch lange keiner in Hamburg und schon gar nicht in der Schweiz oder Italien. Für jede Region gibt es individuelle Feiertage. Diese Daten stelle ich ab sofort über eine Webschnittstelle zur Verfügung.

Feiertagsvariable im HC2

Feiertagsvariable im HC2

Feiertagsvariablen im HC2

Die Feiertage kannst Du nun bequem und ohne viel Aufwand über das Internet beziehen und mit der hier vorgestellten Szene verarbeiten lassen. Es ist weder ein lokaler Webserver notwendig, noch müssen die Feiertage manuell in die Szene eingetragen werden. Lediglich eine Internetverbindung des Home Center ist vorausgesetzt.

Einfach in der Konfiguration der Szene Dein Bundesland hinterlegen und schon kann es losgehen.


Kürzel der Bundesländer: BW, BY, BE, BB, HB, HH, HE, MV, NI, NRW, RP, SL, SN, ST, SH ,TH

Scheduler Konfiguration

Der Scheduler lässt sich mit den folgenden Variablen konfigurieren.

  • scheduler = Einen Timer aktivieren (true) oder nicht (false)
  • startTime = Die Uhrzeit für den Timer im Format (HH:mm)

Ist kein Timer konfiguriert benötigt die Szenen im Header einen Trigger um automatisch ausgeführt zu werden. Weiterhin ist der Autostart zu entfernen. Im Beispiel dient die globale Variable TimeOfDayals Trigger.

Globale Variablen

Weiterhin erstellt die Szene 4 globale Variablen mit den in der Konfiguration hinterlegten Namen (Achtung; unbedingt VOR dem ersten Speichern anpassen). Ich empfehle die Namen unverändert zu lassen, da ich in weiteren Szenen auf diese verweisen werden.

Szene manuell starten

Neben dem Scheduler und möglichen Triggern kann der Abruf der Daten auch manuell erfolgen. Hierfür ist die Anzahl der maximalen Instanzen der Szene auf mindestens 2 zu stellen.

Feiertagsvariable Szenen Konfiguration

Feiertagsvariable Szenen Konfiguration

Mit der Betätigung des Start-Button in der Konfiguration wird die Szenen gestartet und die Daten von ical2json abgerufen. Der Scheduler bleibt davon unberührt.

Ablauf und Trigger der Szene

Die Szene fragt bei mkshb.de die JSON Daten für das angegebene Bundesland ab und vergleicht anhand der Daten, ob heute und/oder morgen ein Feiertag ist. Wenn dem so ist, werden bis zu 4 globale Variablen gesetzt:

  • holidayToday = 1
  • holidayTodayName= Name des heutigen Feiertages
  • holidayTomorrow = 1
  • holidayTomorrowName = Name des morgigen Feiertages

Download

Download “Feiertagsvariable” gVHoliday1_0.zip – 101-mal heruntergeladen – 2 KB

Changelog

Version 0.3 (24.12.2016)

  • Bugfix
  • Code optimiert

Version 0.4 (26.12.2016)

  • Bug korrigiert: Variablen wurde unter bestimmten Bedingungen nicht richtig gesetzt

Version 0.5 (28.12.2016)

  • Scheduler Konfiguration hinzugefügt
  • Manuelles ausführen ermöglicht

Version 0.6 (28.12.2016)

  • „Feiertag morgen“ hinzugefügt
  • Globale Variablen umbenannt
    • Bitte vor dem Update die globalen Variablen holidayToday und holidayName löschen

Version 1.0 (21.06.2018)

  • Nachdem es immer wieder Probleme mit der Datenbereitstellung gab, verwendet die Szene nun eine öffentliche Quelle für die Abbilung der Feiertage.

Verwendung der Variable

Szenen die mit der Feiertagsvariable gesteuert bzw. von dieser beeinflusst werden:

Feedback

Wie immer freue ich mich über Feedback zur Szene und versuche auf entstehende Probleme einzugehen. Dafür ist die Kommentarfunktion unter dem Artikel schließlich da. Also: Schreibe einen Kommentar, wenn Dir die Szene gefällt, Du Anregungen oder Kritik hast.

Bastian

Moin, ich heiße Bastian und bin Autor dieser kleinen bescheidenen Seite. Zwanghaft, ja fast schon neurotisch beschäftige ich mich seit Jahren mit jedem erdenklichen technischen Schnick-Schnack. Nichts, was einen Stecker hat ist vor mir sicher. So war es klar, dass ich eines Tages das Haus auf den Kopf stellen und alles vernetzen würde.

Da ich bei meinem Vorhaben sehr viel Hilfe und Unterstützung in diversen Foren, Blogs und Boards erfahren habe, möchte ich diesen Blog zum sammeln meiner Smarthome- und Technikerrungenschaften nutzen um der Community zumindest ein klein wenig was zurückgeben zu können.

Artikel teilen