I have a system setup where I'm trying to read VE.Can data off of a Cerbo that's connected to a BMV SmartShunt (on one of the Cerbo's VE.Direct ports). The Cerbo is setup to output NMEA2000 with "VE.Can & Lynx Ion BMS" profile.
I'm able to read the periodically published messages like SOC and consumed AH, but I'm unable to read single registers like voltage or current of the BMV.
I'm able to request product ID, product version so my communication works both ways as far as I can tell.
Sample code requesting FW ID (works) (0x0102 using VREQ 0x001):
can_bus.send(Message(id=VictronEncoder.identifier(src=0x40, dst=0xff), data=bytearray([0x66, 0x99, 0x01, 0x00, 0x02, 0x01, 0xFF, 0xFF]), extended=True
In response I get 0x01 0x02 messages with reasonable values for FW version from the Cerbo.
When I try to read either the 0xEFxx registries (either single registry or using a mask) using the example message in this document BMV Nmea 2000, but there's no response for these values from any devices.
can_bus.send(Message(id=VictronEncoder.identifier(src=0x40, dst=0xff), data=bytearray([0x66, 0x99, 0x01, 0x00, 0x00, 0xEF, 0xE0, 0xFF]), extended=True))
I've also tried reading the 0x1001 registry using a 0xFF 0xFF mask (Charged Voltage in VE Can Registers Public) hoping maybe that would hold the current and voltage registries I'm hoping to read, without success.
I hope there's something fundamental I'm missing here and the forum can unblock me! Thanks in advance!