Files
auto-charger/README.md
T
admin 7dd3215520 Initial commit: Auto-Charger Logging Web-App
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>
2026-07-03 19:12:04 +02:00

2.9 KiB
Raw Blame History

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/<key>:

  • 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":<ms>} mit der Ladedauer in Millisekunden.

Einrichtung

cp .env.example .env
# MQTT_USER / MQTT_PASS in .env eintragen
docker compose up --build

Web-App danach unter http://<server>: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):

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.