Koexistenz HA und evcc

Auf der 192.168.178.84 läuft bei dir Home Assistant, richtig?
Wie lautet die IP des Wechselrichters? Und wo hast du die eingetragen?

Mit deiner Frage werde ich jetzt ganz konfus:
192.168.178.56 Home Assistant
192.168.178.67 Solvis Wärmepumpe
192.168.178.84 Sungrow WR Lan für Modbus
(192.168.178.83 Sungrow WR Dongel für Cloud)

So wie du das oben beschrieben hast, wäre die 84 die Upstream-IP, oder?
In:
EVCC.yaml 84:503
Sungrow.yaml 84:503, wenn scharf
Modbus.yaml 67.502, wenn scharf

56 für HA würde hier ja niergends auftauchen.

Wo ist jetzt mein Denkfehler?

Der Denkfehler ist, dass du auf das falsche Gerät zugreifst. Das hatte ich bei deinem Log oben schon vermutet.

Der ModBus Proxy läuft doch als AddOn in Home Assistant. Also hat der Proxy auch die IP von Home Assistant. Also 192.168.178.56:503.

ALLE Geräte müssen auf diese IP zugreifen:

  • Home Assistant selbst (um die Daten auf dem Dashboard einzubinden)
  • EVCC (für die Wallbox-Steuerung)
  • deine Solvis Wärmepumpe (wenn die wirklich Daten vom Wechselrichter direkt abgreifen soll. Ich lese das bei Dir eher so, dass du die Wärmepumpe per ModBus in HA einbinden willst… oder? Dann wäre die Wärmepumpe hier völlig irrelevant, weil HA die Daten auch direkt von der WP holen könnte)

Nur der ModBus Proxy selbst greift auf den Wechselrichter zu. Also auf die 192.168.178.84:502.

Heureka

Deine Erläuterung hat es gebracht! Danke für deine Geduld.

Ich habe zig Forenbeiträge gelesen und auch einige Fragen gestellt, so habe ich das nie verstanden.

Zum Schluss habe ich mir selbst ein Bein gestellt. IP und Port habe ich als Secret definiert. Das mag EVCC nicht,

Ich bin übrigens dadurch auch der Empfehlung des Modul-Autors gefolgt und habe die Ports wieder auf den Standard-Port 502 gestellt.

Also nochmals 1000 Dank
Jürgen

1 Like

Super! Freut mich, dass es klappt.

Ja - das wollte ich dir auch noch sagen. Es gibt keine Notwendigkeit den Port zu ändern. Bei mir ist der 1502 halt vom Wechselrichter vorgegeben - aber bei ModBusProxy nutze ich auch den Standardport.

Habe exakt die gleiche Problematik wie du @jove01

Evcc läuft als Pugin in HA (Docker).
modbus-proxy plugin ist in HA installiert.

WR: 192.168.188.95 Port 8899 (Modbus Port von Deye)
HA auf Raspi: 192.168.188.46

config modbus proxy plugin

log modbus proxy plugin

2023-08-22 18:53:23,682     INFO modbus-proxy.Client(192.168.188.46:33200): new client connection
2023-08-22 18:53:23,683    DEBUG modbus-proxy.Client(192.168.188.46:33200): received b'\x00\t\x00\x00\x00\x06\x01\x03\x02q\x00\x01'
2023-08-22 18:53:26,081    ERROR modbus-proxy.ModBus(192.168.188.95:8899): write_read error [2/2]: TimeoutError()
2023-08-22 18:53:26,082     INFO modbus-proxy.ModBus(192.168.188.95:8899): closing connection...
2023-08-22 18:53:26,083     INFO modbus-proxy.ModBus(192.168.188.95:8899): connection closed
2023-08-22 18:53:26,084     INFO modbus-proxy.Client(192.168.188.46:48896): closing connection...
2023-08-22 18:53:26,085     INFO modbus-proxy.ModBus(192.168.188.95:8899): connecting to modbus...
2023-08-22 18:53:26,087     INFO modbus-proxy.Client(192.168.188.46:48896): connection closed
2023-08-22 18:53:26,091     INFO modbus-proxy.ModBus(192.168.188.95:8899): connected!
2023-08-22 18:53:26,091     INFO modbus-proxy.ModBus(192.168.188.95:8899): delay after connect: 0.1
2023-08-22 18:53:26,193    DEBUG modbus-proxy.ModBus(192.168.188.95:8899): sending b'\x00\x0e\x00\x00\x00\x06\x01\x03\x02N\x00\x01'

