Files
Shinebridge/ROADMAP.md
T
retr0andClaude Sonnet 5 8f5106e3a0 ShineBridge v1.12.0 — Feature: Prognosebasierter Zwangslade-Timeout (Open-Meteo)
Neuer Standort-Bereich im Einstellungen-Tab (Breitengrad/Längengrad, optional,
site-weit statt pro Gerät). Neues Modul weather_forecast.py fragt Open-Meteos
kostenlose stündliche Solarstrahlungs-Prognose (shortwave_radiation, 48h
voraus, timezone=auto) ab, gecacht alle 3h.

adjusted_timeout_h() passt den Zwangslade-Timeout adaptiv an:
- bald nennenswerte Sonne zu erwarten (naechste 3h) -> Timeout verlaengern
  (x1.75, gedeckelt auf Basiswert+4h)
- auch im 12h-Fenster keine nennenswerte Sonne zu erwarten -> Timeout
  verkuerzen (x0.5, min. 0.5h) statt sinnlos den vollen Timeout abzuwarten
- ohne Standort (lat/lon leer): unveraendertes Verhalten, Feature ist Opt-in

EmsController.update() bekommt einen neuen optionalen timeout_override_h-
Parameter statt selbst Standortdaten zu kennen — Wetter-Logik bleibt im
Poll-Loop, EmsController fokussiert auf die eigentliche Lade-Steuerung.

Auf Sonnenstand-Berechnung bewusst verzichtet — die stuendliche Strahlungs-
prognose bildet Tag/Nacht-Verlauf implizit schon ab, eigene Ephemeriden-
Berechnung waere doppelte Arbeit ohne Mehrwert.

Teil 2 von 2 des 'Prognosebasiertes Laden'-Roadmap-Punkts, damit komplett.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-26 15:57:04 +02:00

8.3 KiB
Raw Permalink Blame History

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 — Ursache endgültig gefunden 2026-08-26: Schütz in der Wallbox hat nicht angezogen. Live-Diagnose zeigte Wallbox meldete korrekt "lädt, 16A frei" (gewährter Strom/ems_stromsollwert 16000mA), aber 0A auf allen drei Phasen — Steuerungs-/Kommunikationsebene lief einwandfrei, nur der Leistungskontakt selbst hat nie geschlossen. Erklärt auch den Loop: Auto negiert Ladevorgang, bekommt nie echten Strom, setzt immer wieder neu an. Reines Hardware-Problem, ShineBridge zu 100% ausgeschlossen. Nach Wallbox-Neustart Status offen — falls Schütz weiter nicht anzieht, braucht es einen Elektriker/Ersatzteil.
  • Growatt-only: Netzbezug nicht direkt messbar — nur Einspeisung via power_to_grid
  • Kathrein EVSE-Register 0x0060 (Charging-State) nur lesbar wenn Auto angeschlossen

Nächste Schritte (Stand 2026-08-26)

Reihenfolge nach Aufwand/Abhängigkeit, nicht nach Wichtigkeit.

  1. Automatischer täglicher Config-Export — erledigt (v1.11.0–1.11.1): täglicher Export nach /share/shinebridge-backups/, Aufbewahrung konfigurierbar (Default 14 Tage), sofort beim Start plus alle 24h. Backup-Liste + Download + Wiederherstellen direkt im Einstellungen-Tab.
  2. Discord-Alerts — bei Zwangsladen-Start, Fehlerzuständen (unbekannter Ladezustand), besonders günstigen Spot-Preisfenstern. Nutzt den bestehenden Homelab-Discord-Bot. War zurückgestellt bis zur Klärung des 6,5-Minuten-Zyklus — ist jetzt geklärt (siehe "Bekannte Einschränkungen", war kein ShineBridge-Bug), Punkt kann wieder angegangen werden. Braucht trotzdem generelles Debounce (Mindestabstand pro Alert-Typ, Zustand muss erst eine Weile stabil sein, günstige Preise als tägliche Zusammenfassung statt Live-Alert) — normales Alert-Design, keine Sonderbehandlung mehr nötig.
  3. Sessions pro Fahrzeug trennen — falls mehrere Fahrer/Autos an einer Wallbox laden, aktuell nur eine Gesamt-Statistik.
  4. 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).
  5. Prognosebasiertes Laden — in zwei Teilen, hintereinander gebaut:
    • Teil A: Batteriebewusster PV-Überschuss — erledigt (v1.11.2): Batterie-Entladeleistung wird vom PV-Überschuss abgezogen, damit PV-Überschussladen nie versehentlich den Hausspeicher anzapft (Zwangsladen bleibt unverändert netzbasiert).
    • Teil B: Wetterprognose — erledigt (v1.12.0): Standort (Breitengrad/Längengrad) im Einstellungen-Tab, optional. Open-Meteo-Solarstrahlungsprognose (kostenlos, kein Sonnenstand extra nötig — steckt implizit in der stündlichen Prognose) passt den Zwangslade-Timeout adaptiv an: bald Sonne zu erwarten → länger warten (gedeckelt); aussichtslose Prognose → früher vom Netz laden. Ohne Standort unverändertes Verhalten.
  6. Chart-Feintuning — läuft nebenbei mit, keine feste Priorität (z.B. Live-Kosten-Ticker statt nur Rückblick).
  7. Auto-Cleanup verwaister MQTT-Geräte — wenn ein Gerät aus ShineBridge entfernt wird, dessen MQTT-Discovery-Topics aktiv abmelden statt sie als tote HA-Geräte-Leichen zurückzulassen (siehe Fund unten).

