# Auto-Charger Log Kleine Web-App, die die Ladevorgänge des Autos protokolliert. Die Daten kommen per MQTT von der **go-e Wallbox** (Device-ID `310014`), werden in einer **SQLite**-Datenbank gespeichert und als Tabelle mit Energie-Summen angezeigt. Läuft als zwei Docker-Container auf einem lokalen Server. ## Architektur | Container | Stack | Aufgabe | |-------------|--------------------------------|----------------------------------------------------| | `collector` | Python + `paho-mqtt` | MQTT abonnieren, abgeschlossene Ladungen → SQLite | | `web` | Next.js 16 / React 19 / Tailwind 4 | SQLite (read-only) lesen, Tabelle + Summen anzeigen | Beide teilen sich das Volume `./data` mit der Datei `charges.db`. Der Collector besitzt alle Schreibzugriffe, die Web-App liest nur. ## MQTT-Daten (go-e API v2) Basis-Topic `go-eCharger/310014/`: - `car` — Fahrzeug-Status (`1`=Idle, `2`=Charging, `3`=WaitCar, `4`=Complete). Steuert die Session-Erkennung: Start bei Wechsel nach `2`, Abschluss bei Wechsel nach `1` oder `4`. - `wh` — geladene Energie der aktuellen Ladung in Wh. - `cdi` — Objekt `{"type":1,"value":}` mit der Ladedauer in Millisekunden. ## Einrichtung ```bash cp .env.example .env # MQTT_USER / MQTT_PASS in .env eintragen docker compose up --build ``` Web-App danach unter `http://:8082/` (Port via `WEB_PORT` in `.env`). ## Konfiguration (`.env`) | Variable | Bedeutung | Default | |-------------------|--------------------------------------------|----------------------| | `MQTT_HOST` | MQTT-Broker | `nuccy` | | `MQTT_PORT` | MQTT-Port | `1883` | | `MQTT_USER/PASS` | MQTT-Credentials | – | | `MQTT_TOPIC_BASE` | Basis-Topic der Wallbox | `go-eCharger/310014` | | `DB_PATH` | Pfad der SQLite-DB im Container | `/data/charges.db` | | `TZ` | Zeitzone (für Monats-/Jahres-Summen) | `Europe/Berlin` | | `WEB_PORT` | Host-Port der Web-App | `8082` | ## Test ohne Auto Eine Ladung lässt sich per `mosquitto_pub` simulieren (Reihenfolge beachten): ```bash mosquitto_pub -h nuccy -t go-eCharger/310014/car -m 2 mosquitto_pub -h nuccy -t go-eCharger/310014/wh -m 7350 mosquitto_pub -h nuccy -t go-eCharger/310014/cdi -m '{"type":1,"value":3600000}' mosquitto_pub -h nuccy -t go-eCharger/310014/car -m 4 ``` Erwartung: eine neue Zeile (Dauer 1:00, Energie 7,35 kWh); die Summen aktualisieren sich beim Neuladen der Seite. ## Bekannte Einschränkung Der Collector hält den Session-Zustand nur im Speicher. Startet er mitten in einer laufenden Ladung, wird genau diese eine Ladung ggf. nicht (vollständig) erfasst.