Script / Frage zum Zeitstempel einer Systemvariablen

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
Benutzeravatar
SHC
Beiträge: 202
Registriert: 24.10.2007, 13:57

Script / Frage zum Zeitstempel einer Systemvariablen

Beitrag von SHC » 30.05.2018, 09:38

Hallo zusammen,

ich habe ein wenig mit verschiedenen Methoden "gespielt" und mir ist dabei ausfgefallen, dass zwar beide Methoden eine Systemvariable korrekt beschreiben, aber nur eine davon auch den Zeitstempel anpasst. Grundsätzlich werden Temperaturen in eine Systemvariable vom Typ "Zahl" geschrieben.

Diese Version ist (leicht abgewandelt) aus den Beispielen von eQ3 und verändert den Wert der Systemvariable korrekt, aber nicht den Zeitstempel:

Code: Alles auswählen

var source   = dom.GetObject("$src$");
var TempHoch = dom.GetObject("Temp_TagesHoch");

if (source)
	{if (source.Value() > TempHoch.Variable())
		{TempHoch.Variable(source.Value());
		}
	}
Diese Version verändert den Wert der Systemvariable und den Zeitstempel korrekt:

Code: Alles auswählen

var     source         = dom.GetObject("$src$");
integer TempAkt        = dom.GetObject(source).Value();
integer TempHoch       = dom.GetObject("Temp_TagesHoch").Value();

if (source)
	{if (TempAkt > TempHoch)
		{dom.GetObject("Temp_TagesHoch").State(TempAkt);
		}
	}
Mich würde interessieren, warum die erste Methode den Zeitstempel nicht verändert, aber den Wert der Systemvariable selber schon.


Vielen Dank,
SHC

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Script / Frage zum Zeitstempel einer Systemvariablen

Beitrag von alchy » 30.05.2018, 16:59

.State() vs. .Variable()
bietet noch weitere Fallstricke.
Versuch mal auf das Ändern eines Wertes einer Systemvariable ein Programm zu triggern, wenn du es mit .Variable() setzt.
*IMHO* : vergiss Variable() benutze .State() zum Setzen und .Value() zum Auslesen der Werte.
Ein Vorteil von .Variable() beim Setzen von Werten ist mir nicht bekannt, aber der ein oder andere Fallstrick.

Alchy

Blacklist................... almost 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.

Benutzeravatar
SHC
Beiträge: 202
Registriert: 24.10.2007, 13:57

Re: Script / Frage zum Zeitstempel einer Systemvariablen

Beitrag von SHC » 30.05.2018, 17:03

Hallo Alchy,

vielen Dank für die Info!

Mir war die Funktion .Variable() komplett neu - ich hatte mich brav bei EQ3 eingelesen und dort wird dies bei den Beispielen beschrieben. Ich wunderte mich dann nur, weswegen der Zeitstempel sich nicht verändert..... ;-)


Beste Grüße,
SHC

alchy
Beiträge: 10754
Registriert: 24.02.2011, 01:34
System: CCU
Hat sich bedankt: 65 Mal
Danksagung erhalten: 673 Mal

Re: Script / Frage zum Zeitstempel einer Systemvariablen

Beitrag von alchy » 30.05.2018, 17:09

Ja mir ist bekannt, das in der Doku oftmals. Variable() verwendet wird.
Kannst ja mal die Frage stellen an einen der Cracks, vielleicht meldet sich ja wer noch hier und belehrt mich eines Besseren.

Alchy

Blacklist................... almost 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.

Antworten

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