Huawei Integration und modbusprxy

Hallo Zusammen,

kein elementares Problem aber vielleicht kann mir ja jemand helfen. Ich möchte auf meinen 10KTL mit Home Assistant über einen Modbusprox zugreifen. Ich habe mehrere Dienste, die die Daten vom WR brauchen. Ein Versuch die Dienste direkt auf den WR bzw. Dongle zugreifen zu lassen führte immer wieder zu Fehlern in der Kommunikation. Daher die Idee mit dem Proxy. Ich habe unter HA den Proxy installiert und auf den WR konfiguriert. Wenn ich jetzt die HUAWEI Integration auf den Proxy umkonfiguriere kommt nur die Meldung eines unerwarteten Fehlers und die Integration startet nicht. Zurück auf den WR und alles läuft. D.h. Ich bekomme den Proxy nicht in die Kommunikation rein. hat jemand eine Idee oder es sogar schon selbst gelöst. Würde mich freuen. Ich weiß, dass die modbus Themen bei den WR etwas bescheiden sind. Ich habe auch mal was gelesen, dass ich den WR direkt abfragen könnte (wenn ich sein WLAN in mein Netz hole). Ich kann das aber nicht mehr finden. Vielleicht hab ich es auch nur geträumt.

Welchen hast du installiert?

Den hier?

Das mit dem Wechselrichter direkt geht auch, wenn du deinen HA per LAN mit dem Router und per WLAN mit dem AP des Wechselrichters verbindest

Jipp der ist installiert. Ich habe auch mal versucht mit der connection_time und dem timeout zu spielen. Das hat aber nichts gebracht.

Vielleicht hab ich ja was falsch verstanden und falsch gemacht. Ich hab im Proxy die IP-Adresse des WR bzw. Dongles eingetragen und sonst alles auf Standard gelassen. Ist ein ziemlich nacktes HAOS. Kanne es sein, dass der Port 502 von HA verwendet wird? Kann ich mir irgendwo rausschmeißen lassen welche Ports schon in Benutzung sind? Nach dem log wurde die Verbindung zum WR aufgebaut.

Hast du irgendeine Applikation die bereits auf den Dongle per Modbus zugreift? Hast du diese deaktiviert bevor du den Proxy getestet hast?

Zugriffsmöglichkeiten: Connecting to the inverter · wlcrs/huawei_solar Wiki · GitHub

für spätere Nutzung ggf noch interessant:

Es scheint ein Problem des Huawei Dongles zu sein. Ich weiß, dass der Huwawei Dongle sehr empfindlich ist was modbus Verbindungen angeht. Wenn ich die Instanzen einzeln auf den Dongle (..46:502) per modbus zugreifen lasse funktionieren die Verbindungen. Wenn ich den modbus-proxy dazwischen nehmen bekomme ich einen unerwartete Fehler. Im log steht leider gar nichts drin. Wenn ich den Proxy benutze um auf meine WP (ISG) zuzugreifen klappt das. Es muss also eine Besonderheit des Huawei Dongles sein. Das gleiche wenn ich den zugrundeliegenden proxy als Dockercontainer auf meinem unraid direkt laufen lassen. Hätte auch den Vorteil, dass ich mit einem Container mehrere modbus server adressieren könnte. Wäre ein Verbesserungsvorschlag für das addon.

Du musst in der Huawei Integration dann die IP von Homeassistent angeben, nicht mehr die vom Dongle

Ja hab ich. Wie gesagt mit anderen modbus Servern funktioniert es auch.

Was genau trägst du nacheinander in die Huawei Integration ein? Passt deine Slave ID nicht?

Ich trage ändere bei der Config des WR in HA nur die IP von der IP des Dongles auf die IP des Proxys. sonst lasse ich alles gleich. Ich habe 1 als Slave ID eingetragen.

Welchen Wechselrichter hast du genau?

kannst du mal genauer beschreiben was du mit “anderen modus Servern” meinst? Meinst du das z.B. EVCC fehlerfrei über den Proxy arbeitet?

Und nochmals die Frage - greifen andere Applikationen direkt auf den Dongle zu wenn der Proxy aktiv ist?

Mit anderen Servern meine ich mein ISG um meine Stiebel Eltron WP zu steuern und abzufragen. Das funktioniert über den Proxy gut. Evcc habe ich noch nicht eingerichtet.

Bei meinen Versuchen habe ich vorher alle Dienste, die auf den Dongle zugreifen deaktiviert. Einzig die Meldungen in das Fusion Portal gehen ja noch über den Dongle raus.

Ein anderen Ansatz. Hat von Euch schonmal das WLAN des WR ins LAN geholt (Bridge mit NAT oder statischer Route) und den WR direkt und nicht über den Dongle abgefragt. Ich habe gehört, dass soll viel schneller sein. Dazu hätte ich eine Farge. Kann der Dongle dann dran bleiben und weiter den Kontakt mit dem Fusion Portal halten. oder geht mir der dann verloren? Wenn das schon mal einer gamacht hat würd mich die Details sehr interessieren.

:crayon:by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)

Ok, dann funktioniert der Proxy soweit ja schon mal korrekt. Was sagt das Proxy Log wenn du die Verbindung einrichtest?

