Modbus TCP liefert keine Werte im Secondary-Modus
Verfasst: Di Feb 06, 2024 10:00 pm
Hallo liebes Forum,
ich habe neben einer OpenWB Pro noch eine Series 2 standard+ mit Display und Phasenumschaltung. Letztere habe ich kürzlich auf die OpenWB 2 Software umgestellt, um OpenWB 2 auch mal ausprobieren zu können. Zurzeit setze ich nämlich evcc ein, um die beiden OpenWBs zu steuern, die Software gefällt mir ganz gut und bedient auch ganz gut meine Anforderungen. Zumal das UI deutlich mehr wife acceptance factor bietet als OpenWB.
Zur Steuerung der OpenWB 2.x durch evcc muss die OpenWB in den Secondary-Modus geschaltet und Modbus TCP zur Steuerung aktiviert werden.
Hierzu habe ich das neueste Release-Image geflasht und danach noch ein Update gemacht. Ich habe dann die WB direkt in den Secondary Modus geschaltet und Modbus TCP aktiviert. evcc konnte sich dann auch erfolgreich verbinden (also TCP Connection), allerdings wurden keine Daten ausgelesen. Ich habe es dann auch mal manuell mit qModMaster probiert. Dort kamen aber auch keine sinnvollen Werte in den beschriebenen Registern. Überall stand nur 0 drin und in den drei Feldern für die Spannung stand auch jeweils nur exakt glatt 230 Volt.
So sehen z.B. die ersten 30 Register ab Register 10100 aus:
Eigentlich sollten da ein paar mehr sinnvolle Werte drin stehen. Die Seriennummer kann ich übrigens erfolgreich auslesen. Aber alle elektrischen Werte fehlen. Versuche ich sogar die Leistungswerte auszulesen, bekomme ich sowohl in qModMaster als auch in der Wallbox eine Exception:
Ich habe es anschließend auch noch auf dem neuesten master-Branch ausprobiert, gleiches Verhalten.
Jetzt kommt das kuriose: Richte ich die Wallbox komplett wie eine Primary OpenWB ein (EVU, Speicher, PV, Ladepunkt) und schalte dann auf Secondary um, klappt's. Nachdem ich die Wallbox nochmal zurückgesetzt habe, bin ich jetzt wieder am gleichen Punkt.
Hatte das schonmal jemand und falls ja, woran hat's gelegen? Eigentlich möchte ich die Einstellungen so knapp wie möglich halten. PV, Speicher und Batterie hatte ich nämlich via MQTT angebunden und wenn's nicht unbedingt sein muss, würde ich mir das gerne sparen.
Über Tipps würde mich freuen - der Support ist natürlich auch informiert.
Viele Grüße
Konni
ich habe neben einer OpenWB Pro noch eine Series 2 standard+ mit Display und Phasenumschaltung. Letztere habe ich kürzlich auf die OpenWB 2 Software umgestellt, um OpenWB 2 auch mal ausprobieren zu können. Zurzeit setze ich nämlich evcc ein, um die beiden OpenWBs zu steuern, die Software gefällt mir ganz gut und bedient auch ganz gut meine Anforderungen. Zumal das UI deutlich mehr wife acceptance factor bietet als OpenWB.
Zur Steuerung der OpenWB 2.x durch evcc muss die OpenWB in den Secondary-Modus geschaltet und Modbus TCP zur Steuerung aktiviert werden.
Hierzu habe ich das neueste Release-Image geflasht und danach noch ein Update gemacht. Ich habe dann die WB direkt in den Secondary Modus geschaltet und Modbus TCP aktiviert. evcc konnte sich dann auch erfolgreich verbinden (also TCP Connection), allerdings wurden keine Daten ausgelesen. Ich habe es dann auch mal manuell mit qModMaster probiert. Dort kamen aber auch keine sinnvollen Werte in den beschriebenen Registern. Überall stand nur 0 drin und in den drei Feldern für die Spannung stand auch jeweils nur exakt glatt 230 Volt.
So sehen z.B. die ersten 30 Register ab Register 10100 aus:
Eigentlich sollten da ein paar mehr sinnvolle Werte drin stehen. Die Seriennummer kann ich übrigens erfolgreich auslesen. Aber alle elektrischen Werte fehlen. Versuche ich sogar die Leistungswerte auszulesen, bekomme ich sowohl in qModMaster als auch in der Wallbox eine Exception:
Code: Alles auswählen
2024-02-06 21:20:11,113 - {uModbus:95} - {ERROR:Modbus Control Server} - Could not handle request
Traceback (most recent call last):
File "/home/openwb/.local/lib/python3.9/site-packages/umodbus/server/__init__.py", line 82, in execute_route
function.execute(meta_data['unit_id'], self.server.route_map)
File "/home/openwb/.local/lib/python3.9/site-packages/umodbus/functions.py", line 929, in execute
values.append(endpoint(slave_id=slave_id, address=address,
File "/var/www/html/openWB/packages/helpermodules/modbusserver.py", line 107, in read_data_store
_form_int16(chargepoint.get.powers[askedvalue-30], address)
AttributeError: 'Get' object has no attribute 'powers'
Jetzt kommt das kuriose: Richte ich die Wallbox komplett wie eine Primary OpenWB ein (EVU, Speicher, PV, Ladepunkt) und schalte dann auf Secondary um, klappt's. Nachdem ich die Wallbox nochmal zurückgesetzt habe, bin ich jetzt wieder am gleichen Punkt.
Hatte das schonmal jemand und falls ja, woran hat's gelegen? Eigentlich möchte ich die Einstellungen so knapp wie möglich halten. PV, Speicher und Batterie hatte ich nämlich via MQTT angebunden und wenn's nicht unbedingt sein muss, würde ich mir das gerne sparen.
Über Tipps würde mich freuen - der Support ist natürlich auch informiert.
Viele Grüße
Konni