Erklärung: SFML – End-of-Day Workflow -> was passiert da?!

Solar Forecast ML – End-of-Day Workflow erklärt

Jeden Abend führt die Integration automatisch einen umfangreichen Lernprozess durch. Hier ist, was am 28.02.2026 passiert ist:


Ablauf & was jeder Schritt bedeutet

1. Start & Tagesabschluss (23:30:00)

Das End-of-Day-Workflow startet und schließt den Tag ab:

2026-02-28 23:30:00.488 INFO  END-OF-DAY WORKFLOW STARTED at 2026-02-28 23:30:00
2026-02-28 23:30:00.493 INFO  Excluded hours info for 2026-02-28: 2/24 (8.3%), reasons: {'unexpected_clouds': 2}
2026-02-28 23:30:00.509 INFO  Day finalized: yield=6.00 kWh, consumption=12.59 kWh, accuracy=93.5%
  • Ertrag heute: 6,00 kWh (Solar-Produktion)
  • Verbrauch: 12,59 kWh
  • Prognosegenauigkeit: 93,5% – eine sehr gute Tagesgenauigkeit
  • Ausgeschlossene Stunden: 2 von 24 (8,3%) wegen unerwarteter Wolken – diese Stunden fließen nicht in das Training ein, da die Wetterdaten nicht mit der Realität übereinstimmten
  • Tages-Endwert korrigiert: 5,61 → 6,00 kWh (Intraday-Schätzung vs. tatsächlicher Abschluss)
2026-02-28 23:30:00.584 INFO  Day 2026-02-28 moved to history: 5.61 → 6.00 kWh

2. Tages-Zusammenfassung & Statistiken

Ein tägliches Summary wird in der Datenbank gespeichert und die historischen Statistiken aktualisiert. Der Tag wandert damit ins Langzeit-Archiv.

2026-02-28 23:30:00.570 INFO  Created daily summary for 2026-02-28
2026-02-28 23:30:00.618 INFO  Statistics calculated successfully

3. Wetter-Präzisionsanalyse

Die Wetter-KI vergleicht die vorhergesagten Wetterdaten mit den tatsächlich gemessenen Werten für 22 von 24 Stunden:

2026-02-28 23:30:00.619 INFO  Calculating weather precision for 2026-02-28
2026-02-28 23:30:00.623 INFO  Loaded actual weather for 22 hours
2026-02-28 23:30:00.625 INFO  Loaded raw forecasts for 24 hours
2026-02-28 23:30:00.830 INFO  Compared 22 hours successfully
2026-02-28 23:30:01.042 INFO  Updated rolling factors: 8 days (clear=0, cloudy=6), solar=0.714, hourly_hours=7
2026-02-28 23:30:01.043 INFO  Correction factors calculated: {'temperature_offset': -0.39, 'pressure_offset': -4.4,
                              'solar_radiation_wm2_factor': 0.661, 'clouds_factor': 0.748,
                              'humidity_factor': 0.839, 'wind_factor': 0.758, 'rain_diff': 0.0}
Faktor Korrekturwert Bedeutung
Temperatur-Offset −0,39 °C Wettermodell etwas zu warm
Druck-Offset −4,4 hPa Luftdruck leicht überschätzt
Solarstrahlung 0,661 Sonne wurde um ~34% überschätzt
Bewölkung 0,748 Wolken etwas zu niedrig prognostiziert
Luftfeuchtigkeit 0,839 Trockenere Vorhersage als Realität
Wind 0,758 Wind leicht unterschätzt
Niederschlag 0,0 Kein Regen – passt

Rolling Factors (gleitende 8-Tages-Korrektur): solar=0.714 – die Integration weiß, dass aktuelle Wetter-Rohdaten die Sonneneinstrahlung tendenziell überschätzen, und korrigiert das automatisch.


4. Weather MLP – Neuronales Netz für Wetter-Korrekturen

Ein kleines neuronales Netz (MLP) wird mit 239 Datenpunkten neu trainiert, um Wetterfehler systemisch zu erkennen:

