Aktuelle Test Version | |
---|---|
Veröffentlichungsdatum | 20.10.2024 |
Github Link | https://github.com/bolliy/ioBroker.sun2000 |
Über eure Unterstützung würde ich mich sehr freuen.
Hallo zusammen,
ich habe für meinen Huawei Wechselrichter SUN2000 und Speicher LUNA2000 einen Adapter entwickelt, der die Registerdaten über modbus TCP ausliest und schreibt.
Bitte den Adapter über das Beta Repository oder npm installieren, damit keine unfertige Version in ioBroker eingespielt wird.
Nun können endlich mit den Funktionen Battery charge control, Export Control und Forcible Charge/Discharge Registerdaten an den Wechselrichter sun2000 geschrieben werden.
Mit einigen Herausforderungen sehe ich mich weiterhin konfrontiert. Zum einen existieren Setups mit unterschiedlicher Hardware. Neben alten Huawei sun2000 aus der Serie M0 und einem smartLogger3000 können noch andere Huawei Devices unterwegs sein. So habe ich den Adapter umstrukturiert. Über ein Treiber-Model können nun unterschiedliche Hardware in den Adapter impelmentiert werden.
Ich habe mir ein Konzept ausgedacht, dass automatisch eine „funktionierende“ modbus-Einstellung ermitteln soll. So wird nach der Installation des Adapter die auto-adjust Funktion aktiviert. Der Adapter durchläuft dabei mehrere Adjustment Steps. Immer wenn ein Fehler auftritt werden die Verzögerungswerte (delays) sukzessive erhöht bis ein stabiler Zustand eintritt. Der auto-adjust Vorgang kann mehrere Minuten dauern. Danach werden die ermittelten Werte abgespeichert und der Adapter automatisch neu gestartet und die auto-adjust Funktion wieder deaktiviert.
Was funktioniert schon:
-
Es können max. 5 sun2000 Wechselrichter (Master/Slave) mit jeweils einem Batteriemodul (max. 15kWh) verarbeitet werden.
-
Battery Control
Neben dem "Laden des Speichers über dynamische Stromtarife" können u.a. die Speicherladegrenzen eingestellt werden. Viele Beispielszenarien werden im Wiki beschrieben. -
Begrenzung Netzeinspeisung (Export Control)
Über die Funktion Export control kann nun die Netzeinspeisung begrenzt oder unterbunden werden.
Diese Funktion steht allerdings den SmartLogger Besitzern (noch) nicht zur Verfügung. -
Erzwungenes Laden/Entladen der Batterie (Forcible Charge/Discharge)
Die Batterie kann für eine bestimmte Dauer oder auf einen bestimmten SoC-Wert zwangsweise aufgeladen oder entladen werden. -
Über den eingebauten modbus-proxy können Geräte von Drittanbietern (Wallbox, energy manger usw.) lesend und schreibend auf die Daten der Inverter zugreifen. Da der modbus-proxy multi-client-fähig ist, kann der Zugriff von mehreren Geräte gleichzeigit erfolgen. Darüber hinaus ist möglich die Daten auf eine andere Adapter Instanz zu spiegeln.
Im Gegensatz zu dem SDongle ist der proxy deutlich schneller und stabiler. -
Wer ein SmartLogger sein Eigen nennen kann, ist sicher über die Integration des Huawei SmartLoggers erfreut.
-
Bei der Verwendung von einem Wechselrichter werden nicht weniger als 148 Datenpunkte erzeugt.
-
Live Daten wie Eingangsleistung (inputPower), Ausgangsleistung (activePower), Battery Lade-/Entladeleistung (charge and discharge Power) und der Netzbezug (activePower) des Smart power sensors werden in einem festen Intervall (default 20 Sekunden) ausgelesen und die entsprechenden Zustände geschrieben.
-
Nur für geänderte Registerdaten werden Zustände (States) geschrieben. Das entlastet die ioBroker Instanz.
-
Die States „inputPower“ oder „activePower“ im Pfad „collected“ können mit einem Trigger-Element „wurde aktualisiert“ überwacht werden. Da diese States im eingestellten Interwall immer gschrieben werden.
-
Die Registerdaten werden über drei Intervalle gelesen und verarbeitet:
high: Im engestellten Intervall werden auschließlich Echtzeitdaten wie PV Leistung, Inverterleistung, Ladeleistung und Zählerstände bedient.
medium (30 Sek): Stringdaten, weitere Zählerdaten usw.
low (60 Sek): die restlichen veränderbaren Informationen
static: ist eigentlich kein Intervall, da dieser einmalig ausgeführt wird. Z.B. Bezeichnung und Model des Inverters -
Die summierten Leistungs- und Verbrauchsdaten des SDongles werden im medium Interval gelesen und im Pfad sdongle gespeichert.
Über Tests und euer Feedback freue mich sehr.
Installation:
Den Adapter über das Beta Repository oder npm installieren installieren, damit keine unfertige Version in ioBroker eingespielt wird.
Durch Änderungen am js-controller werden vom sun2000 Adapter nur noch node 18.x und höher unterstützt!
Ich freue mich auf eure Mitwirkung!