diff --git a/ROADMAP.md b/ROADMAP.md index 24edf86..473acac 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,73 +1,34 @@ # ShineBridge — Roadmap +> Seit v1.9.0 reines Energiemanagement-Tool. Hardware-/Firmware-Roadmap (ShineLAN-X, ShineWifi-X, shinediag) liegt jetzt im separaten Repo `growatt-diagnose-tool`. + ## Bekannte Einschränkungen +- [ ] Firma: Wallbox lädt in einem ~6,5-Minuten-Zyklus (Laden→Abgeschlossen→Pausiert→Laden) statt durchzuladen — Root Cause noch offen, live-Diagnose folgt beim nächsten Ladevorgang - [ ] Growatt-only: Netzbezug nicht direkt messbar — nur Einspeisung via `power_to_grid` - [ ] Kathrein EVSE-Register 0x0060 (Charging-State) nur lesbar wenn Auto angeschlossen -- [ ] NuttX OTA noch nicht auf echter Hardware getestet --- -## Phase 2 — ShineBridge Add-on +## Nächste Schritte (Stand 2026-08-26) -- [x] Persistente History — SQLite `/data/history.db`, 7 Tage Retention (v1.3.0) -- [x] Konfig-Export/Import — JSON im Einstellungen-Tab (v1.3.0) -- [x] Goodwe GW10KN-ET — via goodwe-Bibliothek UDP/8899, 39 Sensoren (v1.4.0) -- [x] Kathrein Wallbox — Modbus TCP, 18 Sensoren + EMS-Controller (v1.5.0) -- [x] EMS-Controller — PV-Überschussladen + Zwangsladen-Fallback (v1.5.0) -- [x] EMS Web UI — Konfiguration direkt im Gerätedialog (v1.5.1) -- [x] grid_power Sensor — positiv = Netzbezug, negativ = Einspeisung (v1.5.2) -- [x] Energie-Dashboard — HA-Style SVG-Flussdiagramm, animateMotion (v1.6.0) -- [x] Abrechnungsperiode + Strompreise — kWh + Kosten je Periode (v1.7.0) -- [x] Flexibler Tarif — EPEX Spot (aWATTar DE/AT) + Aufschlag (v1.8.16) -- [x] Finanzen-Tab — Eigenversorgung, Spot-Vergleich, Abschlags-Tracker (v1.8.14–16) -- [x] Überschuss-Geräte — Zigbee2MQTT-Geräte bei PV-Überschuss steuern (v1.8.8–13) -- [x] Setup-Wizard — geführte Ersteinrichtung (MQTT + erster Wechselrichter) (v1.8.18) -- [x] Flash-Wizard — ShineLAN-X direkt aus Web UI flashen, OTA + ST-Link-Anleitung (v1.8.18) -- [x] Port-Sicherheit — `/api/*` nur über HAOS-Ingress erreichbar (v1.8.18) -- [x] MQTT rc=5 — Reconnect-Loop verhindert, Fehlermeldung im UI (v1.8.18) -- [x] Mobile-Layout — horizontaler Overflow behoben, Tabs scrollen (v1.8.19) -- [ ] Hausverbrauch als berechneter Sensor: `PV + Netzbezug − Einspeisung − Bat_Laden + Bat_Entladen` -- [ ] Weitere Growatt-Modelle — MOD 10000, SPH 10000 etc. -- [ ] Ladekosten-Berechnung: kWh je Session × Arbeitspreis +Reihenfolge nach Aufwand/Abhängigkeit, nicht nach Wichtigkeit — 1 und 2 zuerst, weil billig bzw. weil 6 davon abhängt. ---- +1. **Wallbox-Duplikat klären** — Firma-HA zeigt doppelte Wallbox-Sensor-Sets (`wallbox_ladezustand`/`_2`/`_3`). Echte zweite Wallbox oder Doppel-MQTT-Discovery? Klärt die Grundlage für Punkt 6. +2. **Automatischer täglicher Config-Export** — nach dem Datenverlust-Vorfall vom 25.08. (Uninstall+Reinstall löschte `/data`) eine zusätzliche Absicherung neben den HAOS-eigenen Backups. Export-Endpunkt (`/api/export-config`) existiert schon, braucht nur einen Cron-Trigger + Ablagepfad. +3. **Discord-Alerts** — bei Zwangsladen-Start, Fehlerzuständen (unbekannter Ladezustand), besonders günstigen Spot-Preisfenstern. Nutzt den bestehenden Homelab-Discord-Bot. +4. **Sessions pro Fahrzeug trennen** — falls mehrere Fahrer/Autos an einer Wallbox laden, aktuell nur eine Gesamt-Statistik. Hängt an Punkt 1. +5. **Lastspitzenkappung (Peak Shaving)** — Ladestrom drosseln, wenn Netzbezug (mehrere Autos + Haushalt gleichzeitig) einen Grenzwert überschreitet. Eigenes Sicherheits-Design nötig (was passiert bei Messfehler/Ausfall — nie ungebremst weiterladen). +6. **Mehrere Wallboxen fair verteilen** — verfügbaren PV-Überschuss/Netzanschluss zwischen mehreren Ladepunkten aufteilen statt jede unabhängig maximal ausreizen zu lassen. Hängt an Punkt 1. +7. **Prognosebasiertes Laden** — PV-Wetterprognose (z.B. Open-Meteo/Solcast) + Spot-Preis kombinieren, damit Zwangsladen nicht stur nach Timeout entscheidet, sondern z.B. "morgen wird's sonnig, noch etwas warten" berücksichtigt. Größter Umfang, externe API-Anbindung nötig. +8. **Chart-Feintuning** — läuft nebenbei mit, keine feste Priorität (z.B. Live-Kosten-Ticker statt nur Rückblick). -## Phase 3 — Hardware-Erweiterungen +## Erledigt vor dieser Roadmap (Kontext) -### ShineLAN-X (STM32F103RC) -- [x] dapboot + NuttX produktiv (v1.0.0) -- [x] OTA HTTP-Server implementiert — Zwei-Phasen Flash (Stage 1: Staging, Stage 2: SRAM) (v1.8.18) -- [ ] OTA auf echter Hardware validieren -- [ ] Weitere Firmware-Varianten (modellspezifische Builds) - -### Goodwe WiFi-Stick (WIFILAN_2.0 / HF-LPT230) -- [x] UDP/8899 Protokoll via goodwe-Bibliothek integriert (v1.4.0) -- [ ] JTAG-Analyse (TP15/TP16/TP17) — eigene Firmware wenn JTAG-eFuse nicht gesetzt -- [ ] RS485-Direktzugriff via 18-Pin-Stecker - -### ShineWifi-X als ShineBridge-Gateway -- [ ] Schlankes ESP8266-Projekt: RS485 → Modbus TCP Bridge -- [ ] Im ShineBridge Web UI verwaltbar (statt separater ESPHome-YAMLs) - ---- - -## Phase 4 — Energiebilanz & Dashboard - -- [x] Aggregat-Gerät „ShineBridge Gesamt" (v1.2.0) -- [x] EPEX Spot-Chart — 24h-Balkendiagramm im Energie-Dashboard (v1.8.16) -- [x] Eigenversorgungskarte — kWh + € gespart (v1.8.8) -- [ ] Virtuelle MQTT-Sensoren für HA Energie-Dashboard automatisch anlegen -- [ ] Prognose-gestütztes Laden — Spot-Preise × PV-Forecast für optimale Ladezeiten - ---- - -## ShineDiag — Vor-Ort-Diagnose - -- [x] WiFi-Hotspot „ShineDiag" (Pi 3B), http://10.0.1.1 (v2.0) -- [x] Alle Sensoren, Rohdaten-Register-Dump, JSON-Export (v2.0) -- [ ] Goodwe-Unterstützung (UDP/8899) -- [ ] Kathrein Wallbox (EMS-Status, Ladezustand) +- [x] `growatt-diagnose-tool`-Split — Flash/OTA, Setup-Wizard, ShineLAN-X, ShineWifi-X, shinediag ausgelagert (v1.9.0) +- [x] Finanzen-Chart komplett überarbeitet — Wochen-Aggregation, responsiv, Beispiel-Vorschau (v1.9.1–1.9.6) +- [x] ESPHome-Geräte-Anbindung (Long-Lived Token statt Supervisor-Proxy, `host_network` ist damit inkompatibel) (v1.10.0–1.10.3) +- [x] Firma-EMS-Fixes: konfigurierbarer Max-Ladestrom, Zwangsladen-Retry, Fehlerzustand-Handling (v1.8.31) --- @@ -101,3 +62,11 @@ | v1.8.24 | 2026-05-07 | Fix: WR/Wallbox-Offline-Flapping — erst nach 3 aufeinanderfolgenden Lesefehlern offline schalten | | v1.8.25 | 2026-05-07 | Fix: TCP-Timeout auf max. 40% des Poll-Intervalls begrenzt (Wallbox + Modbus) — verhindert Poll-Überlappung | | v1.8.26 | 2026-05-07 | Fix: EMS-Countdown läuft ohne Auto — Kathrein 0x0060 IllegalAddress = kein Fahrzeug (default war fälschlich 1=Connected) | +| v1.8.29 | 2026-05-26 | Fix: Port 8099 bindet auf 127.0.0.1 statt 0.0.0.0 | +| v1.8.30 | 2026-05-28 | Fix: Ingress-Fix — Flask wieder auf 0.0.0.0 | +| v1.8.31 | 2026-08-25 | Fix: Firma-EMS — konfigurierbarer Max-Ladestrom statt hardcoded 32A, Zwangsladen-Retry, Fehlerzustand pausiert statt zurückzusetzen | +| v1.9.0 | 2026-08-25 | Repositionierung: Flash/OTA, Setup-Wizard, ShineLAN-X, ShineWifi-X, shinediag ausgelagert nach `growatt-diagnose-tool` | +| v1.9.1–1.9.6 | 2026-08-25 | Finanzen-Chart: unlesbar bei vielen Tagen behoben, Wochen-Aggregation, abgerundete Balken, responsiv über gemessene Breite, Beispiel-Diagramm im Leerzustand | +| v1.10.0 | 2026-08-25 | Feature: Geräte-Typ "Growatt ShineWifi-X (ESPHome)" — liest Werte aus bestehenden HA-Entities | +| v1.10.1–1.10.2 | 2026-08-25 | Fix: Config-Import mit ha_entity-Geräten; Diagnose-Log für SUPERVISOR_TOKEN | +| v1.10.3 | 2026-08-25 | Fix: HA-Entity-Anbindung auf Long-Lived Access Token umgestellt (host_network + Supervisor-Token inkompatibel) |