Log von evcc (

[site  ] ERROR 2023/08/22 18:49:32 pv 1 power: add[0]: read failed: read tcp 192.168.188.46:49702->192.168.188.46:502: i/o timeout
[site  ] DEBUG 2023/08/22 18:49:32 pv power: 0W
[site  ] ERROR 2023/08/22 18:50:02 battery 1 power: read failed: read tcp 192.168.188.46:46760->192.168.188.46:502: i/o timeout

Ich würde Dir raten mal ALLES zu stoppen, dass definitiv nichts auf den Wechselrichter zugreift. Also EVCC, Home Assistant und auch eventuelle sonstige Anwendungen die per ModBus zugreifen. Dann startest du als erstes den ModBus Proxy und checkst im Log, ob der Zugriff auf den Wechselrichter per ModBus funktioniert.

Wenn der funktioniert, lässt du mal testweise eine Anwendung (z.B. evcc) auf den ModBus Proxy zugreifen um die Daten abzugreifen. Wenn das auch geht, können auch mehrere Anwendungen auf den ModBus Proxy zugreifen und bekommen dieselben Daten.

Wichtig ist, dass NIEMAND sonst direkt auf den Wechselrichter zugreift außer ModBus-Proxy.

1 Like

Ergänzend noch meine Config:

Upstream-Host: hier muss die IP des Wechselrichters stehen
Upstream-Port: hier der Port, über den man am Wechselrichter per ModBus connecten kann
Listen-Port: hier lässt du am Besten 502 stehen
Connection Time steht bei mir auf 0,1
Timeout auf 10
Loglevel: INFO

Netzwerk:
Port auf deinem Host, die vom Add-On verfügbar gemacht werden:
502/tcp

Letzterer muss identisch sein mit dem Listen-Port

evcc muss dann auf die IP von Home Assistant mit dem Port 502 zugreifen.

1 Like

Danke @Schlichi83

habe ich alles so gemacht.

EVCC config

meters:

  - name: my_pv
    type: template
    template: deye-hybrid
    usage: pv
    modbus: tcpip
    id: 1
    host: 192.168.188.46 # Hostname
    port: 502 # Port  
    
  - name: my_grid
    type: template
    template: deye-hybrid
    usage: grid
    modbus: tcpip
    id: 1
    host: 192.168.188.46 # Hostname
    port: 502 # Port  
    
  - name: my_battery
    type: template
    template: deye-hybrid
    usage: battery
    modbus: tcpip
    id: 1
    host: 192.168.188.46 # Hostname
    port: 502 # Port

Wechselrichter ist 192.168.188.10 (was auch der Upstream Host + Port in modbusproxy ist)

Habe auch HA mal 2h nicht angelangt nach dem Neustart. Danach erst modbus proxy und dann evcc. Aber es klappt leider nicht.

Der ModBus-Zugriff auf den Wechselrichter funktioniert aber auf direktem Weg, oder?
Es greift sonst niemand auf den Wechselrichter zu?
Poste mal noch die Config von modbus proxy.

Hi @Schlichi83 ,

Ich habe meinen solis inverter bereits über modbus in Home Assistant und möchte gerne evcc als addon nutzen. Wie funktioniert das genau mit dem Proxy ? Hast du ein Tutorial oder so? Welches addon nutzt du und wie wird das genau eingerichtet?

Danke für deine Hilfe.

Grüße Philipp

@a13xde wo trägst du die mqtt publish genau an? configuration.yaml? ich habe leider keine ahnung wie ich den mqtt broker nutzen kann. Aktuell bekomme ich über modbus die Daten meines Inverters in Home Assistant und möchte diese über mqtt in evcc nutzen…

Hi Phil2204,

es steht eigentlich alles im Thread hier. Lade dir das Add-On ModBus Proxy. Die Verbindung zwischen Wechselrichter und Home Assistant wird dann dahingehend geändert, dass nur noch der ModBus Proxy auf den Wechselrichter zugreift. Und HA und EVCC dann beide auf den ModBus Proxy.

Vorher solltest du aber testen, ob es bei deinem Wechselrichter überhaupt so ist, dass nur ein Gerät per ModBus zugreifen kann. Sonst bräuchtest du den Proxy gar nicht.

EVCC lädst du ebenfalls als Add-On. Dazu gibts auch Guides bei YouTube.

Viele Grüße
Schlichi83

@Phil2204 Das ist eine Automatisierung

Einfach in Home Assistant eine neue Automatisierung anlegen, dann rechts oben auf die 3 Punkte gehen und “Als YAML bearbeiten” wählen. Du kannst dann die Automatisierung 1:1 aus meinem Post oben rein kopieren, dann wieder über die 3 Punkte rechts oben in den visuellen Editor wechseln und die states und topics auf deine Werte anpassen.

Hi @Schlichi83 ,

das Problem ist, dass ich über EVCC config meinen Wechselrichter direkt nicht einbinden kann. Gibt immer eine Fehlermeldung, dass er die IP nicht findet. Demnach habe ich den Proxy installiert und bei dem Solax Modbus (Addon für meinen Inverter in HA) die Adresse vom HA konfiguriert. Funktioniert ohne Probleme. Danach habe ich mit der gleichen IP den Inverter in EVCC eingebunden und hier bekomme ich die gleiche Fehlermeldung wie oben. Daher mein Versuch nun über MQTT.

Hi @a13xde ,

Mqtt funktioniert nun, danke dir! Nun muss ich meine (ätzende) Elli Wallbox über eebus noch einbinden😏

1 Like

Hallo zusammen,

Bin auf diese Community über eine Suchanfrage gestoßen.
Habe folgende Frage:
Habe Homeassistant und möchte dort meinen WR, EVCC einbinden.
Der WR lässt sich über die Goodwe Integration über die IP Adresse problemlos einbinden.
Nur bei EVCC habe ich dann Probleme dass ich folgende Fehlermeldung bekomme: ERROR 2023/10/01 14:42:48 grid meter: read failed: dial tcp 192.168.178.78:502: connect: connection refused

Denke das hängt damit zusammen dass nur eine Verbindung zum WR aufgebaut werden kann.

Habe nun das Modbus-Proxy Addon installiert und die Daten ausgefüllt Protokoll:
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
Preparing to run modbus-proxy
Upstream: 192.168.178.78:502
Listen: 502
Timeout: 10
Connection Time: 0.1
Loglevel: INFO
Generated Config
devices:

  • modbus:
    url: 192.168.178.78:502 # device url (mandatory)
    timeout: 10 # communication timeout (s) (optional, default: 10)
    connection_time: 0.1 # delay after connection (s) (optional, default: 0)
    listen:
    bind: 0:502 # listening address (mandatory)
    logging:
    version: 1
    formatters:
    standard:
    format: “%(asctime)s %(levelname)8s %(name)s: %(message)s”
    handlers:
    console:
    class: logging.StreamHandler
    formatter: standard
    root:
    handlers: [‘console’]
    level: INFO
    2023-10-16 07:32:21,010 INFO modbus-proxy: Starting…
    2023-10-16 07:32:21,018 INFO modbus-proxy.ModBus(192.168.178.78:502): Ready to accept requests on 0:502

Passt das soweit ?

Wenn ich dann den Goodwe-WR über das Addon über die IP von Homeassistant einbinden möchte bekomme ich eine Fehlermeldung.

Habe ich da einen Denkfehler oder geht dass dann nicht mehr ?

Grüße
Weil

Hi @a13xde , ich habe noch ein paar Fragen.
Ich habe nur einen Combined Value für Netzbezug und Einspeisung.
Hast du eine Idee, ob man in MQTT oder EVCC jeweils den negativen bzw. positiven Wert als Einspeisung bzw. Bezug einstellt?

Hast du hier nicht das gleiche Thema bei der Batterie?

Das ist kein Problem @Phil2204.
Sowohl mein power_meter_active_power_1 als auch mein battery_charge_discharge_power_1 in der evcc.yaml aus meinem Post von oben haben sowohl positive als auch negative Werte.

EVCC kommt damit klar, siehe: meters | evcc - Sonne tanken ☀️🚘

Zitat:

evcc benutzt positive (+) Werte für eingehende Ströme (Netzbezug, PV Erzeugung, Hausbatterie-Entladung) und negative (-) Werte für ausgehende Ströme (Netzeinspeisung, PV Wechselrichter Ruhestrombedarf oder Hausbatterie-Ladung). Jeder anderweitiger Strombedarf, inklusive der Wallbox, ist immer ein positiver (+) Wert.

Hi @a13xde , ich kriege die Daten PV Generation und Netzbezug und Netzeinspeisung hin.
In EVCC zeigt er mir allerdings bei Netzeinspeisung an, dass Netzbezug stattfindet.
Kannst du mir sagen, wie ich die Daten umdrehe (vom Power Meter für Netzbezug/Einspeisung)?