System configuration:
-
Cerbo GX, Venus OS v3.75
-
EV Charging Station (EVCS), firmware v2.08, product ID 0xC026
-
MultiPlus II (VE.Bus, slave 227)
-
Carlo Gavazzi EM24 grid meter (slave 30)
Home Assistant (via sfstar/hass-victron Modbus TCP integration, polling interval 30s)
-
All devices have static IP addresses
-
EVCS connected to Cerbo via Wi-Fi, all other devices via LAN
Problem description
Since a power outage approximately one week ago, the Cerbo GX periodically loses its internal connection to the EVCS. The Remote Console shows the following error under Settings → Services → Modbus TCP:
ERROR "Error processing function code 3, unit id 41... Error finding service with device type evcharger at unit id 41"
The EVCS itself continues to function normally — it charges the car without issues, the LED ring is active, and the device is visible in the VRM portal. The connection between the EVCS and the Cerbo is listed as Modbus TCP 192.168.1.14 in the device details screen.
The error occurs periodically, not continuously. Sometimes the connection works fine for 10-20 minutes, then fails again for a few minutes before recovering.
What has been tried
- Full power cycle of both Cerbo GX and EVCS (multiple times)
- Firmware update of EVCS to v2.08 (latest available)
- Firmware update of Cerbo to Venus OS v3.75 (latest available)
- Disabled automatic scanning under Settings → Modbus TCP/UDP devices
- Verified static IP addresses for all devices (no DHCP changes after power outage)
- Wi-Fi signal strength to EVCS is strong (verified)
- GX device IP is correctly configured in EVCS settings
- Disabling the Home Assistant Victron integration eliminates the errors entirely — re-enabling it causes them to return
Key observation
When the Home Assistant Modbus TCP integration is disabled, the Cerbo runs without any errors for extended periods. When it is re-enabled (polling interval 30 seconds, querying slave 41 registers 3800 and 3802), the periodic errors return.
This suggests that simultaneous Modbus TCP polling from Home Assistant and the internal Cerbo↔EVCS Modbus communication are conflicting. The Cerbo appears to lose its internal com.victronenergy.evcharger dbus service for slave 41 when under this combined load, even though direct Modbus queries to slave 41 via pymodbus succeed consistently:
# This always succeeds:
client = ModbusTcpClient('192.168.GX.IP', port=502)
result = client.read_holding_registers(3802, count=26, device_id=41)
# isError: False, registers: [valid data]
Questions
- Is there a known issue with Venus OS v3.75 and EVCS communication stability after a power outage?
- Is there a way to make the internal dbus service for the EVCS more resilient to external Modbus polling?
- Would enabling MQTT on LAN and switching to an MQTT-based integration (instead of Modbus TCP) resolve this conflict?
- Is a factory reset of the EVCS recommended in this situation, and would it help restore stable internal communication with the Cerbo?
Additional information
Direct Modbus queries to the EVCS IP (192.168.1.14) on its own Modbus server return only zero values for all registers (5001-5100, all unit IDs 0/1/41), suggesting the EVCS own Modbus server may not be fully operational, or these registers require a different addressing method.
Any guidance from Victron staff would be greatly appreciated.