duralis hat geschrieben: Gehört die Temperatur von 0:00 schon zum neuen Tag (wie mein Script rechnet) oder noch zum alten Tag?
Eigentlich ist die Wikipedia-Aussage:
von 0 bis einschließlich 23 Uhr UTC (also von 1 bis einschließlich 0 Uhr MEZ recht eindeutig. Der Bezug ist eindeutig UTC. Da wir uns mit MEZ bei UTC+1 befinden (oder MESZ=UTC+2 derzeit), gehört 0:00 Uhr-Wert zum Vortag und Deine Berechnung um 0:00 Uhr ist zur Winterzeit korrekt. Während der Sommerzeit muss die Berechnung beim Bezug auf 23:00 Uhr UTC eben um 01:00 Uhr MESZ laufen. So habe ich es bei mir zur Zeit umgesetzt.
Ich habe derzeit bei mir den Berechnungszeitpunkt mit:
Code: Alles auswählen
if (((system.Date("%H").ToInteger() == 0) && (system.Date("%Z").ToString() == "CET")) || ((system.Date("%").ToInteger() == 1) && (system.Date("%Z").ToString() == "CEST")))
programmiert.
Weiterhin habe ich noch den Berechnungsblock im Script nach hinten verschoben, dass zuerst noch der 0:00 Uhr-Wert auf den Tagessummenwert addiert und dann die Berechnung durchgeführt wird. Im Anschluss nulle ich dann den Summenwert, dass beim nächsten Scriptlauf (01:00 Uhr MEZ oder eben 02:00 Uhr MESZ) wieder mit der neuen Summe begonnen wird. In Deiner obigen Variante wird immer der 0:00 Uhr-Wert als erster Summand hinterlegt. Das macht sicher bei der Berechnung nicht viel aus, weil es eigentlich für eine Mittelwertbildung relativ egal ist, ob die Werte von 0:000 bis 23 Uhr oder von 01:00 bis 00:00 Uhr summiert werden. Der Genauigkeit tut das keinen großen Abbruch, ist aber nicht entsprechend der Definition.
Solltest Du den CUxD-Timer auf eine Triggerzeit von xx:50 Uhr anpassen, musst Du auch wieder die Triggerstunden zur Berechnung anpassen, da Du dann ja "eine Stunde vorher" bist. Wobei ein Scriptlauf nicht zur vollen Stunde grundsätzlich zielführend ist, weil bei mir z.B. bei Tageswechsel zur vollen Stunde auch andere Scripte laufen. Das würde das alles etwas entzerren. Muss ich mal hirnen.
Gruß Xel66