Fix: Regen letzter Monatstag fehlt (kumulativer Zähler)

Query um +1 Tag erweitert, damit der erste Wert des Folgetags als
Abschlusswert für den letzten Tag verfügbar ist. Ohne diesen Wert
liefert max-min = 0 wenn der Zähler nur einmal pro Tag aktualisiert wird.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
rxf
2026-06-01 21:22:00 +02:00
parent 37127fada3
commit 91f4a7e4d2
+12 -3
View File
@@ -85,8 +85,11 @@ def _data_temp_hourly(start: datetime, end: datetime):
def _data_rain_daily(start: datetime, end: datetime):
# +1 Tag extra damit der Abschlusswert des letzten Tages (kum. Zähler) enthalten ist
data = fetch("/weather/range", {
"start": start.isoformat(), "end": end.isoformat(), "limit": 50000,
"start": start.isoformat(),
"end": (end + timedelta(days=1)).isoformat(),
"limit": 50000,
})
by_day: dict[str, list[float]] = defaultdict(list)
for d in data:
@@ -95,11 +98,17 @@ def _data_rain_daily(start: datetime, end: datetime):
dates, rain = [], []
for day_key in sorted(by_day):
vals = by_day[day_key]
day_dt = datetime.fromisoformat(day_key).replace(tzinfo=timezone.utc)
if day_dt >= end:
break
vals = list(by_day[day_key])
next_key = (day_dt + timedelta(days=1)).strftime("%Y-%m-%d")
if next_key in by_day:
vals.append(by_day[next_key][0])
daily = max(vals) - min(vals)
if daily < 0:
daily = max(vals)
dates.append(datetime.fromisoformat(day_key).replace(tzinfo=timezone.utc))
dates.append(day_dt)
rain.append(round(daily, 1))
return dates, rain