[Beta][Modul] Nachlaufsteuerung

Für einige Automatisierungsfälle habe ich mir ein Modul entwickelt, mit dem sich auf bestimmte Ereignisse zeitversetzt beziehungsweise im Nachgang reagieren lässt. Bisher hatte ich diese Funktionen über verschiedene Skripte umgesetzt und bin im Zuge der Inventur nun endlich dazu gekommen, daraus ein eigenes Modul zu machen.

Das Modul unterscheidet sich in einigen Punkten von der Treppenlichtsteuerung im Store, kann jedoch auch für ähnliche Anwendungsfälle eingesetzt werden. Die vorhandene Treppenlichtsteuerung konnte meine Anforderungen allerdings nicht vollständig abdecken. Vielleicht sucht jemand nach einer vergleichbaren Lösung – deshalb möchte ich das Modul hier gerne der Allgemeinheit zur Verfügung stellen.

Im Symcon Store als Beta zu suchen mit “Nachlaufsteuerung”.

Das Modul dient dazu, ein Ziel (z. B. Lüfter, Pumpe oder Licht) abhängig von einer oder mehreren überwachten Variablen, einer Nachlaufzeit und einem Wochenplan automatisch ein- und auszuschalten.

Inhaltsverzeichnis

  1. Funktionsumfang

  2. Voraussetzungen

  3. Software-Installation

  4. Einrichten der Instanzen in Symcon

  5. Statusvariablen und Profile

  6. Visualisierung

  7. Vorsicht und Haftungsausschluss

  8. PHP-Befehlsreferenz

  9. Screenshots


1. Funktionsumfang

  • Schalten eines Zieles

  • Überwachung einer oder mehrerer Variablen

  • ODER-Verknüpfung mehrerer überwachter Variablen

  • Einstellbare Nachlaufzeit

  • Nachlaufstart beim Erreichen oder Verlassen des Auslösewertes

  • Wochenplan mit den Zuständen „Ein“ und „Inaktiv“

  • Wochenplan kann das Ziel dauerhaft eingeschaltet halten

  • Statusvariable zur Anzeige eines aktiven Nachlaufes

  • Nachlaufzeit direkt im Objektbaum anpassbar

  • Hauptschalter zum Aktivieren oder Deaktivieren der gesamten Modulsteuerung


2. Voraussetzungen

  • Symcon ab Version 7.1

3. Software-Installation

  • Über den Module Store das Modul „Nachlaufsteuerung“ installieren.

  • Alternativ über das Module Control die entsprechende Repository-URL hinzufügen.


4. Einrichten der Instanzen in Symcon

Unter „Instanz hinzufügen“ kann das Modul „Nachlaufsteuerung“ mithilfe des Schnellfilters gefunden werden.

Konfigurationsseite

Name Beschreibung
Geschaltetes Ziel Variable, die durch das Modul geschaltet werden soll
Überwachte Variablen Eine oder mehrere Variablen, die das Modul überwacht
Reaktion auf TRUE/FALSE Definiert den Auslösewert der Überwachung
Nachlaufzeit starten bei Definiert, ob die Nachlaufzeit beim Erreichen oder Verlassen des Auslösewertes startet

Funktionsweise

Das Modul dient dazu, ein Ziel (z. B. Lüfter, Pumpe oder Licht) abhängig von einer überwachten Variable, einer Nachlaufzeit und einem Wochenplan automatisch ein- und auszuschalten.

Unterhalb der Instanz wird zusätzlich ein Hauptschalter angelegt. Über diesen Hauptschalter kann die gesamte Funktion des Moduls ein- oder ausgeschaltet werden. Ist der Hauptschalter eingeschaltet, arbeitet das Modul wie konfiguriert. Ist der Hauptschalter ausgeschaltet, reagiert das Modul nicht auf überwachte Variablen und führt keine Nachlaufsteuerung aus. Der Hauptschalter dient damit als zentrale Freigabe für die gesamte Steuerung.

Im Modul wird zunächst eine überwachte Variable ausgewählt. Diese Variable löst die Steuerung aus. Zusätzlich wird ein geschaltetes Ziel ausgewählt. Dieses Ziel wird vom Modul über RequestAction() geschaltet.

