NEWS
Test Adapter sun2000 v0.1.x - Huawei Wechselrichter
-
Zu Ostern wurde eine neue Testversion sun2000 Adapter v0.6.2 veröffentlicht.
Frohe Ostern!
Die Installation erfolgt über npm oder morgen über das Beta Repository.
Es ist ein weiterer Versuch besser mit dem standby mode des Wechselrichters umzugehen. Wenn ich den standby mode (deviceStatus == 0x0002) erkenne, erfolgt jede Minute nur noch eine verdeckte Anfrage (Fehlermeldungen werden unterdrückt) an den deviceStatus (Reg: 32089). So erkenne ich besser eine Änderung am deviceStatus.
Im standby können keine Daten vom Wechselrichter abgefragt werden, da diese ansonsten mit einem Timeout quittiert werden würden. Alle Datenpunkte des Inverters verharren unverändert auf dem alten Wert. Sofern an dem in standby befindlichen sun2000 WR auch noch der Smart Power Sensor ageschlossen ist, aktualisieren sich die Wert im Pfad meter leider auch nicht.Bitte denkt auch an das node.js update.
Changelog
0.6.2 (2024-03-31)- standby detection adjusted
- Improvement of logs
Viel Spass beim Testen!
Lg Stephan
-
@edde ich bin mir nicht sicher ob wir tatsächlich vom selben sprechen. Wenn ich direkt per Wlan am WR hänge (unabhängig vom Dongle), dann kann ich ebenso den WR oder die Batterie "schreibend" ansteuern. In dem Fall brauchst du dich nicht mit dem Enpal Kram verbinden.
-
@melonea
Alles gut, denke ich weiß schon was du neinst, aber ich kann den WR über ID1 leider nicht ansprechen. Es klappt mit der direkten Wlan Verbindung nur mit ID0 und lesend. Daher kommt der Wunsch mich mit an den Dongle zu hängen. -
Gibt es ggf. schon Erfahrung mit Huawei Emma (https://ske-solar.com/produkt/huawei-energy-management-assistant-emma-a02/). Das wäre eine bessere Version des Dongles. Laut Datenblatt hat es auch WLAN/LAN bzw. ModBus TCP. D.h. könnte man dann auch hiermit abfragen?
Überlege grad hierauf zu wechseln um von dem Dongle wegzukommen oder wäre der Smart Logger hier doch besser? -
@lcars siehe issue https://github.com/bolliy/ioBroker.sun2000/issues/63
Wenn du die modbus definitions Informationen hast, schau ich mir das gerne an...Stephan
-
@bolliy said in Test Adapter sun2000 v0.1.x - Huawei Wechselrichter:
Danke damit wäre die Frage schon beantwortet. D.h. der SmartLogger wäre hier das stabilere System und was du jetzt schon unterstützt. Das wollte ich wissen Danke.
-
@bolliy Bis jetzt läuft es super, sodass ich nicht weiter mit nodered arbeiten muss. Mein Setup: 2 WR ohne Speicher.
Generell die Frage an euch. Für Überschusspower, welchen Wert nehmt ihr zugrunde in Differenz zum Hausverbrauch?
ActivePower, InputPower oder InputPowerWithLoss? -
-
@bolliy Breaking News
Wie bereits hier angekündigt unterstüzt der sun2000 Adapter nur noch node.js 18.x und höher! Zeitgleich wurde die Abhängigkeitet zum ioBroker host js-controller auf 5.x oder höher angehoben.
Deshalb gibt es jetzt einen Versionssprung auf v0.7.0 für den Adapter. Es wurden darüber hinaus keine Funktionsänderungen eingebracht.
Die Installation sollte besser über das Beta Repository erfolgen. So kann ich gezielter über Änderungen bzw. Paketabhängikeiten des sun2000 Adapters informieren. Ersatzweise kann die Installtion auch über npm erfolgen.
Sofern keine Fehler in der neuen Version von euch aufgedeckt werden, erfolgt eine Aufnahme ins stable Repository. (per pull request)
-
Guten Morgen.
Ich habe mich nun mit einem Raspberry parallel an die Enpalbox gehängt. Der Raspberry ist mir seinem internen LAN Anschluss an meinem Heimnetzwerk und ein iObroker darüber auch erreichbar. Gleichzeitig hängt ein USB zu LAN Adapter an dem Enpal Gezumpel.
Ich verstehe nun den Modbus Server nicht ganz. Standard ist die Adresse 0.0.0.0. Ich hatte nun folgende Vermutung:
Die Enpalbox spricht unveränderbar die WR Adresse 10.217.222.176 an. Ich hätte jetzt vermutet, dass man im SUN2000 Adapter nun diese Adresse als Modbus Proxy einträgt statt der 0.0.0.0 und dem WR eine andere IP Adresse zuweist, die wiederum im Adapter eingetragen wird?Probeweise habe ich die 0.0.0.0 gelassen, aber ich denke es kommt zum Konflikt, weil der Adapter UND die Enpal Box sich an der 10.217.222.176 anmelden wollen?
-
@edde der Adapter ist ein modbus-proxy (Stellvertreter des WRs) für die Enpal box.
Die Adresse unter dem Reiter modbus proxy ist die Netzwerk-Adresse an dem der modbus-proxy lauscht. 0.0.0.0 bedeutet an allen Netzwerkdevices des Raspberry.
Die Idee war, dass die enpal-box die Daten beim modbus-proxy des Adapters abholt. Der Adapter wiederum ist verbunden mit dem WR. Entweder über den SDongle oder über die WiFi-Schnittstelle des WRs.enpal-box --> Adapter (modbus-proxy) --> WR
oder ohne modbus-proxy direkt auf den WR (aber nicht über den SDongle)
(Könnte aber zu Timeouts Fehlern kommen, da es zu einem gleichzeitigem Zugriff auf die modbus-Schnittstelle kommt.)enpal-box ---------> WR (SDongle)
Raspi(Adapter) ----Wifi-----> WR (Wifi)Lg Stephan
-
@edde konkret müsstest du dich in das dedizierte Netzwerk vom der enpal-box --> WR "einschnüffeln". Im WR ist sicherlich eine feste IP-Adtresse für den SDongle hinterlegt.
Vielleicht ist an deinem raspberry pi noch eine freier Netzwerkanschluss. Diesen kannst du mit dem dedizierte Netzwerk (Netzwerk an dem der WR angschlossen ist) verbinden. Wenn du Glück hast, ist in der enpal-box ein DHCP Server verbaut. Dann bekommt du auto. an dem Interface eine ip zugewiesen.Auf der Linux console:
#sudo ip address sh
Falls du keine Adressenvergabe für das Device siehst, kannst du einfach eine Adresse für die Netzwerkarte ausdenken und manuell vergeben. Sollte natürlich eine ip Adresse aus selben Netzwerksegment wie von dem Netz (enpal-box --> WR) sein.
https://edv-loesungen.info/blog/78-setzen-einer-statischen-ip-adresse-unter-linux-debianDann kannst du mit arp-scan das Netz scannen und die arb-Tabelle auslesen.
#sudo apt-get install arp-scan #sudo arp-scan <WR-Ip-Adresse>/24
Dann wirst du sicher neben dem WR noch die enpal-box sehen
Nun kannst entweder die WR-Adresse in enpal-box ändern -oder-
du legst deinen WR auf eine neue ungenutzte ip in dem Netzwerksegment und den Raspi auf die alte ip des WR. Nun wirkt der Raspi wie ein Man-in-the-Middle. Die enpal-box weiss natürlich nichts von dem Umzug des WRs.Jetzt noch die ip im Adapter auf die neue WR ip setzen und ...
Ggf. wird aber die enpal-box dich mit Fehlemeldungen konfrontieren, da der modbus-proxy Schreibversuche der enpal-box nicht erlaubt (modbus error 5).
Nun kannst du aber über das 2te Netzwerkkarte auf den WR zugreifen. Dein Raspi bleibt aber über die 1te Netzwerkarte im lokalen NW erreichbar.
Stephan
-
@bolliy
Genau so wollte ich es probieren und habe mir bereits einen USB-Lan Adapter besorgt und mich zwischen gehängt. Sobald es die Zeit zulässt werde ich es probieren. Deine Ausführungen haben nochmal wertvolle Hinweise geliefert und mich vor allem bestärkt dass die Laienhaften Überlegungen klappen sollten.Ist eigentlich jemandem bekannt inwieweit die Enpal Box überhaupt etwas schreibt?
Habt ihr schonmal versucht in der Enpal Box die Config zu ändern? Scheinbar überschreibt die Bix meine IP Änderung immer -
Ich habe eine kleine Umfrage (7 Fragen) mit google Forms zur Nutzung des sun2000 Adapters erstellt.
https://forms.gle/WHx7j6xU8Mna7biS6
Die Daten werden vertraulich und anonym erhoben und nicht an Dritte weitergegeben!Ich erhoffe mir einen Überblck über das Nutzungsverhalten und eure Wünsche bezüglich der Weiterentwicklung des ioBroker sun2000 Adapters zu erhalten.
Ich freue mich auf eure Mitwirkung!
-
@bolliy
Sehr schöne Idee mit der Umfrage, natürlich habe ich schon fleißig teilgenommen.Ich stehe aktuell wieder vor dem nächsten Problem.
Der Raspberry hängt mit mit dem USB Adapter im Netz der Enpal Box und bekam die IP 10.217.222.240.
Der WR hat die IP 10.217.222.176 per DHCP.Wenn ich die IP in Wechselrichter auf static setze und ändere, scheint die Enpal Box aktiv nach dem WR zu suchen und ändert in ihrer config automatisch die Zieladresse auf die manuell veränderte IP des WRs.
Setze ich die IP in der config selber auf die des Raspberrys (.240) geht es eine Weile gut, bis auf einmal wieder die IP des WR (.176) eingetragen ist.
Egal wie, ich schaffe es so also nicht mich mit dem iObroker als einziger an den Modbus zu hängen und die Enpal Box auf den Proxy Server zu zwingen, sodass es wohl zu den gezeigten Fehlern kommt.
Hat jemand das ganze schonmal mit der Enpal Box probiert? Gibt es noch eine andere Stellschraube als die von mir gezeigte config Seite?
-
@edde sagte
Setze ich die IP in der config selber auf die des Raspberrys (.240) geht es eine Weile gut, bis auf einmal wieder die IP des WR (.176) eingetragen ist.
Du kannst die erweiterte Protokollierung des modbus-proxy aktivieren. Dann erfolgt jede Minute im Log eine Information über die angefragten Register im json Format. Du wartest solange bis die enpal box merkt, dass es sich nicht um die „echte“ Wallbox handelt. Dann schickst du mir das json als code <> .
Vielleicht können wir die enpal-box mit den richtigen Antworten austricksen.Lg Stephan
-
v0.7.1: Nur ein bugfix
Die Installation erfolgt über npm oder morgen über das Beta Repository.Changelog:
0.7.1 (2024-04-09)
• inverter model name too many characters #73LG Stephan
-
Zu der Umfrage
https://forms.gle/WHx7j6xU8Mna7biS6
wurde der Wunsch geäußert die Daten von dem sun2000 Adapter auf eine andere Instance bzw. ioBroker zu transferieren.Über den modbus-proxy kann der Adapter gespiegelt werden. Einfach im neuen Adapter die ip/port des zu spiegelnden Adapters (hier mit aktiviertem modbus-proxy) eingeben. Allerdings mit der Einschränkung, dass auf der gespiegelten Instanz keine Register geschrieben werden können.
Stephan
-
Die Verbindung zwischen zwei Instanzen klappt auf diesem Weg übrigens super.
Wo finde ich die json Datei?
Oder meinst du sowas:{"errno":102,"address":32066,"info":"inverter status","inverter":0,"modbusID":1,"tc":1712681848247,"lastread":1712681514918,"message":"Not all data can be read! Please inspect the sun2000 log.","modbus":{"timeout":10000,"delay":391,"connectDelay":9774,"modbusAdjust":false,"min":0,"max":6000,"stat":{"successSumCounter":1064,"errorSumCounter":104,"modbuscode_4":50,"ETIMEDOUT":51,"modbuscode_6":3},"adjust":{"successLevel":0,"successCounter":2,"errorCounter":0,"lastLength":2,"SuccessDelay":0,"ErrorDelay":0}}}
-
@edde nein - sieht so aus:
Modbus tcp server: {"stat":{"#WaitForConnected-address_37765-value_2-unidId_1":6,"#WaitForConnected-address_32080-value_2-unidId_1":5,"#WaitForConnected-address_32064-value_2-unidId_1":5,"#WaitForConnected-address_37113-value_2-unidId_1":4,"getMultipleHoldingRegisters-address_37113-value_2-unidId_1":9,"getMultipleHoldingRegisters-address_32080-value_2-unidId_1":8,"getMultipleHoldingRegisters-address_37765-value_2-unidId_1":8,"getMultipleHoldingRegisters-address_32064-value_2-unidId_1":9,"getMultipleHoldingRegisters-address_37000-value_50-unidId_1":2,"getMultipleHoldingRegisters-address_47081-value_18-unidId_1":2,"getMultipleHoldingRegisters-address_32000-value_11-unidId_1":2,"getMultipleHoldingRegisters-address_32016-value_4-unidId_1":4,"getMultipleHoldingRegisters-address_32089-value_1-unidId_1":2,"getMultipleHoldingRegisters-address_32066-value_50-unidId_1":2,"getMultipleHoldingRegisters-address_37100-value_38-unidId_1":4,"getMultipleHoldingRegisters-address_37758-value_30-unidId_1":2,"getMultipleHoldingRegisters-address_47415-value_4-unidId_1":2,"getMultipleHoldingRegisters-address_37411-value_1-unidId_100":2,"getMultipleHoldingRegisters-address_37498-value_20-unidId_100":4}}