MPPT modbus slave

So about a month ago I had my system setup and got to monitoring via mondbus/homeassistant all went well until 1 MPPT (150-45A) was faulty worked till ~1200-1300 then just stopped producing power until the next day (even when a load came on it never ramped up) was sent in a then replaced as faulty, now to soso pickle,

The Unit ID’s were 226 Cerbo GX VE.Direct port 1 VRM 279 and 223 Cerbo GX VE.Direct port 3 VRM 277

All was well until I got a temporary unit and its UNIT ID was 280 (also same on VRM [odd]) now the replacement is UNIT ID 281 on the GX and 281 on VRM and cannot get any data on modbus of this unit.

As the last resort I have moved EVERY thing away from modbus to MQTT, this is just very odd and still happy to use MQTT.

MQTT also says the id is 281 N/###/solarcharger/281/Yield/Power

It’s a known issue.

  1. Normally the modbus slave id is the same as the DeviceInstance number on the GX (that’s the unique number, per device, VRM uses to identify something)
  2. In the past, the DeviceInstance was allocated according to the port it was plugged into. Since the Cerbo has VE.Direct ports in specific places, the DeviceInstance would allocate accordingly.
  3. But since Venus 2.60, DeviceInstance numbers are allocated dynamically.
  4. Modbus slave addresses only goes up to 247. So there is a mapping table to handle DeviceInstances above this.
  5. But the mapping table does not account for the new dynamic allocation.

So the result is that it works the first time, but if you put in a new device, the DeviceInstance increments by one and you no longer have a mapping. Screwed you are.

Presently the only way is to ask a support person to reset the allocation for you, so it comes up in the old spot.

If you need this urgently, send me your email address in a DM and I’ll get someone to contact you.

Thanks plonkster, at least you know about it and have a very good reason for it happening, maybe one day it will be fixed.

However in the interim I’m pretty happy using MQTT so it doesn’t really affect me anymore.

The reason it is not fixed yet, is ideally we want to do this in a way so that the mapping becomes unnecessary. But more thought is required…