HomeMatic CCU2 bei ELV bestellen

Einschaltdauer dynamisch im Programm

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Werbung


Einschaltdauer dynamisch im Programm

Beitragvon alchy » 13.06.2018, 09:57

Wir wissen, eine Einschaltdauer an einen Kanal zu übergeben, ist die sicherste Art ein Kanal wieder auszuschalten.
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
Einschaltdauer_dynamisch_Sysvar.jpg
Typ Zahl


2. Wir machen uns Gedanken, was wir so mit dynamischer Einschaltdauer schalten wollen :mrgreen:

3. wir erstellen ein Programm
Einschaltdauer_dynamisch_Programm.jpg
fertiges Programm


3a. dabei drücken wir nach Auswahl der Option Einschaltdauer aber auf das weiße Blatt hinter
Einschaltdauer_dynamisch_weissesBlatt.jpg
Einschaltdauer_dynamisch_weissesBlatt.jpg (932 Bytes) 165-mal betrachtet


3b.und wählen die vorher erstellte Systemvariable aus:
Einschaltdauer_dynamisch_Verknüpfung.jpg


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);


Mit dem Ändern der Systemvariablen wird also die Steckdose Wohnzimmer für 25 Sekunden eingeschalten - fertig.

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

.................... Full
Ignoranz ist die Summe aller Maßnahmen die man ergreift, um bestehende Tatsachen nicht sehen zu müssen.

© Sandra Pulsfort (*1974)

Lies bitte die Logik von WebUI Programmen und die Tipps und Tricks für Anfänger.

Wichtig auch CUxD ersetzt System.exec. Die HM Script Doku (Downloadart Skripte) hilft auch weiter.
Zum Testen von Scripten den >> HomeMatic Script Executor << von Anli benutzen.
alchy
 
Beiträge: 6963
Registriert: 24.02.2011, 02:34

Zurück zu HomeMatic Tipps & Tricks - keine Fragen!

Wer ist online?

Mitglieder in diesem Forum: Meinhard und 8 Gäste







© homematic-forum.de & Lizenzgebern. Alle Rechte vorbehalten. Alle Bilder & Texte auf dieser Seite sind Eigentum
der jeweiligen Besitzer und dürfen ohne deren Einwilligung weder kopiert noch sonstwie weiter verwendet werden.