Dennoch halte ich das Thema generell für nicht uninteressant, kann es doch in mehreren Konstellationen relevanz haben.
Die OpenWB greift Daten der Wechselrichter - oder ggf. auch andere Daten u.a. über Modbus ab.
Hierbei besteht das Problem, dass viele Geräte nur eine aktive Verbindung zulassen - selbst über ModbusTCP besteht das Problem z.B. bei SolarEdge Wechselrichtern.
In vielen Fällen wird die OpenWB sicherlich das Gerät sein, welches Primär die Daten abgreift - immerhin kann man die Daten dann ggf. über MQTT "weiterverwerten".
Eine andere Möglichkeit wäre allerdings ein so genannter Modbus-Proxy.
Hierbei handelt es sich um eine Software, welche sich primär mit dem Modbus-Master verbindet und die Daten dann an alle "angeschlossenen" Modbus-Clients weitergibt.
Ein solches Projekt ist z.B.
https://github.com/tiagocoutinho/modbus-proxy
hierbei handelt es sich um ein Python Tool, welches z.B. auf einem RaspberryPy - oder einer anderen Plattform installiert werden kann.
das Setup ist ziemlich simpel - und die Konfiguration selbsterklärend...
Der Modbus-Proxy kann dabei auch Verbindungen zu mehreren Modbus-mastern herstellen...
Ich habe diese Software bei mir inzwischen in Proxmox in einem Container laufen - um sowohl die OpenWB wie auch mein Monitoring direkt mit den Daten des Wechselrichters zu versorgen.
Dazu habe ich die Software als Dienst eingerichtet.
Für die Einrichtung als Dienst gillt:
- Ich habe die Konfigurationsdatei nach verschoben.
Code: Alles auswählen
/usr/lib/mproxy-conf.yaml
- im Verzeichnis habe ich mit einem Editor meiner Wahl die Datei
Code: Alles auswählen
/etc/systemd/system/
angelegt.Code: Alles auswählen
mproxy.service
- Die Datei hat folgenden Inhalt:
Code: Alles auswählen
[Unit] Description=Modbus-Proxy After=network.target [Service] Type=simple Restart=always ExecStart = modbus-proxy -c ./usr/lib/mproxy-conf.yaml [Install] WantedBy=multi-user.target
Code: Alles auswählen
run systemctl daemon-reload
Code: Alles auswählen
systemctl enable mproxy.service
Code: Alles auswählen
systemctl start mproxy.service
Andernfalls wäre nach einem Neustart der Maschine immer ein manuelles starten der Software nötig gewesen.