Laufzeit eines Gerätes per Systemvariable festlegen

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Matsch
Beiträge: 5359
Registriert: 30.05.2019, 11:37
System: Alternative CCU (auf Basis OCCU)
Wohnort: Chemnitz
Hat sich bedankt: 113 Mal
Danksagung erhalten: 722 Mal

Re: Laufzeit eines Gerätes per Systemvariable festlegen

Beitrag von Matsch » 09.08.2022, 19:00

Ok, den könnte man dann in eine integer wandeln.

Tyfys
Beiträge: 531
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 26 Mal
Danksagung erhalten: 121 Mal

Re: Laufzeit eines Gerätes per Systemvariable festlegen

Beitrag von Tyfys » 09.08.2022, 19:36

Skript mit Werteliste habe ich hier doch schon weiter vorne vorgestellt

Kleine Modifikation mit verzögertem Setzen der SysVar "pocketControlPushMessage"
könnte so sein:

Code: Alles auswählen

integer delay_ms = 500.0;

!Variable vom Typ WerteListe
!aktuellen Wert holen 
if (dom.GetObject(ID_SYSTEM_VARIABLES).Get("Springbrunnen_Minuten")) {
    var MinutesList = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Springbrunnen_Minuten").ValueList();
    var ListIndex = dom.GetObject(ID_SYSTEM_VARIABLES).Get("Springbrunnen_Minuten").Value();
    var RunSeconds = (MinutesList.StrValueByIndex(";", ListIndex).ToInteger() * 60.0);
}

!Gerät für Springbrunnen schalten
!dom.GetObject('INTERFACE.SERIENNUMMER:KANAL.DATENPUNKT').Value();
if (dom.GetObject("INTERFACE.SERIENNUMMER:KANAL.STATE")) {
    dom.GetObject("INTERFACE.SERIENNUMMER:KANAL.ON_TIME").State(RunSeconds);
    !Einschaltbefehl verzögert senden um Millisekunden 
    dom.GetObject("INTERFACE.SERIENNUMMER:KANAL.STATE").State(true, delay_ms);
}


!die Systemvariable verzögert setzen für die Pushmessage
delay_ms = delay_ms + ( RunSeconds * 1000 );
object SVObj = dom.GetObject(ID_SYSTEM_VARIABLES).Get("pocketControlPushMessage");
if (SVObj) {
    SVObj.State("Springbrunnen Ausschaltzeit erreicht", on_delay);
}
nur (m)ein Vorschlag....
Gruß
Harry

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“