Es kann festgelegt werden, auf welchen Zustand der überwachten Variable reagiert werden soll. Dabei kann entweder auf TRUE oder auf FALSE reagiert werden. Der gewählte Zustand ist der sogenannte Auslösewert.

Zusätzlich kann eingestellt werden, wann die Nachlaufzeit beginnen soll. Dabei gibt es zwei Möglichkeiten.

Die Nachlaufzeit kann direkt beim Erreichen des Auslösewertes starten. In diesem Fall wird beim Erreichen des Auslösewertes das Ziel eingeschaltet und gleichzeitig sofort die Nachlaufzeit gestartet. Nach Ablauf der eingestellten Zeit prüft das Modul, ob ausgeschaltet werden darf.

Alternativ kann die Nachlaufzeit erst beim Verlassen des Auslösewertes starten. Das entspricht dem klassischen Verhalten einer Nachlaufsteuerung. Dabei wird beim Erreichen des Auslösewertes zunächst nur das Ziel eingeschaltet. Erst wenn die überwachte Variable den Auslösewert wieder verlässt, beginnt die Nachlaufzeit. Nach Ablauf der Zeit wird geprüft, ob ausgeschaltet werden darf.

Beispiel: Wird auf TRUE reagiert und die Nachlaufzeit soll erst beim Ausschalten starten, dann passiert Folgendes: Sobald die überwachte Variable TRUE wird, schaltet das Modul das Ziel ein. Solange die Variable TRUE bleibt, bleibt auch das Ziel eingeschaltet. Erst wenn die Variable wieder FALSE wird, startet die Nachlaufzeit. Nach Ablauf der Nachlaufzeit wird das Ziel ausgeschaltet, sofern der Wochenplan dies erlaubt.

Wird der Auslösewert während einer laufenden Nachlaufzeit erneut erreicht, bleibt das Ziel eingeschaltet und der laufende Nachlauf wird beendet beziehungsweise neu gestartet. Dadurch wird verhindert, dass das Ziel während einer erneuten Aktivität ausgeschaltet wird.

Unterhalb der Instanz erstellt das Modul automatisch einen Wochenplan. Der Wochenplan besitzt die Zustände „Ein“ und „Inaktiv“.

Steht der Wochenplan aktuell auf „Ein“, wird das Ziel eingeschaltet gehalten. In diesem Zustand darf die Nachlaufsteuerung das Ziel nicht ausschalten. Der Wochenplan hat dann Vorrang.

Steht der Wochenplan auf „Inaktiv“, ist der Wochenplan deaktiviert oder ist aktuell keine definierte Zeit aktiv, darf die Nachlaufsteuerung das Ziel ausschalten.

Wechselt der Wochenplan von „Ein“ auf „Inaktiv“, erfolgt sofort eine neue Zustandsbewertung. Das Ziel kann dann direkt ausgeschaltet werden. Es wird nicht erst auf eine Nachlaufzeit gewartet.

Zusätzlich erstellt das Modul eine Statusvariable „Nachlauf aktiv“. Diese zeigt an, ob aktuell eine Nachlaufzeit läuft. Außerdem wird eine Variable für die Nachlaufzeit in Minuten erstellt. Über diese Variable kann die Nachlaufzeit jederzeit angepasst werden. Änderungen werden sofort berücksichtigt.


5. Statusvariablen und Profile

Die Statusvariablen und Kategorien werden automatisch angelegt. Das Löschen einzelner Objekte kann zu Fehlfunktionen führen.

Statusvariablen

Name Typ Beschreibung
Aktiv Boolean Hauptschalter für die gesamte Modulsteuerung
Nachlauf aktiv Boolean Zeigt an, ob aktuell eine Nachlaufzeit aktiv ist
Nachlaufzeit Integer Definiert die Nachlaufzeit in Minuten

Profile

Es werden keine zusätzlichen Variablenprofile benötigt.


6. Visualisierung

Der Hauptschalter kann direkt im Objektbaum oder im WebFront bedient werden. Ist der Hauptschalter ausgeschaltet, ist die gesamte Steuerung deaktiviert.

Die Nachlaufzeit kann direkt im Objektbaum oder im WebFront geändert werden.

Die Variable „Nachlauf aktiv“ zeigt den aktuellen Status der Nachlaufsteuerung an.

