modbusproxy
modbusproxy ist eine Liste von Geräten welche für Drittsysteme via Modbus TCP im Netzwerk freigeben werden.
Einige Geräte lassen nur eine sehr beschränkte Anzahl an Modbus TCP Clients zu. Im ungünstigsten Fall nur genau eine einzige Verbindung wie z.B. bei SolarEdge-Komponenten. Aber auch bei seriellen Modbus RTU RS485-Bussystemen ist ohnehin immer nur ein Master erlaubt.
Mit Hilfe von modbusproxy
ist es möglich, evcc zusätzlich als Modbus-Proxy einzurichten welcher die bestehenden Modbus-Verbindungen mit weiteren Systemen teilen kann.
Damit kommuniziert evcc direkt mit dem Gerät, weitere Systeme aber stattdessen mit evcc, welches die Kommunikationverbindungen bündelt und stellvertretend an das Zielgerät weiterreicht.
Die modbusproxy
Konfiguration ist eine Liste von verschiedenen Proxy-Freigaben.
Beispiel:
modbusproxy:
- port: 5021
uri: 192.0.2.2:502
- port: 5022
device: /dev/ttyUSB0
baudrate: 9600
comset: "8N1"
- port: 5023
uri: 192.0.2.3:502
rtu: true
Die Proxy-Funktion unterstützt eingehend (d.h. von Drittsystemen wie z.B. Hausautomation, Logger) ausschließlich Modbus TCP.
Ausgehend in Richtung des abzufragenden Gerätes (z. B. Wechselrichter, Energiezähler) wird das Protokoll ggf. entsprechend der Zielgerätekonfiguration übersetzt.
Hier findest du weitere Informationen zum evcc Sponsorship.
Erforderliche Parameter
port
Der lokale TCP/IP-Port unter dem eine Verbindung als Proxyserver bereitstellt wird und eingehende Modbus TCP Verbindungen von Drittsystemen angenommen werden.
Beispiel:
- port: 5021
Optionale Parameter
uri
Die IP-Adresse und der Port des Zielgerätes nach allgemeinem URI-Schema.
Jeder bereitgestellte Port muss eindeutig und noch nicht von einer anderen Anwendung auf dem evcc Host belegt sein, muss sich aber nicht zwingend vom ausgehenden Port unterscheiden. Es ist somit problemlos möglich eine Freigabe für Port 502 zu definieren, die ihrerseits auf Port 502 des Zielgerätes verweist.
Beispiel:
- port: 502
uri: 192.0.2.2:502
rtu
Zu Netzwerkzielen wird üblicherweise mit Modbus TCP kommuniziert.
Bei Bedarf kann mit der Angabe von rtu: true
auf Modbus RTU over TCP statt Modbus TCP umgeschaltet werden.
Ein typischer Anwendungsfall dafür sind einfache, transparente RS485-TCP-Konverter (ohne Protokollübersetzung).
Muss mit der Gerätekonfiguration übereinstimmen. Wird bei seriellen Zielsystemen ignoriert.
Beispiel:
rtu: true
readonly
Durch diesen Parameter lassen sich Modbus-Schreibzugriffe durch Drittsysteme pauschal unterbinden.
Mögliche Werte:
true
: Schreibzugriffe werden ohne Antwort blockiertdeny
: Schreibzugriffe werden mit einem Modbusfehler als Antwort blockiertfalse
: Schreibzugriffe werden weitergeleitet
Beispiel:
readonly: true