Über die Kategorie Entwicklung & Bugs

Hast du einen Bug gefunden oder möchtest zur Weiterentwicklung von SFML beitragen? Hier werden Fehler gemeldet, diskutiert und Ideen für neue Features gesammelt. Bitte beschreibe Bugs so detailliert wie möglich (Version, Log-Ausgabe, HA-Version).

:bug: GitHub Issues: https://github.com/Zara-Toorox/Solar-Forecast-ML/issues

Vielen Dank Simon! Auch im Namen aller die daran mitwirken!

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