Ondas[tm] hat geschrieben: ↑14.07.2020, 09:50
tut es nicht, hätte dem geneigten Leser aber auch auffallen können
Naja, es gibt wohl nur wenige die sich alle Scripte anschauen und sofort die Fehler entdecken. Obwohl das bei deinem Ansatz sehr leicht war.
kann nicht funktionieren.
Ich habe mir gemerkt:
.Value() = lesen;
.State(x) = schreiben. Und ja, es gibt auch Ausnahmen.
Außerdem würde ich mir angewöhnen immer den "sauberen" Zugriff auf Systemvariablen mit...
Code: Alles auswählen
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("hier_steht_mein_SysVar_Name")
zu verwenden. Du machst hüh und hott.
siehe:
Code: Alles auswählen
dom.GetObject (ID_SYSTEM_VARIABLES).Get ("Regen_gestern").Value ();
dom.GetObject("Regen_gestern").State(d);
Aber genug kritisiert, schließlich fängt jeder mal an.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Meine Umsetzung der Tagesregenmengen läuft ähnlich ab. Ein Programm was bei Aktualisierung der SysVar "ow Niederschlag" (welche selbst stündlich über die OpenWeatherMap-Abfrage aktualisiert wird) sowie zusätzlich zu einem festen Zeitpunkt (23:57Uhr) getriggert wird und folgendes Script ausführt:
Code: Alles auswählen
!- Regenmenge von OpenWeather Tagesregenmenge, Regenmenge gestern, Regenmenge vorgestern
!- @Baxxy v1.1
object owRegen = dom.GetObject(ID_SYSTEM_VARIABLES).Get("ow Niederschlag"); !- Originale Regenmengen-SysVar vom OpenWeatherMap Abfragescript
object owRegenHeute = dom.GetObject(ID_SYSTEM_VARIABLES).Get("ow Niederschlag Tag gesamt"); !- Summierte Tagesregenmenge-SysVar Typ Zahl
object owRegenGestern = dom.GetObject(ID_SYSTEM_VARIABLES).Get("ow Niederschlag Tag gesamt gestern"); !- Tagesregenmenge gestern - SysVar Typ Zahl
object owRegenVorgestern = dom.GetObject(ID_SYSTEM_VARIABLES).Get("ow Niederschlag Tag gesamt vorgestern"); !- Tagesregenmenge vorgestern - SysVar Typ Zahl
owRegenHeute.State(owRegen.Value() + owRegenHeute.Value()); !- Regenmenge von OpenWeathermap zur Tagesregenmenge-SysVar addieren
if(system.Date("%H:%M") == "23:57")
{
owRegenVorgestern.State(owRegenGestern.Value()); !- Regenmenge von Gestern in Vorgestern schreiben
owRegenGestern.State(owRegenHeute.Value()); !- Regenmenge von Heute in Gestern schreiben
owRegenHeute.State(0); !- Regenmenge Heute auf "0" setzen
}