2026-02-28 23:30:01.063 INFO  Weather MLP training: 239 samples, 8 features
2026-02-28 23:30:01.429 DEBUG Weather MLP epoch 10: train_loss=0.057565, val_loss=0.108755
2026-02-28 23:30:01.773 INFO  Weather MLP early stopping at epoch 20
2026-02-28 23:30:01.776 INFO  Weather MLP trained: R²=0.181, RMSE=0.3298, samples=239, epochs=20
2026-02-28 23:30:01.800 INFO  Weather MLP weights saved: 239 samples, R²=0.181
  • R² = 0,181 – noch relativ schwach, was bedeutet: Die Wettervorhersagefehler sind aktuell noch schwer vorherzusagen. Das verbessert sich mit mehr Datentagen.
  • Early Stopping bei Epoche 20 von 50 – das Modell hat sich früh stabilisiert

5. Haupt-KI-Training (Hubble-KI Ensemble)

Das ist das Herzstück des EOD – die Prognosemodelle werden neu trainiert:

Ridge-Modell (schnell, stabil):

2026-02-28 23:30:03.576 INFO  Prepared 455 training samples from 59 days, 2 outputs
2026-02-28 23:30:03.589 INFO  Training Ridge with 455 samples...
2026-02-28 23:30:04.054 INFO  Selected alpha = 100.0 (LOO-CV MSE = 0.001825)
2026-02-28 23:30:04.597 INFO  TinyRidge trained: alpha=55.0000, R²=0.961, RMSE=0.0389, samples=455, outputs=2
2026-02-28 23:30:04.598 INFO  Ridge trained: R²=0.961, alpha=55.0000
  • 455 Trainingsproben aus 59 Tagen
  • R² = 0,961 – sehr hohe Güte, das Ridge-Modell kennt die Muster sehr gut
  • Optimaler Regularisierungsparameter (Alpha) = 100.0

Hybrid KI-Modell (tiefes Lernen, 23:30:04 – 23:37:18 = ~7 Minuten Training!):

2026-02-28 23:30:04.598 INFO  Training LSTM with 455 samples...
2026-02-28 23:30:04.598 INFO  Training V3.0: 455 samples, 200 epochs, 2 outputs
2026-02-28 23:30:51.285 INFO  Epoch 10: train=0.0009, val=0.0019, lr=0.004970
2026-02-28 23:31:37.587 INFO  Epoch 20: train=0.0009, val=0.0018, lr=0.004880
2026-02-28 23:32:24.290 INFO  Epoch 30: train=0.0009, val=0.0017, lr=0.004733
2026-02-28 23:33:10.648 INFO  Epoch 40: train=0.0008, val=0.0017, lr=0.004532
2026-02-28 23:33:57.400 INFO  Epoch 50: train=0.0008, val=0.0018, lr=0.004282
2026-02-28 23:34:43.981 INFO  Epoch 60: train=0.0008, val=0.0017, lr=0.003990
2026-02-28 23:35:30.417 INFO  Epoch 70: train=0.0007, val=0.0017, lr=0.003662
2026-02-28 23:36:17.123 INFO  Epoch 80: train=0.0008, val=0.0018, lr=0.003307
2026-02-28 23:37:04.076 INFO  Epoch 90: train=0.0007, val=0.0017, lr=0.002933
2026-02-28 23:37:17.975 INFO  Early stopping at epoch 93
2026-02-28 23:37:18.474 INFO  Training complete: R2=0.731, RMSE=0.083 kWh, outputs=2, layers=2, heads=4
2026-02-28 23:37:18.475 INFO  LSTM trained: R²=0.731, epochs=93, layers=2, heads=4
2026-02-28 23:37:18.475 INFO  Active model: LSTM (455 samples)
  • 455 Proben, 200 Epochen geplant, Early Stopping bei Epoche 93
  • R² = 0,731 – solider Wert, die KI lernt die zeitlichen Muster
  • RMSE = 0,083 kWh – durchschnittlicher Fehler pro prognostizierte Stunde
  • Architektur: 2 Schichten, 4 Attention-Heads (Transformer)
  • Aktives Modell: Hybrid-KI – das bessere Modell gewinnt automatisch und wird für die Prognose genutzt

Die Gewichte werden in der Datenbank gespeichert und für die Saison Frühling/2026 archiviert.

