Seit einigen Tagen werkelt bei mir eine PV-Anlage:
- 2 Wechselrichter SUN2000-10KTL-M1
- Bietet ein eigenes WLAN Netz (zwecks Konfiguration des Wechselrichters)
- Einen Dongle (SDongleA) auf dem Master Wechselrichter für FusionSolar App
- Bietet sowohl ein WLAN Adapter sowie
- direkter LAN-Anschluss
- Beides über DHCP
Ziel
Die Werte werden soweit ok auf das FusionSolar Portal von Huawei. Aber ich möchte gerne alle Werte direkt lokal beziehen und auf Grafana darstellen. Hier logge ich meine Erfahrungen und irgendwann hoffentlich auch eine Erfolgsmeldungen.
Good to know
- Der Wechselrichter selber erstellt ein eigenes WLAN zwecks Konfiguration des Geräts.
- Der Dongle am Wechselrichter ermöglicht es auf ein vorhandenes WLAN zu verbinden oder ein Netzwerkkabel auf einen Router anzuschliessen. Hauptziel dieses Dongels ist es wohl, die Daten auf FusionApp bzw. in die Cloud zu bringen. Der Dongle selber bietet auch die Möglichkeit Daten per “Modbus TCP” abzufragen. Diese Schnittstelle ist aber sehr unausgereift. Erste Tests mit Telegraf (modbus plugin) haben gezeigt, dass regelmässige Abfragen (z.B. alle 5s) nicht gehen (i/o timeout). Grund dafür ist wahrscheinlich, dass nach der Modubs-Anmeldung 2s gewartet werden muss, bis die erste Register-Abfrage durchgeführt werden kann (eine Huawei Eigenheit). Ich gehe aktuell davon aus, dass Telegraf damit (wenig überraschend) nicht umgehen kann.
- Die Daten können auch per Modbus TCP am Wechselrichter selber abgefragt werden, sofern man sich mit dem WLAN des Wechselrichters verbunden hat.
Modbus TCP vs Huawei
Man könnte meinen, dass Huawei etwas auf “Kriegsfuss” mit Modbus TCP ist. Regelmässige Abfragen mit Standard Modbus-Clients (z.B. Telegraf oder ioBroker Modbus) schlagen die meiste Zeit fehl. Hier wird davon berichtet, dass die Modbus-Ansteuerung vom Huawei Sun2000 Wechselrichter über TCP etwas speziell sei. Nach dem öffnen des TCP-Ports muss offenbar noch eine 2s Pause eingehalten werden, da sonst keine Daten zurück geliefert werden. Auch wird nicht jede Modbus-TCP-Anfrage mit den angeforderten Registern beantwortet. Huawei melden in diesem Falle “Slave device busy (retry request again later)”.
Modbus auf Wechselrichter aktivieren
Damit der Wechselrichter mit Modubs TCP kommuniziert, muss dies erstmal aktiviert werden. Das geht einerseits über die FusionSolar App (Menupunkt “ich>Inbetriebnahme des Geräts”). Hier einfach das Gerät auswählen. Anschliessend wird versucht auf das Gerät zuzugreifen. Auch wenn da steht “Inbetriebnahme des Geräts” wird einfach nur das “Konfigurations-App” gestartet. Ich vermute mal, dass in der FusionSolar App die App Sun2000 integriert ist. Also keine Angst haben, dass da ein zusätzliches Gerät in Betrieb genommen wird.
Die andere Variante ist, wie erwähnt, die Sun2000 App. Diese ermöglicht ebenfalls die Verbindung mit dem Wechselrichter-WLAN.
Beide Apps sind über den Huawei App Store erhältlich. Ich habe es leider nicht auf anderen Wegen geschafft die APKs zu beziehen. => Also Appstore Installieren, App beziehen und Appstore (hoffentlich für immer) wieder deinstallieren.
Wichtig:
Der Wechselrichter muss mindestens über Firmware Version V200R001C00SPC115 verfügen. Falls nicht, muss die Firmware aktualisiert werden. Das geht über die FusionSolar App. Hierfür braucht es aber explizit einen Installer-Account. Wenn ihr diesen nicht habt, muss dies der Installateur nachholen.
Wenn man über den Wechselrichter modbus verwendet, benötigt man den Port 6607 anstelle von 502!
DD-WRT
Routing von Port 6607 von 192.168.3.3 nach 192.168.200.1 (“WAN” Adresse des Routers nach Wechselrichter)
Routing auf dd-wrt um die IP-Adresse aus 192.168.3/24 als 192.168.200.2 (ip Adresse des WLAN-Clients) aussehen zu lassen
root@DD-WRT:~# iptables -I PREROUTING -t nat -p tcp -d 192.168.3.3 --dport 6607 -j DNAT --to-destination 192.168.200.1:6607 root@DD-WRT:~# iptables -I POSTROUTING -t nat -d 192.168.200.1 -s 192.168.3/24 -p tcp --dport 6607 -j SNAT --to 192.168.200.2
Damit sollte anschliessend ein Telnet Test aus dem 192.168.3./24 Netz nach 192.168.200.1 (Port 6607) erfolgreich sein:
telnet 192.168.3.3 6607
Damit diese Regeln auch nach Reboot überleben, kann man sie auf dd-wrt Command-Shell GUI (Administration – Commands) eintragen und Speichern. Danach sollten die Regeln auch nach einem Reboot aktiv sein.
Modbus auf SDongleA aktivieren
Auf die gleiche Art und Weise soll auch Modbus TCP auf dem Dongle aktiviert werden. Den Dongle kann man sowohl per WLAN als auch per LAN-Kabel anschliessen. Ich habe beide Varianten (versuchsweise) installiert. Der Dongle kann sowohl WLAN als auch LAN gleichzeitig betreiben.
Wenn der Dongle sich mit dem Heimnetz verbunden hat, war es für mich anschliessend aber nicht mehr möglich, das Dongle-Eigene WLAN zu sehen. Der Dongle scheint das eigene WLAN abzuschalten, sobald man sich per LAN verbindet.
Wichtige Attribute PV Anlage
Kennzahlen | Bezeichnung | Modubs Register |
Netzbezug (-) / Netzeinspeisung (+) | Der jeweils letzte Wert aus Huawei.Meter.ActivePower (W) | Meter.ActivePower 37113 (W) |
PV – Aktuelle Produktion | Addition von – Huawei.Inverter.1.InputPower (kW), letzter Wert + – Huawei.Inverter.2.InputPower (kW), letzter Wert | Inverter.x.InputPower 32064 (kW) |
Aktuelle Hauslast / Verbrauch Haus | Derived.HouseConsumption (W), letzter Wert Berechnet aus: (Huawei.Inverter.1.ActivePower (kW) * 1000 + Huawei.Inverter.2.ActivePower (kW) * 1000) – Huawei.Meter.ActivePower | Inverter.x.ActivePower 32080 (kW) Meter.ActivePower 37113 (W) |
Aktuelle Leistung pro Inverter | Huawei.Inverter.x.ActivePower (kW) | Inverter.x.ActivePower 32080 (kW) |
Produktion / PV Produktion pro Inverter | Huawei.Inverter.x.AccumulatedEnergyYield (kWh) | Huawei.Inverter.x.AccumulatedEnergyYield 32106 (kWh) |
Netzeinspeisung | Huawei.Meter.PositiveActiveEnergy | Huawei.Meter.PositiveActiveEnergy 37119 (kWh) |
Eigenverbrauch aus PV | Tagessummen aus Huawei.Inverter.x.AccumulatedEnergyYield – Tagessumme aus Huawei.Meter.PositiveActiveEnergy | Huawei.Inverter.x.AccumulatedEnergyYield 32106 (kWh) Huawei.Meter.PositiveActiveEnergy 37119 (kWh) |
Eigenverbrauch aus PV in % | 100 * Eigenverbrauch aus PV / Produktion | |
Netzeinspeisung in & | 100 * Heutige Netzeinspeisung / Produktion | |
Netzbezug (akkumuliert) | Huawei.Meter.ReverseActiveEnergy (kWh) | 37121 (kWh) |
Direktverbrauch aus PV | Tagessummen aus Huawei.Inverter.x.DailyEnergyYield – Tagessumme aus Huawei.Meter.PositiveActiveEnergy | Inverter.x.DailyEnergyYield 32114 (kWh) Huawei.Meter.PositiveActiveEnergy 37119 (kWh) |
Verbrauch aus Netz in % | EigenverbrauchAusPV: Produktion PV: Tagessummen aus Huawei.Inverter.x.AccumulatedEnergyYield (kWh) – Netzeinspeisung Huawei.Meter.PositiveActiveEnergy Gesamtverbrauch: EigenverbrauchAusPV + Netzbezug Huawei.Meter.ReverseActiveEnergy) 100 * Gesamtverbrauch / EigenverbrauchAusPV | |
Verbrauch aus PV in % (Autarkiegrad) | ||
PV-Erzeugung | Active Power Inverter + Battery Power | |
Aktueller PV-Ertrag Das was aktuell vom Dach kommt: | Input Power | 32064 |
Aktuelle Leistung vom “Dach” in Watt | Inverter.Input_Power | |
PV-Gesamtertrag | Accumulated energy yield | 32106 |
PV-Tagesertrag | Daily energy yield | 32114 |
PV Tagesverbrauch – Wieviel kWh wurden heute direkt aus der PV Produktion bezogen (Autarkie) | Inverter.[1,2].DailyEnergyYield – GridExportToday | |
PV Gesamteigenverbrauch / Direktverbrauch aus PV | Accumulated energy yield – abzüglich Gesamtexport ins Netz (Positive active electricity) | 32106 – 37119 |
Heutiger Netzbezug | Solarpower.Derived.GridImportToday | |
Netzbezug/Einspeisung Bezug oder Einspeisung vom/zum Versorger in Watt. Positive Werte = Bezug, negative Werte = Einspeisung | Meter.Active_Power | 37113 |
Aktuelle Einspeisung des Inverters in das Hausnetz. Also die aktuelle “Leistung” des Hauses in Watt Addition aus PV Erzeugung und ggf. Batterie-Entladung | Inverter.Active_Power | |
Hauslast aktuell | Active Power Inverter – Meter.Active_Power | 32080 – 37113 |
Gesamtexport ins Netz (verkauft) | Positive active energy | 37119 (kWh) |
Gesamtimport aus dem Netz (gekauft) | Reverse Active Energy | 37121 (kWh) |
Gesamtverbrauch Strom | PV-Gesamtertrag + Gesamtexport ins Netz + 37121 Reverse active Power (Ges.import aus Netz) | |
PV1_Voltage und PV1_Current: | Aktuelle Spannung und Strom von String, U * I = P, somit ergibt sich daraus, wieviel Leistung der String aktuell liefert in Watt | |
Akku-Ladestand: | Energy storage | 37004 |
Akku-Ladung des Tages | current day charge capacity | 37015 |
Akku-Entladung des Tages | current day discharge capacity | 37017 |
Aktuelle Leistung an der Batterie in Watt, negative Zahlen = Batterie wird entladen, positive Zahlen = Batterie wird geladen | Battery_Power | |
Ladezustand in % | Battery_SOC | |
Links
- https://skyboo.net/2022/02/huawei-sun2000-why-using-a-usb-dongle-for-monitoring-is-not-a-good-idea/
- https://skyboo.net/2021/07/how-to-connect-to-sun2000-from-dd-wrt/
- https://skyboo.net/2021/06/huawei-sun2000-monitoring/
- https://skyboo.net/2021/09/how-to-do-a-firmware-upgrade-using-fusionsolar/
- Huawei Modbus TCP Guide
- ioBroker Sun2000 mit Node-Red
- ioBroker Sun2000 mit Node-Red (Read and Write)
- ioBroker Sun2000 über JS & Github-Repo of Script
- Übersicht Terminologie
- Modbus Interface Definition (SDongleA)
- Modbus Interface Definition (Wechselrichter)
- Telegraf Konfiguration für 33KTL-A
- https://community.home-assistant.io/t/integration-solar-inverter-huawei-2000l/132350/2713
- https://github.com/wlcrs/huawei_solar/wiki/Connecting-to-the-inverter
- https://support.huawei.com/enterprise/en/doc/EDOC1100136173/8aa1f88a/resetting-password
- Youtube Resetting Password
- youtube Creating Account
- InverterDeviceStatus Map
- FusionSolar App Download / Download