NEWS
Test Adapter sun2000 v0.1.x - Huawei Wechselrichter
-
@lcars die NRGkick Wallbox versucht auch Batteriedaten von dem Inverter Unit 1 abzurufen. Diese werden nun mit "0" vorbelegt, serfern der modbus-proxy mind. 1 Minute läuft.
Bitte unter dem Reiter das Logging aktivieren:
Und Update über gitHub machen !
Bin gespannt...
-
Ich brauche mal wieder ein paar Tester*innen
WORK IN PROGRESS
- detect standby mode of inverters (#34)
- devices in standby often give incorrect values. These are assigned "0" (#40)
- the modbus register and the length are stored in the description of the states
- implemented modbus-proxy (read-only cache)
- read register data from SDongleA
- additional loop interval medium (SDongle data)
- Integration of NRGkick Wallbox
- read string data faster (high interval)
Einfach über npm installieren
-
Ich habe nun die erste Version der Dokumention veröffentlicht:
https://github.com/bolliy/ioBroker.sun2000/blob/main/docs/README.mdHier kann man ganz gut die Kalkulationszusammenhänge erkennen und durch die Beispiel-VIS die States erklärt bekommen.
Auch ohne Englisch-Kenntnisse sollten die Zusammenhänge gut erkennbar sein.Stephan
-
Hallo boilliy,
ich habe es gleich getestet aber das sieht noch nicht gut aus. Hier was im Log drin ist:sun2000.0
2024-03-01 12:41:32.022 info Modbus tcp server: {"stat":{"getMultipleHoldingRegisters-address_32080-value_2-unidId_1":11,"getMultipleHoldingRegisters-address_32114-value_2-unidId_1":11,"getMultipleHoldingRegisters-address_37765-value_2-unidId_1":11,"#getMultipleHoldingRegisters-address_37760-value_1-unidId_1":11}}sun2000.0
2024-03-01 12:40:32.020 info Modbus tcp server: {"stat":{"getMultipleHoldingRegisters-address_32080-value_2-unidId_1":8,"getMultipleHoldingRegisters-address_32114-value_2-unidId_1":8,"getMultipleHoldingRegisters-address_37765-value_2-unidId_1":8,"#getMultipleHoldingRegisters-address_37760-value_1-unidId_1":8}}sun2000.0
2024-03-01 12:40:17.350 info Interval 17.349 secsun2000.0
2024-03-01 12:39:32.019 info Modbus tcp server: {"stat":{"getMultipleHoldingRegisters-address_32080-value_2-unidId_1":6,"getMultipleHoldingRegisters-address_32114-value_2-unidId_1":6,"getMultipleHoldingRegisters-address_37765-value_2-unidId_1":6,"#getMultipleHoldingRegisters-address_37760-value_1-unidId_1":6}}sun2000.0
2024-03-01 12:38:32.021 info Modbus tcp server: {"stat":{"getMultipleHoldingRegisters-address_32080-value_2-unidId_1":6,"getMultipleHoldingRegisters-address_32114-value_2-unidId_1":6,"getMultipleHoldingRegisters-address_37765-value_2-unidId_1":6,"#getMultipleHoldingRegisters-address_37760-value_1-unidId_1":6}}sun2000.0
2024-03-01 12:37:11.108 info Interval 26.107 secsun2000.0
2024-03-01 12:36:37.191 info Connected Modbus TCP to 192.168.1.172:502sun2000.0
2024-03-01 12:36:32.179 info Open Connection...sun2000.0
2024-03-01 12:36:32.037 info ModbusTCP server initializedsun2000.0
2024-03-01 12:36:32.030 info ModbusTCP listening on modbus://0.0.0.0:5020sun2000.0
2024-03-01 12:36:31.720 info starting. Version 0.4.0 (non-npm: bolliy/ioBroker.sun2000#abd547d57a83eea7298602c516f4efd18826502f) in /opt/iobroker/node_modules/iobroker.sun2000, node: v20.10.0, js-controller: 5.0.19Wenn ich im NRGkick auf den ModBus Proxy schalte dann sehe ich keine Daten was rein kommt von der Anlage. Da hatte ich aber mal was gesehen gehabt bzw. wo ich damals den HAproxy von mir davor hatte. So siehts in der App dann aus:
Wenn ich wieder meinen Server (REST API) dran hänge dann sieht es so aus:
Irgendwie erwartet da der NRGkick noch etwas anderes. Irgendwas angemeckert hat er nicht bei dem Test aber die Werte sind eben auch 0.
-
@lcars sagte in Test Adapter sun2000 v0.1.x - Huawei Wechselrichter:
Hallo boilliy,
ich habe es gleich getestet aber das sieht noch nicht gut aus. Hier was im Log drin ist:sun2000.0
2024-03-01 12:41:32.022 info Modbus tcp server: {"stat":{"getMultipleHoldingRegisters-address_32080-value_2-unidId_1":11,"getMultipleHoldingRegisters-address_32114-value_2-unidId_1":11,"getMultipleHoldingRegisters-address_37765-value_2-unidId_1":11,"#getMultipleHoldingRegisters-address_37760-value_1-unidId_1":11}}Irgendwie erwartet da der NRGkick noch etwas anderes. Irgendwas angemeckert hat er nicht bei dem Test aber die Werte sind eben auch 0.
Ja den SOC von dem Inverter 1, die ja keine Batterie hat. Das müsse er eigentlich schon rausgefunden haben.
Kannst nun wieder versuchen! Update per gitHub auf v0.4.0
Vielen Dank für deine Geduld. Aber ohne Hardware vor Ort ist das halt schwer umsetzbar.
-
@bolliy Ja klar dass man das nicht ohne Hardware selbst testen kann. Da du mir durch den Adapter Arbeit abgenommen hast das selbst zu coden, kann ich natürlich testen.
Leider keine Veränderung durch das Update. Die Daten für die Batterie und den Energie Input fehlen weiterhin. Das zeigt das Log:sun2000.0
2024-03-01 15:07:21.088 info Interval 19.372 secsun2000.0
2024-03-01 15:07:01.716 info Interval 16.08 secsun2000.0
2024-03-01 15:06:57.838 info Modbus tcp server: {"stat":{"getMultipleHoldingRegisters-address_32080-value_2-unidId_1":8,"getMultipleHoldingRegisters-address_32114-value_2-unidId_1":8,"#getMultipleHoldingRegisters-address_37765-value_2-unidId_1":2,"getMultipleHoldingRegisters-address_37765-value_2-unidId_1":6,"#getMultipleHoldingRegisters-address_37760-value_1-unidId_1":6}}sun2000.0
2024-03-01 15:06:08.305 info Interval 19.864 secsun2000.0
2024-03-01 15:05:57.838 info Modbus tcp server: {"stat":{"getMultipleHoldingRegisters-address_32080-value_2-unidId_1":6,"getMultipleHoldingRegisters-address_32114-value_2-unidId_1":6,"#getMultipleHoldingRegisters-address_37765-value_2-unidId_1":2,"getMultipleHoldingRegisters-address_37765-value_2-unidId_1":4,"#getMultipleHoldingRegisters-address_37760-value_1-unidId_1":4}}sun2000.0
2024-03-01 15:05:48.440 info Interval 16.979 secsun2000.0
2024-03-01 15:04:57.839 info Modbus tcp server: {"stat":{"getMultipleHoldingRegisters-address_32080-value_2-unidId_1":6,"getMultipleHoldingRegisters-address_32114-value_2-unidId_1":6,"#getMultipleHoldingRegisters-address_37765-value_2-unidId_1":2,"getMultipleHoldingRegisters-address_37765-value_2-unidId_1":4,"#getMultipleHoldingRegisters-address_37760-value_1-unidId_1":4}} -
@lcars ok danke. Kann morgen erst weiter machen...
Melde mich dann.Stephan
-
Hallo @bolliy ,
ich setze deinen Adapter in der neusten Version 0.4 ein.
Hardware ist Zähler DDSU666-H, SUN2000-10KTL, Huawei Wallbox. (Huawei Speicher ist unterwegs)Ich habe mich durch die 191 Beiträge gewühlt, aber mir ist noch nicht klar, wie ich die Wallbox Daten in die Objekte bekomme. Kannst du mich kurz auf die Spur bringen. Ich würde natürlich auch gern meine Ergebnisse teilen und bei Bedarf den Teil dokumentieren.
Danke
Andre -
@io_andre versuche die Wallbox mit dem modbus-proxy zu verbinden.
Hier findest du einige interessante Hinweise zum SCharger.
https://tff-forum.de/t/pv-ueberschussladen-smart-charger-huawei/290268?page=2LG Stephan
-
@lcars so jetzt habe ich das Verhalten des proxy-servers etwas angapasst.
- Erst wenn der Adapter auf grün geht (nach ca. 1 Minute) stehen die Registerwerte am proxy zur Verfügung. Vorher werden die Anfrage mit ModbusError 5 "Acknowledge (requested data will be available later)" quittiert.
- Falls Werte beim proxy angefragt werden, die der Adapter nicht im Cache hat, erfolgt die Antwort mit dem integer Wert 0.
Also über gitHub updaten und bitte testen.
Stephan
-
@bolliy
mir ist noch nicht klar, an welcher Stelle ich was eintragen muss. Wie gesagt - mir geht es um auslesen der Wallbox Werte und eingriff in die Steuerung (Überschuss oder sofortiges laden)
Die Konfigurationsmöglichkeiten habe ich gefunden:
Bei den TCP-Modbus Einstellungen
oder beim Stromzähler
Der Stromzähler ist für mich logischer, aber der lässt sich nicht ändern. Ich habe die Box heute auch mal auf Werkseinstellungen zurück gesetzt. Ich dachte bei der 1. Einrichtung musste ich die Zähler IP eingeben, das wurde ich aber nicht noch einmal gefragt.Kurzum - ich bin noch keinen Schritt weiter.
VG Andre
-
@io_andre das ist einwenig schwierig. Zuerst einmal - ich habe keinen Huawei SCharger!
Wie ist der Stromzähler an deiner Wallbox angeschlossen? Als virtueller Zähler über den SDongle deines WR - oder hat deine WB einen eigenen Zähler?
-
@io_andre ich kann das Thema theoretsich nur erörtern - denn ich habe keinen SCharger.
Sofern der SCahrger mit dem vituellen Zähler verbunden ist, kann nicht von extern auf die SCharger modbus Schnittstelle zugegriffen werden! D.h. eine Abfrage der Ladeleistung ist für den Adapter nicht möglich! Darüber hinaus ist die modbus Schnittstelle des Wechselrichters (eigentlich des SDongles) nicht multi-Client fähig. Sofern der SCharger über den virtuellen Zähler und der sun2000 Adapter mit dem WR über modbus verbunden ist, hagelt es etliche timeouts Fehler für die Clients (SCharger und Adapter).
Um dieses Problem zu umgehen, wurde im Adapter ein modbus-proxy implementiert. Der modbus-proxy ist aber multi-Client fähig.
Nun muss man also versuchen die Kommunikation von der Wallbox über den modbus-proxy zu leiten.
Wie das bei dem jeweiligen Geräte genau funktioniert, kann ich leider nicht sagen.
Ich hoffe die Huawei spezifischen Einschränkungen darlegen zukönnen.
Stephan -
@bolliy
die Wallbox ist mit dem virtuellen Zähler des SDongle verbunden. Ich würde nden morgigen Tag nutzen und versuchen die Wallbox irgendwie auf den Proyx umzulenken.
Wenn ich es richtig verstanden habe verhindert das nur die Probleme durch den gleichzeitigen Zugriff deines Adapters und der Wallbox. An die Werte der Wallbox komme ich dann immer noch nicht ran.
VG
Andre -
@bolliy ja, genau so ist es. An die Wallbox Daten kommst du nur über die Fusion Solar App bzw. Portal. Die Integration des SCharger ist Huawei meines ertachtens nicht sonderlich gut gelungen.
Das zeigt sich auch an den Reaktionen in dem o.g. Forum. -
Hallo zusammen,
kann mir vielleicht jemand diese beiden Werte erklären?
Meine Erklärung: Der obere zeigt an, was heute die Solarmodule erzeugt haben, der untere Wert was aus PV Energie / Akkuenergie ins Haus zum direkten Verbrauch gespeist wurde?
Wobei mir das Fusion Solar Portal ganz andere Dinge anzeigt.
Danke!
Gruß surfer
-
@surfer09
inputPower: Invertereingangsleistung aus den PV Modulen
inputPowerWithoutEfficencyLoss: Eingangsleistung verringert durch die Inverterverluste
dailySolarYield: Integral über inputPowerWithoutEfficencyLoss
dailyInputYield: Ist der Versuch den "Heutigen Energieertrag" aus dem FusionSolar Portal nachzubauen.Hier https://github.com/bolliy/ioBroker.sun2000/blob/main/docs/calculation.md wird der Zusammenhang aufgezeigt.
Stephan
-
@surfer09 Das ist vielleicht auch noch interessant:
https://forum.iobroker.net/post/1118425
https://forum.iobroker.net/post/1127961
https://forum.iobroker.net/post/1128936 -
@bolliy
Kurze Frage
Kann es sein, dass bereits bei Input Power die WR-Verluste enthalten sind ?Wenn ich die Werte von String - PV1Current und PV2Current addiere komme ich auf größere Werte, als bei Input Power.
Die Differenz könnte den WR-Verlusten entsprechen, da die Differenz etwa gleich ist (hier im Beispiel 4,717-4,61 = 107Watt und 4,61-4,518=92Watt ?(Meine Vermutung ist, dass die Differenz der Fusionsolar-Ertragswerte und dem Wert für InputPower der Eigenverbrauch der Luna2000-Batterie ist - Thema sinkender PV-Ertrag)
-
Ich würde halt gerne berechnen, was mir die PV-Module + Batterie ins Haus zum Verbrauch gespeist hat. Aber irgendwie steige ich bei den Objekten nicht ganz durch
Zu Berechnung würde ich jetzt den sun2000.0.inverter.0.battery.currentDayDischargeCapacity nehmen, aber wo sehe ich, was die PV Module direkt ins Haus gespeist haben? Geht das überhaupt?Vielleicht gibt es den fertigen Wert auch schon, den ich suche?
Gruß surfer