2026-02-28 23:37:20.355 DEBUG Model weights saved to structured tables
2026-02-28 23:37:20.509 INFO  Model archived for season spring/2026
2026-02-28 23:37:20.509 INFO  Training complete: active=tiny_lstm, R²=0.731, RMSE=0.083kWh, samples=455, outputs=2
2026-02-28 23:37:20.514 INFO  AI model trained: R²=0.731, RMSE=0.083kWh, samples=455, features=31, outputs=2, attention=ON

6. Methoden-Lernphase

Die Integration lernt, welche Vorhersagemethode unter welchen Bedingungen am besten funktioniert (Wetterlage × Tageszeit):

2026-02-28 23:37:20.543 INFO  Method learning [overcast/morning]:      physics_mae=0.0425, ai_mae=0.0167, advantage=2.00
2026-02-28 23:37:20.545 INFO  Method learning [partly_cloudy/morning]: physics_mae=0.3592, ai_mae=0.0160, advantage=2.00
2026-02-28 23:37:20.546 INFO  Method learning [partly_cloudy/midday]:  physics_mae=0.2023, ai_mae=0.1553, advantage=1.30
2026-02-28 23:37:20.547 INFO  Method learning [partly_cloudy/afternoon]:physics_mae=0.1037, ai_mae=0.0800, advantage=1.30
2026-02-28 23:37:20.549 INFO  Method learning [clear/afternoon]:        physics_mae=0.0140, ai_mae=0.0616, advantage=0.50
2026-02-28 23:37:20.556 INFO  Method performance learning completed for 2026-02-28
Szenario Bestes Modell Vorteil
Bedeckt / Morgen KI (Hybrid) ×2,00 besser als Physik
Teilbewölkt / Morgen LSTM ×2,00 besser
Teilbewölkt / Mittag Physik/Ridge ~gleichwertig
Klar / Nachmittag Physik Physik gewinnt knapp

→ Bei diffusem Licht (bedeckt, morgens) ist KI klar überlegen. Bei klarem Wetter ist die Physik-Berechnung manchmal präziser – die Integration nutzt automatisch das jeweils beste Verfahren.


7. Ensemble-Gewichtung

Für jede Kombination aus Panel-Gruppe × Wetterlage × Tageszeit werden die optimalen Mischungsverhältnisse zwischen KI und Ridge berechnet:

2026-02-28 23:37:20.559 INFO  Ensemble weight [Gruppe 1/overcast/morning]:      lstm=0.81 ridge=0.19 (lstm_mae=0.0103, ridge_mae=0.0441)
2026-02-28 23:37:20.560 INFO  Ensemble weight [Gruppe 2/overcast/morning]:      lstm=0.81 ridge=0.19 (lstm_mae=0.0098, ridge_mae=0.0431)
2026-02-28 23:37:20.564 INFO  Ensemble weight [Gruppe 1/partly_cloudy/midday]:  lstm=0.45 ridge=0.55 (lstm_mae=0.1036, ridge_mae=0.0844)
2026-02-28 23:37:20.581 INFO  Ensemble group weight learning completed: 20 buckets updated
  • Beispiel: Bei Gruppe 1, bedeckt morgens → KI 81% / Ridge 19%
  • Bei teilbewölkt mittags → Ridge gewinnt leicht (55% Ridge, 45% KI)

Das System passt diese Gewichte täglich an.


8. Physik-Kalibrierung

Der Physik-Simulator (der auf Sonnenbahn + GHI-Strahlung basiert) wird für beide Panel-Gruppen kalibriert:

2026-02-28 23:37:20.640 DEBUG Actual-weather physics for Gruppe 1 hour 7: 0.0054 kWh (theoretical=0.0375, ghi_ratio=0.14)
2026-02-28 23:37:20.640 DEBUG Clamping outlier: Gruppe 1 hour 7, ratio=7.43 -> 3.00
2026-02-28 23:37:20.643 DEBUG Actual-weather physics for Gruppe 2 hour 17: 0.0138 kWh (theoretical=0.0092, ghi_ratio=11.98)
2026-02-28 23:37:21.730 DEBUG Saved calibration config to database
2026-02-28 23:37:22.082 INFO  Physics calibration SUCCESS for 2026-02-28: Updated 2 groups
  • Einige Stunden zeigten Ausreißer (z.B. Stunde 7 mit ratio=7,43) – diese werden automatisch auf einen sinnvollen Maximalwert begrenzt (clamping → 3,00)
  • Gruppe 2, Stunde 17: ghi_ratio=11,98 – sehr ungewöhnlicher Wert (evtl. Reflexion oder Sensorausreißer), ebenfalls geclampt
  • Ergebnis: Physik-Kalibrierung für beide Gruppen erfolgreich aktualisiert

