Wettervorhersage sammeln und archivieren (Open-Meteo)

gatherForecastData.py holt alle zwanzig Minuten Stunden- und Tageswerte und
schreibt sie nach solarLog (weatherHours, weatherDays, weatherForecastLog,
weatherTilted). Grundlage des neuen Meteogramms im Web-Repository.

Kein Anbau an gatherRainData.py, obwohl es dieselbe Schnittstelle benutzt:
dessen Fehlerregel ist sicherheitsrelevant - es leert bei einer Stoerung
bewusst seine Werte, damit der Runner nicht auf eine alte "0,0 mm" hin
giesst. Hier gilt das Gegenteil, eine Vorhersage von vor zwei Stunden ist
brauchbar und wird nur als alt beschriftet. Zwei gegenlaeufige Fehlerregeln
in einer Schleife waeren eine Falle.

Es wird nichts geloescht. Die Tabellen sind zugleich ein Archiv: aus der
Einstrahlung und EnergyFlow_hourly.pv_kwh soll spaeter eine eigene
Ertragsprognose gerechnet werden. 8.760 Zeilen im Jahr kosten 1,5 MB.

wetterarchiv_nachtragen.py fuellt das Archiv rueckwirkend aus der
ERA5-Schnittstelle von Open-Meteo - 39.264 Stunden ab dem 02.04.2022, dem
Beginn von EnergyFlow_hourly. Damit ist die Korrelation sofort rechenbar
statt erst in einem Jahr.

Sonnenzeiten schreibt es dabei ausdruecklich nicht: die Archiv-Schnittstelle
rechnet alle Zeiten mit dem heute gueltigen Zeitzonenversatz um und meldet
das auch selbst ("utc_offset_seconds: 7200" fuer einen Dezembertag).

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-21 13:54:31 +02:00
co-authored by Claude Opus 5
parent e43ef83d47
commit b40feeea23
5 changed files with 494 additions and 0 deletions
+26
View File
@@ -54,3 +54,29 @@ max_alter_stunden = 3
; Adresse der BMU. Ab Werk 192.168.16.254; der Abschnitt darf fehlen.
[byd]
host = 192.168.16.254
; ===========================================================================
; Wettervorhersage (gatherForecastData.py)
; ===========================================================================
; Grundlage des Meteogramms. Geschrieben wird in die Datenbank, nicht nach
; MQTT - die Zugangsdaten stehen in [database].
[vorhersage]
lat = 47.5780
lon = 10.2630
timezone = Europe/Berlin
; Was Open-Meteo hergibt. past_days traegt Bewoelkung, Strahlung und
; Niederschlag links vom Jetzt-Strich - beides misst die eigene Station nicht.
forecast_days = 7
past_days = 2
; Open-Meteo rechnet stuendlich neu. Zwanzig Minuten heisst: die laufende
; Stunde ist nie aelter als zwanzig Minuten, und 72 Abrufe am Tag liegen weit
; unter dem freien Kontingent.
intervall_minuten = 20
; Einstrahlung in Modulebene, je Flaeche "kuerzel:neigung:azimut".
; Neigung in Grad gegen die Waagerechte, Azimut in Grad mit 0 = Sued,
; negativ = Ost, positiv = West (so verlangt es Open-Meteo).
; Leer lassen, solange die Winkel nicht ausgemessen sind - dann wird die
; geneigte Einstrahlung uebersprungen und das Meteogramm merkt nichts davon.
; Nachtragen geht jederzeit, die Archiv-API liefert sie auch rueckwirkend.
; flaechen = dach:30:10, veranda:90:10, carport:15:10
flaechen =