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).
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 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).
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().
Physics Calibrator (Mathematik & Logik)
Actual-Weather-Baseline: Korrekturfaktoren nutzen nun reale GHI-Werte vom Strahlungssensor statt Vorhersagedaten.