APNT-29 - Erweiterung <tc>Fibaro</tc> HC2 Sonnenaufgangs-/Sonnenuntergangsfunktionen

Der Fibaro Home Center 2 hat einige Einschränkungen hinsichtlich der Sonnenaufgangs- und Sonnenuntergangszeiten, die Sie in Ihren Szenen verwenden können. Sie können beispielsweise 15, 30, 45 und 60 Minuten vor Sonnenaufgang und 15, 30, 45 und 60 Minuten nach Sonnenuntergang auswählen. Die Auswahl von 60 Minuten vor Sonnenuntergang oder anderen Werten ist jedoch nicht möglich.

Es ist tatsächlich sehr einfach, eine einzige Zeile LUA-Code zu ändern, um die Sonnenuntergangs-/Sonnenaufgangszeiten auf beliebige Zeiten zu verlängern.

Als Beispiel verwenden wir die Sonnenuntergangsszene, die wir in Anwendungshinweis 28 verwendet haben.

Sunset On Scene

Diese Szene schaltet ein Licht genau bei Sonnenuntergang ein. Das funktioniert gut für Außenbeleuchtung, aber wenn man dieselbe Szene für eine Innenbeleuchtung verwenden würde, sollte diese wahrscheinlich vor Sonnenuntergang aktiviert werden, da es im Gebäudeinneren dunkler wird.

Ändern wir das also so, dass die Szene 1 Stunde vor Sonnenuntergang aktiviert wird.

LUA-Code anzeigen

Dazu müssen wir eine Zeile des LUA-Codes ändern, der diese Szene ausführt.

  • In der Szene Fortschrittlich Gehen Sie mit der Registerkarte zu Szenenbearbeitungsmodus auf LUA-Basis umschalten
  • Klicken Sie auf „Ändern'
  • Der LUA-Code wird in einem HC2-Fenster angezeigt (siehe unten).

HC2 LUA Scene Code

  • Die Codezeile, die uns interessiert, befindet sich auf Zeile 14Die

( ((currentDate.wday == 2 oder currentDate.wday == 3 oder currentDate.wday == 4 oder currentDate.wday == 5 oder currentDate.wday == 6) und string.format("%02d", currentDate.hour) .. ":" .. string.format("%02d", currentDate.min) == fibaro:getValue(1, "sunsetHour")) )

  • Um dies so zu ändern, dass die Szene 60 Minuten vor Sonnenuntergang aktiviert wird, ändern wir Zeile 14 wie folgt:

( ((currentDate.wday == 2 oder currentDate.wday == 3 oder currentDate.wday == 4 oder currentDate.wday == 5 oder currentDate.wday == 6) und os.date("%HM", os.time()+60*60) == fibaro:getValue(1, "sunsetHour")) )

  • Der Code, der die Zeit vor oder nach Sonnenuntergang steuert, ist fett markiert. os.time()+60*60)
    • Wenn dies positiv ist '+' Die Szene wird vor Sonnenuntergang aktiviert, falls negativ '-' Es wird anschließend aktiviert.
    • Die Zeit davor/danach wird durch die Zahlen bestimmt, '+60*60In diesem Beispiel wird es 60 Minuten vor Sonnenuntergang aktiviert, 90 Minuten wären es +90*60.
  • Hinweis: Um diesen Code zu testen, habe ich die ursprüngliche Szene auf eine Stunde nach Sonnenuntergang eingestellt. Der LUA-Code für diese Szene war bis auf die Zeitangabe identisch mit dem oben verwendeten neuen Code. os.time()-60*60)Indem man also einfach den entsprechenden Codeabschnitt ändert os.time()+60*60) Wir haben nun eine Szene, die 1 Stunde vor Sonnenuntergang spielt.

Ändern Sie den LUA-Code

Um den LUA-Code so zu ändern, dass er unsere neue Codezeile (Zeile 14) verwendet, müssen wir den LUA-Bearbeitungsmodus aktivieren.

Wichtig - Ich würde Ihnen raten, dies erst zu tun, nachdem der Rest der Szene korrekt funktioniert - ein Wechsel vom LUA-basierten Editor zurück zum Grafikblock-Editor ist nicht möglich.

Wenn Sie bereit sind, wechseln Sie zum LUA-basierten Editor.

  • Falls Sie sich noch nicht im LUA-Bereich des Reiters „Erweitert“ befinden, gehen Sie zu Szenenbearbeitungsmodus auf LUA-Basis umschalten, klicken Sie auf 'Ändern'
  • Klicken Sie auf „Einschalten'

HC2 LUA Editor

  • Klicken Sie auf „OK' im Warndialog
  • Ändern Sie Zeile 14 in den neuen Code.
  • Klicken Sie auf die 'Speichern'-Schaltfläche im rechten Menü

HC2 final LUA Code


Die Szene wird nun 60 Minuten vor Sonnenuntergang abgespielt.

Mit dieser einfachen Codeänderung können wir unsere Szenen vor oder nach Sonnenuntergang/Sonnenaufgang und zu jeder beliebigen Uhrzeit ausführen.

Verwandte Informationen