Tageszeitsteuerung mit globaler Variable

Advertisements

Viele der von mir veröffentlichten und sonst verfügbaren Szenen benutzen eine globale Variable names TimeOfDay. In dieser ist die aktuelle Tageszeit (Morgen, Tag, Abend und Nacht) hinterlegt. So lasse ich beispielsweise beim Betreten unseres Badezimmers am Morgen ein anderes Lichtszenario einschalten als tagsüber oder am Abend. In diesem Artikel erkläre ich Tageszeitsteuerung mit globaler Variable und die dazugehörige Szene und zeige wie ich weiterhin den Sonnenauf- und untergang integriert habe.

Tageszeitsteuerung mit globaler Variable

Tageszeitsteuerung mit globaler Variable

Globale Variable TimeOfDay

Natürlich kann in jeder Szene mit Hilfe der aktuellen Uhrzeit ebenfalls eine Tageszeit ermittelt werden, jedoch sind Änderungen an den definierten Zeitfenstern sehr aufwändig. So ist es sinnvoll derartige Zustände zentral in einer globalen Variable abzulegen. Diese Szene setzt je nach Tageszeit die globale Variable auf die Werte Morning, Day, Evening oder Night und läuft einmal in der Minute. Weiterhin können die Zeiten des Sonnenauf- und untergangs berücksichtigt werden.

Steuerung nach Sonnenstand

Bekanntlich dreht sich unsere Erde während eines Jahres genau einmal (geringfügige Abweichungen mal ausgeblendet) um die Sonne. Das ist der Grund warum wir Jahreszeiten haben und die Sonne im Winter später auf- und früher untergeht. Um eine halbjährliche Anpassung der Zeiträume für die unterschiedlichen Tageszeiten zu verhindern ermöglicht die Szene neben den starren Zeiten auch die Beeinflussung durch die Sonnenbewegungen.

Weiterhin steuert die Szene noch die globale Variable Darkness mit der vom Stand der Sonne abhängige Aktionen ausgeführt werden können. Siehe Artikel Sonnensteuerung.

Anlegen einer globalen Variable

Globale Variablen werden unter Panels -> Variables Panel (auf deutsch: Steuerung -> Variablen Steuerung) erstellt und gepflegt.

vaiablesplanel

Dort erstellst Du unter „Predefined variables“ bzw. „Vordefinierte Variable“ eine neue Variable mit dem Namen TimeOfDay und trägst die Werte Morning, Day, Evening und Night als mögliche Ausprägung ein.

TimeOfDay

Konfiguration der Szene

-----------------------------------
---------- Einstellungen ----------
varDebug 		= true 		-- Debug logs true oder false

gVarName		= 'TimeOfDay' 	-- Name der globalen Variable
gVarNameDarkness	= 'Darkness' 	-- Name der globalen Variable für Dunkelheit
useSunriseMorning	= true		-- Wenn mit dem Sonnenaufgang auf Morning geschaltet werden soll
useSunsetEvening	= true 		-- Wenn nach dem Sonnenuntergang auf Evening geschaltet werden soll
useSunsetNight		= false 	-- Wenn nach dem Sonnenuntergang auf Night geschaltet werden soll
startMorning 		= '05:30'	-- Startzeit Morning
startDay		= '10:00'	-- Startzeit Day
startEvening 		= '18:00'	-- Startzeit Evening
startNight 		= '23:00' 	-- Startzeit Night
version			= '1.0'
  • varDebug = Erweiterte Debugausgabe (true/false)
  • gVarName = Der Name der zu steuernden globalen Variable*
  • gVarNameDarkness = Der Name der zu steuernden globalen Variable für Dunkelheit
  • useSunriseMorning = Nutze den Sonnenaufgang um die Tageszeit auf „Morning“ zu setzen
  • useSunsetDay = Nutze den Sonnenuntergang um die Tageszeit auf „Day“ zu setzen
  • useSunsetEvening = Nutze den Sonnenuntergang um die Tageszeit auf „Evening“ zu setzen
  • useSunsetNight = Nutze den Sonnenuntergang um die Tageszeit auf „Night“ zu setzen
  • startMorning = Uhrzeit ab wann „Morning“ gesetzt wird
  • startDay = Uhrzeit ab wann „Day“ gesetzt wird
  • startEvening = Uhrzeit ab wann „Evening“ gesetzt wird
  • startNight = Uhrzeit ab wann „Night“ gesetzt wird

Download

Download der aktuellen Version:

Posted in Sonstiges and tagged , .

9 Comments

  1. Hallo Bastian,

    bisher habe ich bei meinen Uhrzeit-Variablen nur in vielen verschiedenen Block-Szenen realisiert. Deine Szene finde ich viel besser, da ich alles in einer zusammenfassen kann. Ist es per LUA auch möglich so etwas einzubinden wie z.B. „30 Minuten vor/nach Sonnenuntergang“?

    Danke schon mal im Voraus für deine Hilfe!

    Patrick

  2. Hallo Partick,

    vielen Dank für Deine Nachricht.
    Ich muss dir Blumen ein wenig aufteilen, denn die Variable habe ich selbst nur übernommen und sie ist im Fibaro Umfeld soetwas wie ein Standard. Viele andere Szenen verwenden diese wieder.
    Die Szene lässt sich sicherlich um die Bedienung einer globalen Variable für Sonnenauf- und untergang erweiter. Wenn Du Interesse daran hast, kann ich den Artikel gern um 1-2 Kapitel ergänzen.
    Gruß
    Bastian

  3. Pingback: Basics: Globale Variablen | Mein kleiner Smart Home Blog

  4. Hallo Bastian,
    ich habe die Variable ebenfalls angelegt und die Szene übernommen, da ich davon ausgehe, dass mir diese noch nützlich sein wird.Da ich noch dabei bin, mich einzuarbeiten… kann ich die Parameter der Szene bei den Standardwerten belassen?

    Maximal ausgeführter Instanzen: 2
    Szene starten: automatisch
    Versteckte Szene: Nein
    Mit PIN sichern: Nein
    Beim Auslösen von Alarm wird diese Szene weiterhin ausgeführt: Nein

    Beste Grüße, Rüdiger

  5. Hallo Bastian,
    bei der Szene gibt es die Variable:
    useSunriseMorning = true — Wenn mit dem Sonnenaufgang auf Morning geschaltet werden soll

    Diese wird in der Szene nicht berücksichtigt.
    Durch die elseif-Anweisungen wird immer um 5:30 auf Morgen gesetzt, egal welchen Wert useSunriseMorning hat. Nur die Debug-Ausgabe ist unterschiedlich.
    Das gleiche gilt vermutlich auch für useSunsetEvening und useSunsetNight.

    • Hi Jeff,

      ich habe es noch einmal geprüft und konnte keinen Fehler finden. Bei mir läuft die Szene problemlos mit useSunrise und useSunset.

      Gruß
      Bastian

  6. Pingback: Grundausstattung Globale Variablen | Mein kleiner Smart Home Blog

  7. Pingback: Sonnensteuerung | Mein kleiner Smart Home Blog

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Ich akzeptiere