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
Detaillierte Bugfix- & Feature-Liste
Frost-Bug & Shadow Detection
- None-Typ Fix (6 Stellen): Der String
"none"wurde fälschlicherweise als PythonTruegewertet. 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).
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 = 60sundsynchronous = NORMALfü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()undfetchall().
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]$.
Datenauswertung & Retention
- EOD-Datum: Die End-of-Day Auswertung wurde von gestern auf das korrekte aktuelle Datum umgestellt.
- DB-Migration: Spalte
eod_duration_secondswurde erfolgreich in die Tabelledaily_summariesmigriert. - 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.
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!!!
Services & Config Flow
- Panel Group Sanity: Dynamischer Schwellwert $capacity_kwp \times 1.3$ (mind. 10.0 kWh) statt statischem Festwert.
- Test-Service:
test_morning_routineliefert 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.
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!
