Moin zusammen!
Bei mir kollidiert trotzdem noch etwas
Brauche mal Unterstützung von Script-Kennern
Jeden SONNTAG um 24:00, wenn die neue Woche startet, werden für den Monat - und somit für das Jahr - falsche Werte gerschrieben.
Und zwar eine fortlaufende Summierung. Warum?
Folgendes läuft bei mir:
täglich:
Code: Alles auswählen
var source = dom.GetObject("BidCos-RF.LEQ0644222:1.RAIN_COUNTER");
var weekday = system.Date("%u");
var rain_w = dom.GetObject("Regen WOCHE");
var rain_month;
if (weekday == "1") { rain_day = dom.GetObject("Regen MONTAG"); }
if (weekday == "2") { rain_day = dom.GetObject("Regen DIENSTAG"); }
if (weekday == "3") { rain_day = dom.GetObject("Regen MITTWOCH"); }
if (weekday == "4") { rain_day = dom.GetObject("Regen DONNERSTAG"); }
if (weekday == "5") { rain_day = dom.GetObject("Regen FREITAG"); }
if (weekday == "6") { rain_day = dom.GetObject("Regen SAMSTAG"); }
if (weekday == "7") { rain_day = dom.GetObject("Regen SONNTAG"); }
if (source)
{
var diff = source.Value() - source.LastValue();
if ( (1.0*diff) < 0.0)
{
diff = (1.0*diff) + source.ValueMax();
}
rain_day.State(1.0*(rain_day.State()) + diff);
rain_w.State(1.0*(rain_w.State()) + diff);
}
am Ender der Woche:
Code: Alles auswählen
var AlteVar=dom.GetObject("Regen WOCHE");
var NeueVar=dom.GetObject("Regen VORWOCHE");
var AlterWert=AlteVar.Value();
NeueVar.State(AlterWert);
am Ende des Monats/Anfang des Folge-Montas:
Alles im Abstand von 1 Sekunde, damit die Variblen erst übertragen und dann genullt werden; so die Theorie.
Aber irgendetwas paßt da nicht?!?