NEWS
Test Adapter sun2000 v0.1.x - Huawei Wechselrichter
-
@bolliy aus irgendeinen Grund hatte der Adapter meine CPU zur extremen Auslastung gebracht. Der Adapter ist dann von selbst ausgestiegen!
{"timeout":10000,"delay":0,"connectDelay":5000,"modbusAdjust":false,"min":0,"max":6000,"stat":{"successLevel":10,"successCounter":0,"successSumCounter":61,"errorCounter":0,"errorSumCounter":1,"lastLength":2,"SuccessDelay":0,"ErrorDelay":0}}
-
@dragst3r 'It's Not a Bug, It's a Feature.'
Nach der (Erst)nstallation des Adapter wird 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.https://forum.iobroker.net/post/1126843
Stephan
-
@bolliy ups... sorry. Hatte ich nicht richtig gelesen. Ich teste es erneut. Dank dir.
EDIT: Es war ein Fehler meinerseits. Durch eine falsche Berechnung in einem Skript hatte er die InfluxDB ausgelastet.
-
@bolliy
erstmal Danke für die Entwicklung dieses tollen Adapters, worauf ich schon fast ein Jahr warte.Fragen:
- Kann der Adapter schon irgendwelche Werte auf den WR zurückschreiben oder Einstellungen verändern (ich habe aktuell Version 0.2.1 installiert) und falls ja, welche (z.B. min SOC, maximale Ladeleistung Batterie, minimale Ladeleistung Batterie, Batterie in den Ruhemodus / Standby-Modus / Betriebsmodus versetzen) und ab welcher Adapter-Version ?
- Kann der Adapter bisher nur Werte vom WR auslesen ?
- Welche Firmware-Versionen für Sun2000, Luna2000, Dongle und MBus sind die Mindestanforderungen für den Sun2000-Adapter (meine Installierten Versionen: WR V100R001C00SPC153, Akku V100R002C00SPC117, Mbus V100R001C00SPC330, SDongleA-05 V100R001C00SPC133) ?
VG
Besimo -
@besimo
zu 1. Nein, ist aber geplant. Benötige ich auch für meine Anwendung
zu 2. ja
zu 3. mind. SDongleA-05 V100R001C00SPC133. (siehe readme https://github.com/bolliy/ioBroker.sun2000) Aufdatieren wird allerdings empfohlen.Die aktuelle Version ist v0.3.1 - bitte auch aktualisieren!
Stephan
-
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.