NEWS
Test Adapter sun2000 v0.1.x - Huawei Wechselrichter
-
Mir ist aufgefallen als der WR in Standby ging, das der Adapter aufgehört den Hausverbrauch zu aktualisieren. Erst als der Adapter neu gestartet wurde, nach dem Standby sozusagen, wurden die Werte wieder aktualisiert.
Jedoch habe ich noch in Log nachts stehen:
sun2000.0 2024-02-15 20:24:02.361 warn Error while reading from 192.168.2.16 [Reg: 30000, Len: 75, modbusID: 2] with: Timed out
-
@dragst3r Momentan befindet sich der Adapter (v0.3.1) noch im Prozess to stable https://github.com/ioBroker/ioBroker.repositories/pull/3305
Danach kümmere ich mich gerne darum...
Ihr dürft den Pull Request gerne mit bewerten - dann geht es vielleicht etwas schneller. -
@bolliy Ich konnte die aktuelle Version 0.3.1 nun auch testen und endlich läuft es auch bei mir mit zwei Wechselrichtern. Das Intervall konnte ich nun auf 20s setzen was vorher überhaupt nicht ging. Er hat es dann wohl angepasst auf 23,448s. Jedenfalls sind auf den ersten Blick die Timeout Fehlermeldungen bei mir verschwunden und er aktualisiert die Daten sehr viel schneller als vorher.
Eine Frage, falls jemand vielleicht die gleiche Konstellation hat. Ich wollte nun Überschussladen mit NRGKick umsetzen und habe da auch eine entsprechende Lizenz. Aber das scheint wohl gar nicht zu gehen. Die NRGKick gelingt da keine stabile Verbindung (wohl die gleichen Timeout Probleme wie der Adapter zuvor hatte). Bzw. kann es ggf. gar nicht gehen weil der Adapter nun schon die Daten abfragt und das Dongle eine zweite Abfrage nun gar nicht mehr schaffen würde?
Bliebe dann ggf. als Alternative dann doch nur EVCC oder wie habt ihr das umgesetzt, also Abfrage der Daten + Überschussladen parallel?
-
@lcars toll, dass es jetzt bei dir auch funktioniert
Wenn du neben dem sun2000 Adapter auch mit deiner Wallbox über modbus tcp auf die WR zugreifen möchtest, benötigst du einen sog. modbus proxy.
Ich habe leider noch keine Erfahrungen mit einem mobus proxy. Aber dieser soll funktionieren: https://github.com/tiagocoutinho/modbus-proxy
LG Stephan
-
@lcars sofern du den modbus-proxy einsetzt und dieser funktioniert, dann solltest du die auto-adjust Funktion aktivieren. Dann klappt es bestimmt auch mit dem angestrebten 20s Intervall.
-
@lcars ich übergebe die Werte via MQTT an EVCC. Erscheint mir das einfachste.
-
Leider läuft der modbus-proxy bei mir nicht und bricht beim Start immer mit einer Fehlermeldung ab die auch andere berichten. Getestet mit docker und auch richtig installiert auf raspi.
Ich habe da als Alternative dies nun über einen haproxy laufen und es geht. Jedenfalls ruft der Adapter die Infos nun über diesen Proxy der max. nun eine Connection zu dem Huawei Dongle aufbaut.Mit dem NRGkick muss ich dann mal sehen ob das parallel nun läuft, aber da scheint bei denen die Software wohl noch buggy zu sein.
-
@lcars ich könnte mir vorstellen einen sog. modbus-read-cache in den Adapter einzubauen. Ein third-party device (z.B. eine Wallbox) könnte sich dann die Daten (virtueller Zähler) über den Adapter ziehen (all out of the box). Das würde sehr schnell und ohne timeouts funktionieren.
Wie ist die Meinung hierzu? -
@bolliy Das wäre optimal. Im Grunde fragt die Wallbox auch nur irgendwelche Register ab (von versch. ModBus IDs wenn man mehr als einen Inverter hat). D.h. du müsstest diese Abfragen beantworten. D.h. es könnten auch Register sein die du selbst nicht abrufst. Und man müsste dann die Geschwindigkeit managen. Z.B. du fragst deine Liste der Register ab in dem Intervall, wenn von außen aber auf dem Cache neue Anfragen kommen zu ggf. Registern die du nicht hast, dann müsstest du das zeitlich managen damit es nicht zu schnell abgefragt wird weil es sonst wieder Timeouts oder der Busy Fehler kommt.
Weiterhin müsstest du dann auch einen Port aufmachen (am besten die Portnummer könnte man angeben) worüber man sich dann verbinden kann zu dem Cache. -
@lcars ich glaube die WB fragt nur Werte vom Dongle (modbus id 100) ab. Die Inverter interessieren die WB nicht. Ich habe den dongle auch schon über mein Treiber Model eingebunden.
Das sind die Daten, auf die die Wallbox scharf ist. Aus diesen Daten (kummullierte Werte der WR) kann der PV Überschuss und die WB die Ladeleistung berechnet werden. Ich hoffe nicht das WB Daten an den Dongle schreibt will - was ich aber nicht glaube
Ich würde auch erstmal keine Anfragen an den Dongle durchreichen, sofern dieser nicht aus dem Cache beantworte werden können. Die ip adresse und der port würden über einen weiteren Tab konfigurierbar sein. Der modbus-read-cache (sinniger Name müsste noch gedacht werden) wird bei der Erstinstallation auch deaktiviert sein. Also der User muss diesen manuell aktivieren.
Stephan -
@bolliy Wenn du eine Version hast kann ich es gern ausprobieren. Was ich eben gemerkt habe, der Dongle lässt eben nur eine Verbindung zu und reagiert eben mit den Busy und Timeout Meldungen wenn es "zu schnell" geht. Ich hatte erst Zugriff von der Wallbox auf den Dongle als ich den Adapter deaktiviert habe (die Instanz).
Lass es uns einfach mal testen. Dann würde ich mir den Workaround über den haproxy sparen bzw. das modbus-proxy Projekt scheint wohl nicht mehr richtig zu funktionieren. -
@lcars ja, modbus lässt nur eine Verbindung per Definition zu (modbus seriell)! Man darf nicht mit mehreren Clients auf eine modbus Instanz zugreifen - sonst hagelt es Fehler.
Der modbus-read-cache hätte auch den Vorteil, dass der dongle nicht unnötige Anfrage erhält, die ja bereits abgefragt worden sind. Die modbus Implementation von huawei ist wahrlich nicht gut gemacht. Sonst hätten ich nicht so einen Aufwand mit dem optimalen modbus timing gehabt. Meine wallbox (wallbe - Steuereinheit von phönix contakt) ist deutlich robuster. Da hatte ich noch nie timeouts oder sonstiger Fehlermeldungen.Wenn es etwas zu testen gibt, melde ich mich gerne...
Stephan
-
@bolliy Ich denke ich konnte mein "NRGKick Problem" anders lösen. Es ist möglich eine Custom API bereit zu stellen. D.h. man kann der Wallbox eine URL geben wo sie nachfragt und die Daten abruft. D.h. ich habe mir einen Server in ioBroker gebaut der die Daten des Adapters nutzt und in JSON aufbereitet so, dass die Wallbox das verarbeiten kann. Damit umgehe ich den zweiten Abruf über den ModBus und kann auch viel schneller antworten als ModBus es könnte.
Somit bleibt der Adapter als einziges mit dem ModBus verbunden. -
@lcars für deine Wallbox eine super Idee! Für den Huawei SCharger geht das aber nicht, da dieser nur einen physischen Zähler oder einen virtuellen Zähler per modbus einbinden kann. Würdest du dennoch beim Testen der nächsten Version (mit modbus-server) unterstützen?
-
@bolliy Ja klar gern.
-
Hallo zusammen.
Erstmal vorweg: der Adapter klappt hervorragend.
Ich bräuchte allerdings einmal eure Hilfe bei der Unterscheidung der vielen teilweise gleich klingenden Werte. In speziellen suche ich die folgenden Objekte:
1.: Aktueller Netzbezug bzw aktuelle Einspeisung
2.: Aktueller Gesamt Vernrauch im HausVielen Dank
-
@edde danke
Netzbezug: sun2000.0.meter.activePower
Hausverbrauch : sun2000.0.collected.houseConsumptionDas ist vielleicht auch noch interessant:
https://forum.iobroker.net/post/1118425
https://forum.iobroker.net/post/1127961
https://forum.iobroker.net/post/1128936Da ich noch mit der Funktionserweiterung des Adapters beschäftigt bin, habe ich momentan keine Zeit die States zu dokumentieren.
Stephan
-
Generelle Frage zu dem SmartLogger. Ist der deutlich schneller als das Huawei WLAN Dongle oder reagiert das gleich? Die Abfrage des Dongles ist zwar soweit jetzt relativ stabil und es werden die Daten im Intervall von ca. 20s - 25s abgefragt. Aber was würde der SmartLogger theoretisch mehr bieten?
-
Ich habe gerade einen neue Test-Version des Adapters sun2000 hier https://github.com/bolliy/ioBroker.sun2000 veröffentlicht. Dieser Stand wird zukünftig die Nebenversionsnummer 0.4.x erhalten.
Die Installation erfolgt über den Expertenmodus. Danach auf die „Krakenkatze“ klicken und dann „von GitHub“ den Adapter installieren.
Viele von euch kennen sicherlich das Dilemma, dass nur ein modbus Client (früher als master bezeichnet) an den Wechselrichter (Server früher Slave bezeichnet) gleichzeitig Anfragen stellen kann. Die modbus-Schnittstelle des Huawei Inverters ist leider nicht multi-client fähig!
In die Entwicklung habe ich nun ein modbus-proxy implementiert. So können nun mehrere Clients über das modbus-proxy lesend auf den Wechselrichter samt SDongle zugreifen. Eigentlich greifen die Clients auf die vom Adapter bereits gelesenen Registerdaten (read-cache) zu. Dieses geht deutlich schneller und robuster als der direkte Zugriff über den SDongle zum Wechselrichter.
So könnt ihr ganz konkret zum Beispiel eure Wallbox von Huawei (SCharger) über den Proxy gleichzeitig mit dem Adapter und weiteren third-party Geräten wie Energy Manager (smartfox usw.) an den Wechselrichter anbinden. Für den SCharger muss dann als virtueller Zähler die ip-Adresse der ioBroker Instance angegeben werden auf dem der sun2000 Adapter mit aktivierten modbus-proxy läuft.Im Konfigurationsfenster gibt es einen neuen Reiter „MODBUS PROXY“. Dort muss der Proxy aktiviert werden. Die voreingestellte ip „0.0.0.0“ bedeutet, dass der Proxy an allen Netzwerk-Interfaces lauscht.
Über Tests und euer Feedback freue mich sehr.
-
@bolliy richtig stark! Werde ich gleich erstmal testen. Habe gestern den SCharger installiert