ResetAtMidnight (Reset um Mitternacht)

Dieser Baustein gehört zum Paket „Trigger (Auslöser).“

Paket-Preis: 14,50€

Kurzbeschreibung

Diese Logik sorgt dafür, dass ein bestimmter Ausgang täglich um Mitternacht automatisch zurückgesetzt wird. Sie eignet sich besonders für Szenarien, bei denen ein täglicher Startwert oder eine Rücksetzung notwendig ist – beispielsweise in der Gebäudeautomation zur Rücksetzung von Zuständen, Zählern oder anderen Signalen. Die Auslösung kann flexibel an Bedingungen geknüpft werden, etwa ob ein Eingang aktiv oder inaktiv sein muss. Zudem kann festgelegt werden, ob nach einem Aktivieren automatisch wieder deaktiviert werden soll. Die Steuerung erfolgt durch ein internes Zeitintervall, welches regelmäßig prüft, ob Mitternacht erreicht wurde.

Besonderheit

  • Funktionale Flexibilität:
    • Aktivierung über externes Signal.
    • Optional nur Auslösung, wenn ein Eingang „Wahr“ oder „Falsch“ ist.
    • Flexible Steuerung über ein internes Zeitintervall (zyklische Prüfung).
    • Möglichkeit zur automatischen Rücksetzung nach Setzen des Ausgangs.
    • Option, ob auf letzte Prüfung vor Mitternacht gewartet werden soll.
  • Fehlerbehandlung:
    • Fehler innerhalb der Funktion werden protokolliert und als Text ausgegeben.
    • Fehlerprotokollierung in zwei getrennten Ausgängen: für Ausführung und Zeitplan.
  • Grenzen und Validierungen:
    • Der maximale Zykluswert (Zeitintervall) ist55 Sekunden
    • Wird kein gültiges Zeitintervall gesetzt, wird der Standardwert verwendet (10 Sekunden).
    • Die Funktion prüft auf korrekte Aktivierung und Eingangsbedingungen vor Auslösung.

Diese Logik wird verwendet, um einen Ausgang (z. B. eine Statusanzeige oder ein Schaltsignal) täglich bei Mitternacht zu setzen. Die Aktivierung der Funktion erfolgt über einen Eingangssignal. Sobald die Logik aktiviert ist, startet intern ein regelmäßiger Prüfrhythmus (z. B. alle 10 Sekunden). Sobald erkannt wird, dass Mitternacht erreicht ist, wird der Ausgang – je nach gewählten Bedingungen – aktiviert (gesetzt).

Optional kann überprüft werden, ob ein weiteres Eingangssignal zum Zeitpunkt der Mitternacht eine bestimmte Bedingung erfüllt (z. B. muss „Wahr“ oder „Falsch“ sein). Nur wenn diese Bedingung erfüllt ist, erfolgt die Aktivierung des Ausgangs. Dies macht die Funktion besonders flexibel in der Anwendung.

Weiterhin kann eingestellt werden, dass der Ausgang automatisch nach der Aktivierung wieder deaktiviert wird – dies ist besonders nützlich, wenn nur ein kurzes Signal benötigt wird. Die Rücksetzung erfolgt beim nächsten Prüfzyklus.

Damit das Zurücksetzen exakt zum richtigen Zeitpunkt geschieht, kann auch festgelegt werden, dass der allerletzte Zyklus vor Mitternacht entscheidend ist. Somit ist eine präzise Auslösung gewährleistet, auch wenn es kleine Abweichungen im Ablauf gibt.

Zusätzlich werden Statusinformationen und etwaige Fehler in Textfeldern ausgegeben, was eine einfache Diagnose ermöglicht.

  • Activate (bool):
    Schaltet die gesamte Funktion ein oder aus.
  • Input(bool):
    Dient als Bedingung zur Auslösung (muss je nach Einstellung „Wahr“ oder „Falsch“ sein).
  • LastCycleTimeBeforeMidnight (bool): 
    Wenn aktiv, wird die Aktion exakt kurz vor Mitternacht ausgeführt.
  • CycleTime (timespan):
    Gibt das Prüfintervall an (z. B. alle 10 Sekunden). (Max: 55s)
  • InputHaveToBeFalse(bool):
    Wenn aktiv, darf der Eingang nicht aktiv sein, damit die Aktion ausgeführt wird
  • InputHaveToBeTrue (bool):
    Wenn aktiv, muss der Eingang aktiv sein, damit die Aktion ausgeführt wird.
  • SetFalseAfterSetTrue (bool):
    Wenn aktiv, wird der Ausgang nach einem kurzen Moment automatisch wieder deaktiviert.
  • Output (bool):
    Wird auf „Wahr“ gesetzt, sobald die Reset-Bedingung erfüllt ist (z. B. Mitternacht).
  • LogExecute (string):
    Gibt etwaige Fehler und Statusmeldungen bei der Ausführung aus.
  • LogSchedule (string):
    Gibt Status- und Ablaufmeldungen zum internen Zeitplan aus.

Beispiel 1 – Täglicher Zähler-Reset:

Ein Energiezähler soll vor Mitternacht zurückgesetzt werden.

  • Eingabe:
    • Activate: true
    • Input: true
    • LastCycleTimeBeforeMidnight: true
    • CycleTime: 10s
    • InputHaveToBeFalse: false
    • InputHaveToBeTrue: false
    • SetFalseAfterSetTrue: true
  • Ausgabe:
    • Output: Ein Zyklus vor Mitternacht wird der Ausgang true und im Zyklus danach wieder false.
Warum wird der Ausgang nicht um Mitternacht aktiviert?

Bitte prüfen Sie, ob der Eingang „Input“ die geforderte Bedingung erfüllt (je nach Einstellung „muss wahr“ oder „muss falsch“). Außerdem muss die Funktion aktiv sein (Activate = true).

Wie stelle ich sicher, dass der Ausgang wirklich nur einmal pro Tag aktiviert wird?

Diese Sicherheit ist bereits eingebaut: Die Logik erkennt, ob bereits am heutigen Tag ein Reset durchgeführt wurde, und führt diesen nur einmal täglich aus.

Was passiert, wenn ich das Zeitintervall (CycleTime) zu hoch einstelle?

Das Intervall darf maximal 55 Sekunden betragen. Ein zu großes Intervall kann dazu führen, dass Mitternacht „verpasst“ wird. Idealerweise sollte das Intervall 10–30 Sekunden betragen.

  • Version 3.0.13
    • First Release

Baustein-Support

Wenn Sie X1-Logik-Baustein-Support benötigen, senden Sie uns bitte zusätzlich den Log (LogExecute und LogSchedule, welcher als Ausgang des Bausteins ausgegeben wird) und eine detaillierte Beschreibung des Problems zu!