Ich hatte zuletzt einen Strong Energy Alfred 10 (3-phasiger Hybrid-Wechselrichter mit Batterie, dazu ein CHINT DTSU666 als Netzzähler) über ein Waveshare RS485-to-Ethernet-Gateway per Modbus TCP in Home Assistant zu holen. Da es dazu kaum kompakte Doku gibt, hier das Ergebnis — inklusive der Stolperfalle, an der es fast gescheitert wäre.
Die Registertabelle gilt für die ganze Senergy/Sofar-3-Phasen-Hybrid-Familie (5–10K) — die Register stammen aus der evcc-Vorlage senergy-hybrid.yaml.
Der eigentliche Knackpunkt: RS485 hat zwei Kanäle
Am RJ45-Port des Wechselrichters liegen zwei getrennte RS485-Busse:
- Pin 7/8 = Meter-Bus: Hier ist der Wechselrichter Master und liest den DTSU666 (Adresse 200). Hier NICHT abgreifen.
- Pin 1/2 = Monitoring/HEMS-Bus: Hier ist der Wechselrichter Slave (Adresse 1) und extern lesbar → hier gehört die Waveshare dran.
(Im Strong-Handbuch: Kap. 5.4.1 Tabelle 7 und Kap. 9 Tabelle 15.)
Pflicht-Einstellung in der App
In der StrongEnergy360-App → Experten (Passwort admin) → Sonstige muss „RS485 Gerät (Hybrid)" auf „Slave" stehen (Default). Sonst antwortet der Wechselrichter auf dem Pin-1/2-Kanal nicht. Die Option „PV Ext. / AC-Couple" braucht ihr nur, wenn ein fremder Zweit-Erzeuger dahinterhängt — sonst aus lassen.
Home Assistant Modbus-Konfiguration
Host = IP der Waveshare, dazu deren Port. Alle Register: input_type: holding, slave: 1.
Bestätigte Register
Diese habe ich gegen die App-Gesamtwerte gegengeprüft — sie stimmen:
- name: "PV Erzeugung gesamt"
address: 4129 # 0x1021
input_type: holding
data_type: uint32
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
slave: 1
- name: "PV Leistung"
address: 4168 # 0x1048
input_type: holding
data_type: uint32
scale: 0.1
unit_of_measurement: "W"
device_class: power
slave: 1
- name: "Netzleistung L1" # + L2 = 4866/0x1302, L3 = 4868/0x1304
address: 4864 # 0x1300
input_type: holding
data_type: int32 # Vorzeichen: + = Bezug, − = Einspeisung
scale: 0.1
unit_of_measurement: "W"
device_class: power
slave: 1
- name: "Netzbezug gesamt"
address: 4870 # 0x1306
input_type: holding
data_type: uint32
scale: 0.01
unit_of_measurement: "kWh"
device_class: energy
state_class: total_increasing
slave: 1
- name: "Batterie Leistung"
address: 8201 # 0x2009
input_type: holding
data_type: int32
scale: 0.1
unit_of_measurement: "W"
device_class: power
slave: 1
- name: "Batterie SoC"
address: 8192 # 0x2000
input_type: holding
data_type: uint16
unit_of_measurement: "%"
device_class: battery
slave: 1
Noch nicht abschließend verifiziert — bitte an eurem Gerät gegenprüfen
Bei diesen drei bin ich mir nicht sicher bei Skalierung bzw. Existenz — ich will hier nichts als Fakt hinstellen, was ich nicht bestätigt habe:
- Einspeisung gesamt:
4872(0x1308), uint32. Das ist die natürliche Paarung direkt hinter dem Netzbezug-Zähler; ich habe das Register gefunden, aber die Skalierung noch nicht bestätigt — testescale: 0.01(wie beim Netzbezug) gegen deinen App-Wert „Ins Netz / Einspeisung gesamt". Evcc selbst führt keinen Einspeise-Zähler, leitet die Einspeisung stattdessen aus der vorzeichenbehafteten Netzleistung ab. - Batterie Entladung gesamt:
8209(0x2011), uint32, scale 0.01. Aus der evcc-Vorlage; Prüfwert = App „Von Batterie/Gesamt". - Batterie Ladung gesamt: Kandidaten
8205(0x200D) /8207(0x200F), uint32, scale 0.01. Nur vermutet, ungetestet — die Ladung muss etwas größer als die Entladung sein (Speicherverluste).
Das nützlichste Werkzeug: gegen die App-Gesamtwerte prüfen
Egal welches Register: Vergleicht den HA-Zählerstand mit dem Wert in der App unter Statistik → „…/Gesamt". So bestimmt ihr die richtige Skalierung exakt, statt zu raten — bei mir stimmte die PV-Erzeugung ohne scale, der Netzbezug brauchte scale: 0.01. Zwei gepaarte Zähler im selben Adressblock haben meist dieselbe Skalierung.
Rückmeldungen willkommen
Wenn jemand von euch die drei offenen Register (Einspeisung-Skalierung, Batterie-Ladung) an seinem Alfred bestätigt hat, ergänze ich das gern hier — dann wird die Tabelle für alle lückenlos.
Hintergrund, falls jemand fragt, wozu die Zähler: Ich werte die Werte anschließend mit eedc-homeasssitant (Energie Effizienz Data Center) aus — ein kostenloses HA-Add-on zur PV-Analyse. Für die Registersuche hier spielt das keine Rolle, die Modbus-Config oben funktioniert mit jedem HA-Setup.
