Fix: SDM-630 Gesamtwirkleistung aus Phasensumme berechnet (v1.2.1)
Register 0x0030 liefert je nach SDM-630-Firmware-Variante den Phasenwinkel statt der Gesamtwirkleistung. total_power wird jetzt zuverlässig aus power_l1 + power_l2 + power_l3 berechnet und überschreibt den Hardware-Wert. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
||||
# ShineBridge — Roadmap
|
||||
|
||||
## In Arbeit / Bekannte Bugs
|
||||
|
||||
- [ ] SDM-630 Gesamtwirkleistung zeigt falschen Wert → Fix in v1.2.1 (aus Phasensumme berechnet)
|
||||
|
||||
---
|
||||
|
||||
## Phase 2 (ShineBridge Add-on)
|
||||
|
||||
- [ ] Flash-Wizard — NuttX-Firmware via USB DFU direkt aus dem HA Web UI flashen (kein ST-Link)
|
||||
- [ ] Persistente History — Sensorwerte über Add-on-Neustart hinaus speichern
|
||||
- [ ] Weitere Growatt-Modelle — MOD 10000, SPH 10000 etc.
|
||||
|
||||
---
|
||||
|
||||
## Phase 3 — Multi-Brand / Multi-Hardware
|
||||
|
||||
### Goodwe WiFi Stick (ESP32 + LAN)
|
||||
- [ ] Hardware analysieren: LAN-Chip identifizieren (W5500? LAN8720?)
|
||||
- [ ] Firmware: NuttX auf ESP32 + mbusd → Modbus TCP Gateway (wie ShineLAN-X)
|
||||
- [ ] Goodwe Register-Maps in `inverters.py` ergänzen (SEMS-Protokoll, gut dokumentiert)
|
||||
- [ ] Goodwe-Modelle im Web UI auswählbar
|
||||
|
||||
### ShineWifi-X als ShineBridge-Gateway
|
||||
- [ ] Schlankes ESP8266-Projekt: RS485 → Modbus TCP Bridge (Arduino/ESP-IDF)
|
||||
- [ ] Dann: ShineWifi-X ebenfalls in ShineBridge Web UI verwaltbar (statt separater ESPHome-YAMLs)
|
||||
|
||||
### Langfristig
|
||||
- [ ] ShineBridge als universelle Multi-Brand-Plattform (Growatt, Goodwe, weitere)
|
||||
- [ ] Hardware-Erkennung automatisch im Web UI
|
||||
|
||||
---
|
||||
|
||||
## Erledigt
|
||||
|
||||
- [x] v1.0.0 — Grundfunktion: ShineLAN-X + Growatt MIC via Modbus TCP + MQTT
|
||||
- [x] v1.1.3 — Security: XSS-Fix, Flask-Binding, API-Validierung
|
||||
- [x] v1.1.4 — Fix: Flask zurück auf 0.0.0.0 (HA Ingress)
|
||||
- [x] v1.1.5 — Feature: Eastron SDM-630 Support + Float32 Decode
|
||||
- [x] v1.2.0 — Feature: Aggregat-Gerät + Energie-Dashboard Sensoren
|
||||
- [x] v1.2.1 — Fix: SDM-630 Gesamtwirkleistung aus Phasensumme berechnet
|
||||
@@ -1,5 +1,5 @@
|
||||
name: ShineBridge
|
||||
version: "1.2.0"
|
||||
version: "1.2.1"
|
||||
slug: shinebridge
|
||||
description: Growatt Wechselrichter lokal in Home Assistant — Modbus TCP via ShineLAN-X, MQTT Discovery, Web UI
|
||||
url: https://gitea.bitfire.work/retr0/Growatt-Wechselrichter-HAOS
|
||||
|
||||
@@ -81,4 +81,12 @@ def _extract_sensors(sensors: list, regs: Dict[int, int]) -> Dict[str, float]:
|
||||
else:
|
||||
raw_val = regs[s.reg] * s.scale
|
||||
values[s.id] = round(raw_val, 3)
|
||||
|
||||
# SDM-630: register 0x0030 enthält je nach Firmware-Variante den Phasenwinkel statt
|
||||
# der Gesamtwirkleistung → sicherer aus den Phasenwerten ableiten
|
||||
if {"power_l1", "power_l2", "power_l3"} <= values.keys():
|
||||
values["total_power"] = round(
|
||||
values["power_l1"] + values["power_l2"] + values["power_l3"], 3
|
||||
)
|
||||
|
||||
return values
|
||||
|
||||
Reference in New Issue
Block a user