9. Wetter-Experten-Blending & Sichtweiten-Lernen

Die Integration nutzt mehrere Wetterquellen (ICON, GFS, ECMWF, PirateWeather) und lernt, welche bei welchen Bedingungen zuverlässiger ist:

2026-02-28 23:37:26.834 INFO  Learned from 2026-02-28: 22 hours across 3 cloud types
                              (buckets: overcast:6h, mixed:3h, clear:13h)
2026-02-28 23:37:26.851 INFO  VisibilityLearner for 2026-02-28: 2 fog, 1 fog_light hours.
                              Accuracy: BrightSky=0.0%, PirateWeather=0.0%
2026-02-28 23:37:26.852 INFO  Weather expert learning SUCCESS for 2026-02-28
2026-02-28 23:37:26.859 DEBUG No snow predictions for 2026-02-28
  • Heute: 6h bedeckt, 3h wechselhaft, 13h klar
  • Nebel-Erkennung: 2 Fog-Stunden, 1 leichter Nebel erkannt
  • Genauigkeit der Wetterquellen bei Nebel: 0% (beide Quellen haben Nebel nicht vorhergesagt) → wird für zukünftige Kalibrierung gespeichert
  • Kein Schnee heute

10. Schattenmuster-Lernen

2026-02-28 23:37:27.350 INFO  Shadow pattern learning for 2026-02-28 [_system_]:
                              13 hours, 0 patterns updated, 9 fixed obstructions
2026-02-28 23:37:27.351 INFO  Fixed obstruction hours detected [_system_]: [6, 8, 10, 15, 16, 17, 18, 19, 20]
2026-02-28 23:37:27.355 DEBUG No shadow data for 2026-02-28/Gruppe 1 - skipping learning
2026-02-28 23:37:27.358 DEBUG No shadow data for 2026-02-28/Gruppe 2 - skipping learning
  • System-Ebene: 13 Stunden gelernt, 9 feste Hindernisse erkannt (Stunden 6, 8, 10, 15–20) – z.B. Gebäude, Bäume die zu bestimmten Zeiten Schatten werfen
  • Gruppe 1 & 2: Kein Schatten-Tracking-Daten für heute → übersprungen

11. Drift-Erkennung

Das System überwacht, ob das KI-Modell mit der Zeit “abdriftet” (also schlechter wird):

2026-02-28 23:37:28.245 INFO  Drift detection complete: 24 metrics saved, 5 events created
2026-02-28 23:37:28.246 INFO  Drift detection completed for 2026-02-28: 24 metrics, 5 events, 3 scopes
  • 24 Metriken analysiert, 5 Drift-Events erkannt in 3 Bereichen
  • Das bedeutet: Es gibt leichte Veränderungen im Verhalten – das System hat diese erkannt und wird entsprechend gegensteuern

Fazit

2026-02-28 23:37:28.261 INFO  EOD duration saved: 447.8s for 2026-02-28
2026-02-28 23:37:28.261 INFO  End-of-day workflow completed (15/15 steps, 447.8s)

Der End-of-Day-Workflow vom 28.02.2026 ist vollständig und fehlerfrei durchgelaufen – alle 15 von 15 Schritten erfolgreich in 7 Minuten 28 Sekunden (447,8s).

Was das für dich bedeutet:

Kennzahl Wert Bewertung
Tagesgenauigkeit 93,5% Sehr gut
LSTM R² 0,731 Gut (wächst mit mehr Daten)
Ridge R² 0,961 Ausgezeichnet
Trainingsdaten 59 Tage / 455 Proben Wächst täglich
Wetter-Korrekturfaktor Solar 0,661–0,714 Wetterdienst überschätzt Sonne – wird automatisch korrigiert

Die Integration lernt jeden Abend selbstständig dazu. Mit jedem weiteren Tag verbessern sich KI-R² und die Ensemble-Gewichtungen. Der Prozess läuft vollständig lokal und autonom – kein manueller Eingriff nötig → keine Daten verlassen das System!

6 „Gefällt mir“