Der automatisch angelegte Wochenplan kann direkt bearbeitet werden.


7. Vorsicht und Haftungsausschluss

Die Verwendung des Moduls erfolgt auf eigene Verantwortung. Der Anwender ist selbst dafür verantwortlich, dass die angeschlossene Anlage fachgerecht betrieben wird und alle technischen, sicherheitsrelevanten und rechtlichen Anforderungen eingehalten werden.

Das Modul darf nicht dazu verwendet werden, sicherheitskritische Einrichtungen ohne zusätzliche Schutzmaßnahmen zu steuern. Vor dem Einsatz sollte geprüft werden, ob das geschaltete Ziel bei einer Fehlkonfiguration, einem Ausfall der Steuerung oder einer dauerhaft deaktivierten Funktion Schäden verursachen kann.

Besondere Vorsicht gilt bei der Verwendung für Heizungs-, Warmwasser- oder Zirkulationsanlagen. Wird mit dem Modul eine Warmwasser- oder Heizungszirkulation gesteuert, muss sichergestellt werden, dass die Zirkulation regelmäßig und ausreichend lange läuft. Eine Zirkulation darf nicht über längere Zeit vollständig abgeschaltet bleiben, wenn dadurch hygienische Risiken entstehen können. Insbesondere ist darauf zu achten, dass geeignete Maßnahmen zur Vorbeugung von Legionellenbildung eingehalten werden.

Das Modul ersetzt keine fachliche Planung, keine hygienische Bewertung und keine sicherheitstechnische Prüfung der Anlage. Bei Unsicherheit sollte eine qualifizierte Fachperson hinzugezogen werden.


8. PHP-Befehlsreferenz

Das Modul arbeitet vollständig ereignisbasiert und benötigt keine zusätzlichen PHP-Befehle.

9. Screenshots

Ansicht im Konfigurationsformular:

Konfiguration

2 „Gefällt mir“

Danke, ich werde es demnächst mal testen.

Dachte letztens schon ich bin zu Blöd, alles was ich an Präsenzmelder/Bewegungsmelder Modulen gefunden habe, startet direkt den Timer… Wenn man dann länger im Raum bleibt geht das Licht halt irgendwann wieder aus, da der Bewegungsmelder einfach auf „An“ bleibt…

1 „Gefällt mir“

Danke für dieses tolle Modul, das kann ich gut gebrauchen. Zunächst werde ich es für meine Zirkulationspumpe verwenden.

Es funktioniert soweit gut. Allerdings ist mir schon zu Anfang aufgefallen, dass ich zwei Dinge vermisse: Da wäre zunächst die Möglichkeit über einen weiteren Eingang das geschaltete Ziel abzuschalten und die Restzeitanzeige des Nachlaufs wäre auch schön die als Variable darzustellen.

Gruß

Marc

Hab’s mal getestet, aber direkt das Problem das ich nur ein Ziel und keinen Dimmwert angeben kann.
Hab darauf dann einfach von Copilot ein Modul schreiben lassen was einfach genau auf meine Anforderungen passt, manchmal einfacher… :smiley:
Trotzdem Danke fürs Modul :slight_smile:

Ich bin froh, dass es noch Menschen gibt, die etwas programmieren und mit denen ich Kontakt aufnehmen kann, wenn ich etwas benötige und die eine anständige Anleitung und Beschreibung ihrer Module hinterlassen. Ich habe ein Alter erreicht, wo ich mich mit KI sicher nicht mehr auseinandersetzen werde.

1 „Gefällt mir“

Danke für das Modul.
Ich hätte einen Wunsch - falls ich ihn platzieren darf.
Und es würde den Namen des Moduls aushebeln.
Ich würde das Modul gerne als Ersatz für das Etagenlichtscript verwenden.
Das Script funktioniert zwar einwandfrei - die Einrichtung ist zwar eher komplex - ich grüble jedes Mal wieder.
Um dieses Script ablösen zu können müsste das Modul keine Nachlaufsteuerung haben sondern einfach wenn das geschaltete Ziel eine normale Variable ist ein „SetValue()“, falls es eine Actionvariable oä. ist dann ein „RequestAction()“ absetzen.
Schöne Grüße aus Linz.