Die direkte Abfrage über den AP im Wechselrichter funktioniert auch einwandfrei. Du bruscht nicht zwingend eine Bridge, du kannst z.B. einen Wlan USB Adapter in HA einbinden und diesen direkt mit dem WR verbinden. Der Dongle wird dadurch nicht gestört, der kriegt nur Probleme wenn du dich direkt per Modbus RTU an den Wechselrichter hängst.

Das klingt cool. Werde ich mal ausprobieren. Da ich auch von unterschiedlichen HA Instanzen darauf zugreifen möchte ist es vielleicht einfacher ein Bridge zu nehmen. Sonsst müsste ich jedem HA einen WLAN Stick geben und da die Dinger bei mir in VMs auf meinem unraid laufen wird das tricky.

Ich habe das log mal verbose eingestellt. Bei meiner WP zeigt es mir alle Abfragen und Antworten. Beim WR zeigt er nach dem ersten request: modbus request 192.168.121.46:502: 12 bytes einfach gar nichts mehr, als ob er sich aufgehängt hätte.

Weißt Du ob ich den WR mit anfragen unterschiedlicher Dienste und HA Instanzen belästigen kann?

der AP im Wechselrichter kann nur einen Client, sprich auch hier bräuchtest du einen Proxy wenn du mehrere HA Instanzen direkt zugreifen lassen willst. Ein sauberes Master/Slave Konzept wie bei iobroker gibt es leider nicht, aber du könntest z.B. einen Raspberry o.ä. mit HA beim WR montieren, die Daten per Wlan abgreifen und mit GitHub - custom-components/remote_homeassistant: Links multiple home-assistant instances together an deine anderen Instanzen weiterleiten.

Schöne Idee. Verfehlt in dem Fall aber mein Ziel. Da ich mit der Testinstanz gerade das Verhalten mein WP und WR Integrationen testen möchte klappt das leider nicht. Gerade die letzten Updates von HA haben immer mal wieder ärger mit dem modbus Bibliotheken gehabt. Das wollte ich jetzt vorab testen. Vielleicht bekomme ich ja den WR über den Proxy angesprochen oder ich muss halt für die Tests die Integration auf dem Prodsystem solange stoppen.

Ok, dann poste bitte mal deine proxy config. Ich würde mal den delay von 0.1 auf 1 ändern.

Hier meine Config, wenn ich das HA Addon genutzt habe. Mit 0,2 (connection time) habe ich schon gespielt. Ich versuche morgen mal die 1. Was steuert der Parameter? Ist in der Doku nicht dokumentiert.

und hier die config wenn ich einen Docker Container auf meinem unraid selbst nutze. Hier binde ich den Host Port 5030 auf …46:502

devices:

- modbus:
  url: 192.168.121.32:502
  listen:
  bind: 0:502
- modbus:
  url: 192.168.121.46:502
  listen:
  bind: 0:503

:crayon:by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
s.a.: (Neues Update & Features - Hier in der Community 🫶)

mehr kommt nicht im log? da sollte eigentlich ja deutlich mehr zu sehen sein.

mit Connection Time definierst du ein delay nach jeder Verbindung. Der sollte eigentlich so gering wie möglich sein, aber wenn du im EVCC oder HA Forum schaust findest du viele Huawei Nutzer mit dem selben Problem und der Parameter hat bei einigen geholfen.

Alternativ kannst du dir noch den Proxy von EVCC ansehen, die haben mWn eine eigene Lösung. Es gibt dann noch vergleichbare Lösungen wie GitHub - IngmarStein/tcp-multiplexer: Multiplexer over TCP. Allows multiple clients to use TCP servers with a limited number of concurrent connections. die das selbe machen.

Hallo, ich habe mich auch gerade mit dem Thema beschäftigt. Da ich auch das Problem hatte, das ich nicht auf den WR zugreifen konnte. Willst du nur lesen oder auch schreiben?

Ich habe herausgefunden, das man in evcc auch über die Entitäten also ohne Modbus die Werte auslesen kann. Ich weis jetzt nicht ob das nicht schon allgemein bekannt ist, ich hab auf jeden Fall ne ganze weile gebraucht um es herauszufenden.

Ich hatte das Problem, das ich mit der Huawei Integration bereits einen Zugriff auf den WR hatte und dann daduch nicht mehr mit evcc zugreifen konnte. Ich habe dann die entitäten der Sensoren aus der Integration in die config von evcc eingetragen und das funktioniert jetzt ohne Probleme. Da meine Anlage von Enpal sit und ich eh keinen zugriff auf die Steuerung habe ist es auch egal, das ich so auf diese Art nicht in den WR schreiben kann.

In der evcc.yaml sieht das ganze dann so aus:

site:title: Zuhausemeters:grid: gridpv: pvbattery: battery
meters:
  • name: gridtype: homeassistanturi: http://homeassistant.local:8123token: !secret evccpower: sensor.stromzahler_wirkleistung_inverted
    
  • name: pvtype: homeassistanturi: http://homeassistant.local:8123token: !secret evccpower: sensor.wechselrichter_eingangsleistung
    
  • name: batterytype: homeassistanturi: http://homeassistant.local:8123token: !secret evccpower: sensor.batterie_leistung_evccsoc: sensor.batterien_batterieladung
    

1 „Gefällt mir“