ich habe das Weather.tcl-Script im Einsatz. Es wird bei mir alle 5 Minuten ausgeführt. Um die Ergebnisse nur dann in die Systemvariablen zu schreiben, wenn sie sich geändert haben (auf die Aktualisierung will ich triggern) habe ich das Script geringfügig angepasst. Ganz am Schluss wird ein Rega-Script zusammengestellt, dass die Systemvariablen aktualisiert. Jetzt wird vorher geprüft, ob der neue Wert sich vom bisherigen Wert unterscheidet. Nur dann wird die Systemvariable aktualisiert.
Die Umwandlung der ersten drei Systemvariablen in Integerwerte sind nötig, da die ermittelten Werte vom TCL-Script ohne Nachkommastellen sind.
So sehen jetzt die entsprechenden letzten Zeilen des Scripts aus:
Code: Alles auswählen
append rega_cmd "if (OTempO.State().ToInteger() <> $aCurrent(temp_c)) {OTempO.State('$aCurrent(temp_c)');}"
append rega_cmd "if (OHumiO.State().ToInteger() <> $humidity) {OHumiO.State('$humidity');}"
append rega_cmd "if (WindspeedO.State().ToInteger() <> $windspeed) {WindspeedO.State('$windspeed');}"
append rega_cmd "if (WinddirectionO.State() <> '$winddirection') {WinddirectionO.State('$winddirection');}"
append rega_cmd "if (WeatherO.State() <> '$aCurrent(condition)') {WeatherO.State('$aCurrent(condition)');}"
Gruß
EnergyStar