Zurückgestellt: Mehrere Wallboxen fair verteilen — bei der Duplikat-Prüfung (siehe unten) stellte sich heraus, dass es aktuell nur eine echte Wallbox gibt. Erst relevant, wenn wirklich eine zweite dazukommt.

Fund: Wallbox-Duplikat war kein echtes Duplikat

Firma-HA zeigte drei Wallbox-Geräte (wallbox_ladezustand/_2/_3). Per device_id()/device_attr()-Template-Check verifiziert: drei unterschiedliche ShineBridge-inv_ids, aber nur eine davon (1c042e72) hat noch aktive Poll-Loop-Logeinträge — die anderen zwei sind verwaiste Reste aus früheren Config-Änderungen (0 Log-Treffer). Kein Konflikt-Risiko (keine drei gleichzeitigen Poller auf demselben physischen Gerät), nur unaufgeräumte Geräte-Registry. Manuell entfernbar unter Einstellungen → Geräte & Dienste → Geräte.

Erledigt vor dieser Roadmap (Kontext)

  • growatt-diagnose-tool-Split — Flash/OTA, Setup-Wizard, ShineLAN-X, ShineWifi-X, shinediag ausgelagert (v1.9.0)
  • Finanzen-Chart komplett überarbeitet — Wochen-Aggregation, responsiv, Beispiel-Vorschau (v1.9.1–1.9.6)
  • ESPHome-Geräte-Anbindung (Long-Lived Token statt Supervisor-Proxy, host_network ist damit inkompatibel) (v1.10.0–1.10.3)
  • Firma-EMS-Fixes: konfigurierbarer Max-Ladestrom, Zwangsladen-Retry, Fehlerzustand-Handling (v1.8.31)

Changelog

Version Datum Inhalt
v1.0.0 2024 Grundfunktion: ShineLAN-X + Growatt MIC, Modbus TCP + MQTT Discovery
v1.1.3 2024 Security: XSS-Fix, Flask-Binding, API-Validierung
v1.1.5 2024 Feature: Eastron SDM-630 + Float32-Dekodierung
v1.2.0 2024 Feature: Aggregat-Gerät + Energie-Dashboard-Sensoren
v1.3.0 2024 Feature: SQLite History, Konfig-Export/Import
v1.4.0 2025 Feature: Goodwe GW10KN-ET via UDP/8899, 39 Sensoren
v1.5.0 2026-04-28 Feature: Kathrein Wallbox + EMS-Controller (PV-Überschussladen)
v1.5.3 2026-04-28 Fix: EMS Oszillation, grid_power Anzeige
v1.6.0 2026-04-28 Feature: Energie-Dashboard SVG-Flussdiagramm, animateMotion
v1.6.5 2026-04-28 Redesign: Kreuz-Layout (Solar/Grid/Haus/Batterie/EV)
v1.7.0 2026-04-29 Feature: Abrechnungsperiode, Strompreise, kWh-Kosten
v1.7.7 2026-04-30 Fix: Goodwe pbattery1 Vorzeichen, Batterie-Flussrichtung
v1.8.8 2026-05-01 Feature: Überschuss-Geräte (Zigbee2MQTT), Eigenversorgungskarte
v1.8.13 2026-05-02 Feature: Labels, Invertiert-Modus, Mindest-Laufzeit, Z2M-Dropdown
v1.8.14 2026-05-03 Feature: Abschlags-Tracker (monatliche Rate + Grundpreis)
v1.8.16 2026-05-04 Feature: Finanzen-Tab, EPEX Spot-Chart, Festpreis vs. Spot-Vergleich
v1.8.17 2026-05-04 Fix: Atomarer Config-Write + Backup-Fallback
v1.8.18 2026-05-05 Feature: Flash-Wizard, Setup-Wizard, NuttX OTA, MQTT rc=5, Port-Sicherheit
v1.8.19 2026-05-05 Fix: Mobile-Layout — Tabs scrollen, kein horizontaler Overflow
v1.8.20 2026-05-05 Fix: Eigenversorgungskarte bei PV offline, Stromtarif-Einstellungen gehen nicht verloren
v1.8.21 2026-05-05 Fix: Finanzen-Tab bleibt nicht bei "Lade..." hängen (fEur/fKwh Scope-Bug)
v1.8.22 2026-05-06 Fix: Stromtarif-Einstellungen bleiben nach Neustart erhalten; Finanzen-Tab Layout
v1.8.23 2026-05-07 Fix: Goodwe Netzbezug-Periode zeigt 0 kWh — integrierter grid_power-Zähler statt e_total_imp-Delta
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)