- load_recent(): Window-Funktion durch pro-Sensor-Indexabfragen ersetzt
(SELECT ... ORDER BY ts DESC LIMIT N per sensor_id) — nutzt Index optimal,
kein Full-Table-Scan mehr auf 1M+ Zeilen beim Start
- Periodisches Cleanup: täglich via Daemon-Thread statt nur beim Start —
DB bleibt dauerhaft auf RETENTION_DAYS beschränkt
- RETENTION_DAYS: 7 → 14 (explizites Maximum per Konfiguration)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Täglicher Tarif-Tracking: kWh + EPEX-Ø-Preis werden ab jetzt täglich
gespeichert. Neuer Finanzen-Tab zeigt Balkendiagramm (Festpreis vs.
Spot hypothetisch), Summen-Karten und Empfehlung ob flexibler Tarif
sich lohnen würde.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sensorwerte werden in /data/history.db (SQLite, WAL-Modus) persistiert
und überleben damit Add-on-Neustarts. Beim Start werden die letzten 300
Messpunkte pro Sensor in die In-Memory-Deque geladen, sodass Sparklines
sofort Daten zeigen. Retention: 7 Tage. Neue API: GET /api/history.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>