NEWS
Test Adapter sun2000 v0.1.x - Huawei Wechselrichter
-
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!
-
-
Bitte beachten, dass basierend auf dem Adapter Request 752 (https://github.com/ioBroker/AdapterRequests/issues/752) bereits ein Adapter entwickelt wurde und dieser das notwendige Review für die Aufnahme in das offizielle ioBroker repository zwischenzeitlich fast abgeschlossen hat.
Der Adapter ioBroker.sun2000-modbus wird in sehr naher Zukunft via ioBroker Latest Repository verfügbar sein.
Derzeit kann dieser via Github installiert werden:
https://github.com/daolis/ioBroker.sun2000-modbus
Das Testtopic des ersten Adapters findet sich hier:
https://forum.iobroker.net/topic/70554/test-adapter-huawei-sun2000-inverterEDIT / NACHTRAG:
Damit kein falscher Eindruck aufkommt:
Ich (wir) sage(n) explizit DANKE auch an @bolliy für die geleistete Arbeit. Die Anmerkung betreffend Adapter sun2000-modbus soll diesen Adapter hier in keiner Weise schlecht reden! Sobald dieser Adapter ausreichend (auch hier) getestet ist und bolliy einen PR zur Aufnahme ins Latest Repo stellt wird dieser Adapter wie jeder andere Adapter einem Review unterzogen.
Generell bitte ich aber darum parallele / konkurrenzierende Entwicklungen möglichst zu vermeiden. Wir sollten alle gemeinsam an ioBroker arbeiten - und parallele Arbeit bedeutet meist unnötige Mehrarbeit. Spätestens wenn wir HugoLicht1 bis HugoLicht99 Versionen für dieselbe Hardware haben wirds dann eher unübersichtlich ...
mcm1957
-
Ich habe gerade den Adapter 0.1.2-alpha.1 hier https://github.com/bolliy/ioBroker.sun2000 veröffentlicht. Ich hoffe, dass dieser nun auch bei mehreren WR funktioniert. Der Adapter ist ebenfalls auch auf https://www.npmjs.com/package/iobroker.sun2000 deployed.
Achtung: Die Konfiguration der "modbus IDs" hat sich geändert. (siehe readme)
- modbusIds: inverter IDs, separated with "," (default: 1, max. 5 inverters)
Über ein Feedback würde ich mich freuen
-
@bolliy Vielen Dank! Ich habe die neue Version soeben installiert und hat ohne Probleme funktioniert. Ich habe bei den zwei Slave Inverter noch nicht alle Daten, denke aber dass es ist, weil die im Standby sind. Die Collected Values sehen bis jetzt mal gut aus.
Ich kann dir dann Morgen nochmals Feedback geben.
Im Log sehe ich allerdings sehr viele Warnungen, dies hatte ich aber bei der alten Version auch schon. Habt ihr das auch?
-
@torkel Sind die modbus IDs der Slaves korrekt?
-
@bolliy Ja, ID's sind 1 / 2 / 3
-
Eine Frage hätte ich noch. Darf ich bei den Collected Daten die Unit rausnehmen? Oder wird dies mit dem nächsten Update wieder überschrieben? Wenn es wieder überschrieben wird müsste ich noch ein Script mit eigenen Variablen machen, damit ich die kwH nicht bei jedem Update löschen muss. Ich möchte diese nicht anzeigen.
-
Die erste modbusID muss der Master sein. Am Master ist der Dongle und der Smart Power Sensor angeschlossen. Meist ist beim Betrieb von mehreren WR der Master (ID 16) und der Slaves (ID1, ID2 ..) . Im Debug Fenster siehst du ob was zurück kommt. Ist auf beiden WR modbus tcp aktiviert?
Die modbus id's kannst du über das FusionSolar Portal herausfinden.
-
@torkel Die States werden bei jedem Neustart aktualisiert. Ist die Einheit falsch - oder warum möchtest du keine Einheit dort stehen haben?
-
@bolliy said in Test Adapter sun2000 v0.1.x - Huawei Wechselrichter:
@torkel Die States werden bei jedem Neustart aktualisiert. Ist die Einheit falsch - oder warum möchtest du keine Einheit dort stehen haben?
Ohne den Adapter jetzt einem Review unterzogen zu haben: Sofern der Adapter die Einheiten von States kennen kann (was ich bei einem Wechselrichter mal annehme) sollte ein guter Adapter die Units aber auch die Roles der States selbst und richtig (!) setzen.
States bei jedem Start neu anzulegen ist keine besonders gute Idee da dies z,B. die User COnfig (hisors logging) vernichtet.
-
@bolliy Nein, die Einheit stimmt, ich möchte diese aber auf dem Ulanzi anzeigen und da braucht es ohne die Einheit weniger Platz. Daher möchte ich diese entfernen. Ich kann das aber auch anders lösen
-
@bolliy Master ist bei mir 1 wie bei dir
-
@torkel said in Test Adapter sun2000 v0.1.x - Huawei Wechselrichter:
Eine Frage hätte ich noch. Darf ich bei den Collected Daten die Unit rausnehmen? Oder wird dies mit dem nächsten Update wieder überschrieben? Wenn es wieder überschrieben wird müsste ich noch ein Script mit eigenen Variablen machen, damit ich die kwH nicht bei jedem Update löschen muss. Ich möchte diese nicht anzeigen.
Dann erstelle doch einen ALIAS wenn dich Units in einem State stören.
Es ist völlig richtig dass eine Adapter bei jedem Start sicherstellt dass die Daten der States (das sind z.B. auch roles und units) richtig sind. Bei einem Review würde das ggF sogar gefordert werden.
-
@mcm57 So werden die States beim Neustart aktualisiert. Ich dachte es wäre so ok?
async _initState(path, state) { //this.adapter.log.debug('[_initStat] path+id '+path+state.id); await this.adapter.extendObjectAsync(path+state.id, { type: 'state', common: { name: state.name, type: state.type, role: state.role, unit: state.unit, desc: state.desc, read: true, write: false }, native: {} }); }
-
@bolliy
Ja das sieht völlig OK aus.ExtendObject legt keine neuen States an sondern aktualisiert nur die Werte eines States.
Natürlich zeigt das Codeschnipsel nicht ob nun z.B. die Roles und Typen passen :-).
setObjet wäre im Gegensatz dazu bei jedem Adaüpterstart nicht sinnvoll.Die zulässigne Roles kann man übrigends hier finden:
https://github.com/ioBroker/ioBroker.docs/blob/master/docs/en/dev/stateroles.md -
@mcm57 Danke
-
@bolliy vielen Dank für den genialen Adapter!
Endlich kann ich die Erträge meiner beiden WR nahezu in Echtzeit visualisieren und auch die Ladung und Entladung des Akkus ist im neuen Update schon verhanden.
Für mich derzeit der beste Adapter für Huawei!
Were ich jetzt mal ausgiebig testen und wenn Bugs auftreten, dann werde ich hier berichten. -
Hallo,
vielen Dank für den Adapter.
Läuft bei mir bisher ohne Probleme.Suche noch die Variablen für Input / Leistung für String 1 u. 2
Gibt es die auch oder bin ich gerade nur blind?
VG
heinzie -
@lightning Danke für dein Lob! Habe mich seht gefreut. Melde dich gern mit Verbesserungsvorschlägen.
-
@heinzie sagte in Test Adapter sun2000 v0.1.x - Huawei Wechselrichter:
Hallo,
vielen Dank für den Adapter.
Läuft bei mir bisher ohne Probleme.Suche noch die Variablen für Input / Leistung für String 1 u. 2
Gibt es die auch oder bin ich gerade nur blind?
VG
heinzieDie Daten der Strings habe ich noch nicht aufbereitet. Sind die wichtig für dich?