UPDATE // RELASE NOTES Solar Forecast ML

SOLAR FORECAST ML FULL UPDATE 16.8.4

Solar Forecast ML → 16.8.4
Solar Forecast STATS → 12.2.0
Solar Forecast GPM → 10.0.0

:hammer_and_wrench: Detaillierte Bugfix- & Feature-Liste

:snowflake: Frost-Bug & Shadow Detection

  • None-Typ Fix (6 Stellen): Der String "none" wurde fälschlicherweise als Python True gewertet. Dadurch meldete die Shadow Detection “Panel Frost” bei 13°C Sonnenschein, Daily Summaries zählten jede Stunde als Frost und der Data Manager lieferte falsche Bool-Werte. Behoben in: data_weather_actual_tracker, data_shadow_detection, data_daily_summaries, data_manager, physics_calibrator, data_frost_detection.
  • Frost-Override: Die Prüfung basiert nun auf expliziten Frost-Werten statt auf einem einfachen “Truthiness-Check”.
  • Root-Cause Übersetzung: Fehlermeldungen wie “night”, “clouds” oder “panel_frost” werden nun nativ in DE, FR, ES und RU ausgegeben (EN als Fallback).

:file_cabinet: Datenbank & Stabilität (Concurrency)

  • DB-Locking (Async-Sicherheit): Komplette Überarbeitung mittels asyncio.Lock (_write_lock), um alle Schreibzugriffe zu serialisieren.
  • Retry-Logik: Neuer Mechanismus _retry_on_locked() mit 5 Versuchen und exponentiellem Backoff ($0.2s \times 3^n$, maximal 5s + Jitter).
  • Journal-Modus DELETE: Umstellung von WAL auf DELETE zur Sicherstellung der Kompatibilität mit SFML Stats, ML Weather und Grid Price Monitor, wenn diese gleichzeitig auf dieselbe DB zugreifen.
  • Robustheit: busy_timeout = 60s und synchronous = NORMAL für stabilen Multi-User-Zugriff.
  • Atomare Schreibvorgänge: transaction() Context-Manager für Multi-Statement-Writes unter einem aktiven Lock.
  • Flächendeckende Retries: Implementierung auf execute(), commit(), executemany(), fetchone() und fetchall().

:abacus: Physics Calibrator (Mathematik & Logik)

  • Actual-Weather-Baseline: Korrekturfaktoren nutzen nun reale GHI-Werte vom Strahlungssensor statt Vorhersagedaten.
    • Formel: $theoretical_kwh \times \min(actual_ghi / clear_sky_ghi, 1.5)$
  • Adaptives EMA-Alpha: Dynamische Gewichtung der Glättung: $\min(0.40, 0.15 + |deviation| \times 0.15)$. Größere Abweichungen werden so schneller gelernt.
  • Soft-Cap: Ausreißer-Ratios werden auf $[0.4, 2.5]$ geclampt, statt Datenpunkte komplett zu verwerfen.
  • Dynamisches Clamping: Anpassung der Korrektur-Grenzen von $[0.5, 2.0]$ auf $[0.4, 2.5]$.

:date: Datenauswertung & Retention

  • EOD-Datum: Die End-of-Day Auswertung wurde von gestern auf das korrekte aktuelle Datum umgestellt.
  • DB-Migration: Spalte eod_duration_seconds wurde erfolgreich in die Tabelle daily_summaries migriert.
  • Retention-Fix: Die harte Löschregel von 30 Tagen wurde entfernt; Daten bleiben dauerhaft erhalten.
  • Sensor-Audit: Alle Sensoren wurden einzeln auf Korrektheit geprüft und kalibriert.

:three_o_clock: Midday Check & Forecast-Anpassung

  • MDC Hour-12 Gap: Logikfehler behoben ($hour \le current_hour$ wurde zu $hour < current_hour$).
  • Manual Service: run_midday_check(manual=True) erlaubt nun den sofortigen Start ohne Cooldown oder Kriterien-Prüfung. ACHTUNG DEV-ONLY!!!
  • Schwellwerte: Dynamische Auslöseschwellen für den Midday-Check implementiert ACHTUNG DEV-ONLY!!!

:gear: Services & Config Flow

  • Panel Group Sanity: Dynamischer Schwellwert $capacity_kwp \times 1.3$ (mind. 10.0 kWh) statt statischem Festwert.
  • Test-Service: test_morning_routine liefert nun volle Validierung, Feedback und Tracebacks bei Fehlern.
  • Config Flow UI: Komplett neue Gestaltung mit Emojis, präzisen Bezeichnungen (Einheiten, DC/AC) und Hinweisen auf benötigte physische Sensoren.

:artist_palette: Rebranding & UI (SFML Stats & GPM)

  • Solar Forecast STATS (v12.2.0):
    • Vollständiges Rebranding und UI-Überarbeitung analog zum Hauptmodul.
    • Genauigkeits-Logik: Umbenennung in “Abweichung” mit Vorzeichen (+/- %). Überproduktion wird nun korrekt positiv dargestellt, keine Deckelung bei 100%.
    • Liquid Glass Theme: Neues Design mit Glasmorphismus und 3-Wege-Toggle (Dark/Glass/Light).
    • Performance: Behebung von RAM-Lags bei der Datenverarbeitung.
  • Solar Forecast GPM (v10.0.0): Namensänderung von “Grid Price Monitor”.
  • Global: Neue Brand Icons und Logos für alle 3 Integrationen; neue Sprachen: Spanisch, Französisch, Russisch.

Fuel my late-night ideas with a coffee? I’d really appreciate it! - keep this project running!

Buy Me a Coffee

3 „Gefällt mir“