Zum meinem Anliegen habe ich schon einiges gelesen, aber leider keine eindeutige Antwort gefunden.
Ich besitze seit 2 Jahren einen Huawei Wechselrichter mit Batterie.
Seit Anfang des Jahres habe ich einen Heizstab (AC ELWA2).
Beide lassen sich per Modbus TCP verbinden. PV Überschuss-Steuerung funktioniert (Konfiguration ohne HA).
Mir ist bewusst, dass Modbus nur eine Verbindung zulässt!
Da der Heizstab auf den WR per Modbus zugreift, hätte ich somit ein Verbindungsproblem zwischen HA und WR. Um dieses Problem aus dem Wege zu gehen, habe ich den Modbus-Proxy installiert. Der Heizstab verbindet sich mit dem Proxy und übermittelt auch seine Daten und kann die Wechselrichter Informationen auslesen.
Da in der Modbus-Proxy Konfiguration der WR ja hinterlegt wird, stellt sich für mich nun die Frage, wie ich die WR Daten ohne Huawei-Integration auslesen kann. Da die Huawei-Integration ja auch über ModBus-TCP läuft, hätte ich hier wieder ein Problem bei der Verbindung.
Vielleicht hab ich da auch ein Gedankenfehler. Für ein “Aufklärung” wäre ich sehr dankbar!
Das mit der “einen Verbindung” bei ModbusTCP ist nicht ganz richtig, wenn die TCP-Connection nach einem Request wieder geschlossen würde. Dann können mehrere Clients den Server abfragen - halt nur nicht gleichzeitig. Das Schließen können Client und Server machen; wenn du also eine deiner Komponenten so konfigurieren kannst? Oft geht das über eine Timeouteinstellung.
Hi,
ja also, habe wie folgt gestartet.
Alles was auf den Huawei zugegriffen hat deaktiviert. HA neu gestartet.
Dann Modbus Proxy mit dem Daten von Huawei eingerichtet.
In die EVCC yaml die IP vom HA anstelle der Huawei IP eingegeben. Modbus Proxy gestartet. HA durchgestartet,Danach lief schon mal EVCC wieder. Dann habe ich die Huawei Integartion auch mit der Ip vom HA eingerichtet,
Also beide Nutzprogramme holen sich die Daten von der HA Ip,
Bei läuft es prima. aber anders als in deiner Skizze
Die muss man im Modbus Proxy nicht angeben.
Nur den Port. Der war bei mir die 502. Also standart. Habe ich auch nicht verändert.
Bei der Id ist es über den SDongle die 1,
Muss aber nur bei den Diensten eingetragen werden, nicht im proxy
ich habe eine Huawei-Anlage mit mehreren Modbus-Clients am Laufen. Weil hier etwas Verwirrung herrscht, wie der Proxy funktioniert, hier ein Bild und eine Anleitung.
Das Grundproblem: Der Huawei-Wechselrichter bzw. Dongle nimmt immer nur eine Modbus-TCP-Verbindung gleichzeitig an. Hängen ELWA, Huawei-Integration und evcc alle direkt am Wechselrichter, gewinnt, wer zuerst kommt. Die anderen bekommen „Verbindungsversuch fehlgeschlagen“ oder haben Aussetzer.
Die Lösung: Nur der Proxy spricht mit dem Wechselrichter. Alle anderen Geräte sprechen mit dem Proxy, also mit der IP von Home Assistant. Der Proxy reicht die Anfragen nacheinander an den Wechselrichter weiter.
Einrichtung in Home Assistant
Add-on installieren: Unter Einstellungen → Add-ons → Add-on Store → ⋮ → Repositories die Adresse https://github.com/Akulatraxas/ha-modbusproxy hinzufügen und dann ModBusProxy installieren.
Konfiguration des Add-ons:
upstreamhost: 192.168.1.50 (IP des Wechselrichters)
upstreamport: 502
listenport: 502
Im Abschnitt Netzwerk des Add-ons muss Port 502 aktiv sein.
Keine Slave-ID im Proxy! Die gehört nur in die Clients.
Vor dem Start alle direkten Verbindungen trennen: In der ELWA die Modbus-Abfrage kurz deaktivieren, die Huawei-Integration und evcc kurz deaktivieren. Sonst hält noch jemand die eine Verbindung. Notfalls Dongle oder Wechselrichter einmal neu starten.
Add-on starten und ins Protokoll schauen, ob es sich mit 192.168.1.50 verbindet.
Alle Clients auf Home Assistant umstellen:
Client
Host
Port
Slave-ID
Huawei-Integration
192.168.1.29
502
wie bisher (beim Dongle meist 1)
evcc
192.168.1.29
502
wie bisher
AC ELWA 2
192.168.1.29 statt 192.168.1.50
502
wie bisher
Die Huawei-Integration muss dafür meist gelöscht und neu hinzugefügt werden, weil sich die Host-Adresse nachträglich schlecht ändern lässt.
6. Clients nacheinander einschalten und jeweils prüfen, ob Werte kommen.
Falls die Huawei-Integration über den Proxy trotzdem nicht verbindet (das Problem gibt es leider öfter, siehe auch den Thread „Huawei Integration und modbusprxy“): Im Add-on testweise connection_time auf 1 erhöhen. Das ist die Pause nach jeder Verbindung, die einigen Huawei-Nutzern geholfen hat. Alternativ kann evcc seine Werte auch aus den Entitäten der Huawei-Integration in Home Assistant holen statt per Modbus. Dann braucht evcc gar keinen eigenen Zugang zum Wechselrichter.