manfredh hat geschrieben: ↑03.08.2019, 10:10
Und dass dann natürlich eine ganz normale Bedingungsprüfung stattfindet ...
Nicht "Und", sondern NUR. Es wird lediglich eine Bedingungsprüfung durchgeführt bei der auch der Zeitstempel aktualisiert wird. Programme, bei denen keine Prüfung durchgeführt wurde, weil kein "gültiger" Trigger (Systemvariable nicht gesetzt beim Start, oder Status eines Aktors nicht abgefragt/übermittelt etc.) enthalten ist, erhalten auch keinen Zeitstempel. Würden alle Programme, wie es häufig zu lesen ist, bei Systemstart getriggert, hätten auch alle Programme den Zeitstempel des Systemstarts. Dem ist aber nicht so.
dtp hat geschrieben: ↑03.08.2019, 10:20
Ich persönlich fände es besser, wenn eQ-3 das grundsätzlich ausschließen würde und man die Ausführung eines Programmzweiges nach dem Neustart der CCU mit dem expliziten Setzen eines Hakens analog dem Beenden aller laufenden Verzögerungen aktivieren müsste.
Andersrum wird ein Schuh draus. Grundsätzlich gehört dieses (wie mehrfach dargelegt) aktiviert und ausschließlich und explizit für Programme, die definitiv
nicht getriggert werden sollen, könnte sich das ausschließen lassen. Also der Status-Quo wie mit dem Workaround, nur dass man die Systemvariable nicht einfügen müsste. Unterlässt man die Seuche mit dem SONST, dann gibt es auch wenig Grund, diesen Workaround einzusetzen, da sich Programme durchaus so anlegen lassen, damit keine unerwünschten Aktionen beim Systemstart ausgeführt werden (und sei es durch eine simple Satusabfrage vor der Ausführung). Analog zu meinem Beispiel mit dem Zeitbereich zur Rollladensteuerung könnte man auch noch die Iststellung abfragen und so das Aussenden von Befehlen, die nur den aktuellen Status beinhalten, verhindern. Beispiel:
Code: Alles auswählen
WENN Zeitmodul täglich 06:00 Uhr bis 22:00 Uhr zu Zeitpunkten auslösen
UND Rollladen Behanghöhe gleich 0% nur prüfen
DANN Rollladen Behanghöhe 100%
SONST WENN Zeitmodul täglich 22:00 Uhr bis 06:00 Uhr zu Zeitpunkten auslösen (nur prüfen reicht auch)
UND Rollladen Behanghöhe >0%
DANN Rollladen Behanghöhe 0%
Dieses simple Programm würde bei einem Systemstart zwischen 06:00 Uhr und 22:00 Uhr einen Hoch-Befehl nur senden, wenn der Rollladen nicht oben ist und vice versa. Setzt man ein SONST ein, müsste man bei einem Systemstart außerhalb der angegebenen Zeit mit einem unnützen Runter-Befehl leben (weil ja ggf. die Rollladen schon unten sind). Lässt man die Prüfungsabfrage der Behanghöhe weg, und die Rollladen stehen schon in Soll-Stellung, werden die Befehle ausgesendet, was aber nichts an der Stellung ändern würde.
Aber in jedem Falle steht nach dem Reboot der Zentrale der Rollladen in dem für diesen Zeitbereich laut Programm vorgesehen Soll-Zustand. Und genau um dieses zu erreichen, werden die Bedingungsprüfungen bei Systemstart durchgeführt. Eine unbedachte Benutzung der glücklicherweise nicht vorhandenen Funktion (gemäß der dann definitiv auftauchenden, aber falschen Empfehlungen aus dem Forum) würden diesen nützlichen Automatismus zunichte machen. Dieses ist nur ein Beispiel, was aber auch auf andere Anwendungszweige mit einem externen Trigger (Stausabfragen etc.) übertragen werden kann.
Gruß Xel66