- web/lib/db.ts: pro Request frische readonly-Verbindung statt langlebigem
Singleton. Eine gecachte WAL-Verbindung bekommt Writes des Collectors über
den Docker-FUSE-Mount nicht mit -> Seite blieb leer.
- collector.py: connect_async + reconnect_delay_set statt connect(), damit ein
nicht erreichbarer Broker keinen Container-Crash-Loop auslöst, sondern
in-process mit Backoff neu versucht wird.
- docker-compose.yml: DB_PATH=/data/charges.db für den collector-Service
erzwungen, damit ein relatives DB_PATH aus .env (lokaler Lauf) im Container
nicht neben das gemountete Volume schreibt.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
MQTT-Collector (Python/paho-mqtt) speichert abgeschlossene go-e
Wallbox-Ladungen in SQLite; Next.js-Web-App zeigt sie als Tabelle mit
Energie-Summen (Monat/Jahr/gesamt) im werte-next-Design. Zwei
Docker-Container mit gemeinsamem DB-Volume.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>