Warum?
Die Einschaltdauer wird mit dem Einschalten direkt an den Aktor übermittelt, im Aktor selber läuft die Zeit ab, er sorgt also selber dafür wie es weiter geht.
Das ist auch der Grund warum einige Kanäle älterer Geräte nicht mittels Einschaltdauer geschalten werden können, da sie "keine interne Uhr" haben.
Schalten wir hingegen z.B. in einem Programm den Kanal ein und dann verzögert wieder aus, ist das bei Weitem nicht so sicher.
Warum?
Der Aktor wird eingeschalten, die Zeit läuft in der CCU ab und wird als separater AusBefehl dann zum Aktor geschickt.
Ist die CCU dann "nicht betriebsbereit" oder erreicht der Ausschaltbefehl nicht den Aktor usw. bleibt der Aktor einfach eingeschalten.
Das als Vorgeschichte, wie benutze ich nun eine dynamische Einschaltdauer.
1. Wir erstellen eine Systemvariable vom Typ Zahl mit Namen SysVarEinschaltdauer 2. Wir machen uns Gedanken, was wir so mit dynamischer Einschaltdauer schalten wollen
3. wir erstellen ein Programm 3a. dabei drücken wir nach Auswahl der Option Einschaltdauer aber auf das weiße Blatt hinter 3b.und wählen die vorher erstellte Systemvariable aus: und wir sind schon fertig.
In meinem Fall benutze ich das Ändern der Systemvariable gleich als Trigger für das Programm selber.
Was geschieht nun in meinem Beispielprogramm?
auf geeigneten Weg ändere ich die Systemvariable SysVarEinschaltdauer auf einen Wert. Über eine App, ein Script usw.
Hier ein passendes Script:
Code: Alles auswählen
(dom.GetObject(ID_SYSTEM_VARIABLES)).Get("SysVarEinschaltdauer").State(25.0);
Das Triggern muss natürlich nicht über die Systemvariable selber geschehen.
Man kann auch einen anderen Trigger benutzen und die Einschaltdauer vorher durch z.B. ein anderes Programm umstellen.
Der Fantasie sind wie immer keine Grenzen gesetzt.
Bei Fragen einfach melden
Alchy