- charging_state Default 0→1 (EV Connected) wenn Register nicht lesbar
- EMS-Status auf INFO hochgestuft inkl. PV-Überschuss
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Modal zeigt EMS-Felder nur bei KATHREIN_WALLBOX (toggleEmsSection)
- openModal lädt ems_min_pv/timeout/target_hour/phases aus Gerätekonfig
- saveInverter speichert EMS-Parameter in inverters.json
- main.py übergibt EMS-Konfig aus inv_cfg an EmsController()
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>
127.0.0.1-Binding verursacht 502 Bad Gateway weil HA Supervisor Ingress
nicht von localhost aus verbindet. host_network: true + 0.0.0.0 ist die
korrekte Konfiguration für HAOS Add-ons.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Flask bindet auf 127.0.0.1 statt 0.0.0.0 — Port 8099 nicht mehr
direkt im LAN erreichbar (host_network: true umgeht sonst HA-Auth)
- XSS: esc() Funktion + HTML-Escaping für alle user-controlled Werte
in innerHTML (inv.name, modbus_ip, mqtt_topic_prefix, s.name, s.unit)
- API: POST /api/inverters-config validiert inverter_model, Port (1-65535),
Modbus-Adresse (1-247) vor dem Speichern
- _poll_loop: int()-Aufrufe in try/except — kein Thread-Crash bei
ungültiger Config
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Statt Modell-Name ("Growatt MIC 1500 TL-X") wird der vom User vergebene
Name ("Dach Süd") als HA-Gerätename in MQTT Discovery verwendet.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- SVG-Sparkline pro Sensor-Karte, farbkodiert nach device_class
- Backend: (timestamp, value) deque pro Sensor, API filtert auf 300s
- Kein Datenverlust bei Neustart (In-Memory, reicht für Trendanzeige)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Unbegrenzt viele Wechselrichter über Web UI verwaltbar (Add/Edit/Delete)
- Pro Wechselrichter: eigener Poll-Thread, MQTT-Topic-Präfix, HA Device
- Shared MQTT-Publisher: eine Verbindung für alle Wechselrichter
- Migration: bestehende Single-Inverter-Config wird automatisch übernommen
- Live-Daten: pro Wechselrichter mit Online/Offline-Badge
- config.yaml: nur noch MQTT global, Wechselrichter über /data/config.json
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>