question

martin-liska avatar image
martin-liska asked

daly BMS cell voltages through VenusOS and Louisvdw driver via modbus TCP ?

Hello all !

Does anyone know how the Louisvdw serial battery driver maps the daly BMS cell voltages to VenusOS (com.victronenergy.battery) modbus TCP registers ?
The single cell voltages are correctly displayed in the Venus GUI , but i just dont get the modbus registers to read them from there.
The main com.victronenergy.battery registers ( 259 to 326 ) are populated correctly as far as i can tell.

Background of this question is to have the cell values recorded and also used to steer some other equipment.

thanks a lot, Martin

Venus OSBMSModbus TCP
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

6 Answers
pv1703 avatar image
pv1703 answered ·

Didn´t find any solution for this as well.

It seems that Venus Os is not providing such information via Modbus, within Node Red you can work with them.

Parameters are "Not supported by CAN.Bus BMS batteries"

Maybe the transiever connected to BMS is categorized as such. Let us know if you find a solution.

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

martin-liska avatar image
martin-liska answered ·

i am still investigating the options. currently experimenting with https://pypi.org/project/dalybms,mainly to check, if the fluctuation of Battery current values read from Louisvdw/Dbus/Victron (and the associated NodeRed node) is a problem of the Daly BMS itself or the Lousvdw driver.
Generally, using NodeRed to retrieve values using the Victron nodes and publishing them via MQTT while at the same time entertaining the VenusOS Gui and VRM display features seems to be the best option.

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

pau1phi11ips avatar image
pau1phi11ips answered ·

I had a Grafana Docker getting the cell voltages via MQTT a while back.

Setup for it is here: https://github.com/victronenergy/venus-docker-grafana

2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

martin-liska avatar image
martin-liska answered ·

Hello Paul - thanks for the input - the Grafana visualization indeed is worth looking at.What i actually am trying to understand is how the Daly BMS topics are mapped to dbus and from there to ModBus. There are some Daly 'drivers' out there, but none seems to fit completely. That mapping also would be relevant for the (builtin) dbus-to-mqtt feature of VenusOS, as it only will publish topics known to the dbus structure. I did not (yet) get to disable the Louisvdw driver and check some other packages interfacing directly with the UART of the Daly - that's next on my plan.

1 comment
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

pau1phi11ips avatar image pau1phi11ips commented ·

Yeah, sorry, can't help you with modbus. The Cell voltages are definitely available via MQTT using the Louisvdw driver though.

0 Likes 0 ·
martin-liska avatar image
martin-liska answered ·

Update after a summer of fiddling with various BMS and shunt confgurations: the Daly BMS i was using in February is faulty - even after various firmware updates. I had complemented it by inserting a Victron SmartShunt, which at least provided a consistent power readout from/to the battery, unfortunately not able to run DVCC with that.

Currently running a Seplos BMS looking ok-ish. It has a shunt on the PCB which is inline with positive battery, while the BMS itself (with 200mA max. active balancing) is inline with negative pole. Although it has 'Victron' protocol selectable (through CANbus), the data transmitted to Venus are marginal. Only min. and max. cell voltage and (inaccurate) SoC are displayed on Venus console (and mqtt).

If anyone knows a better way to map Seplos values to Venus ones, please let me know. Next i will try to switch the Seplos to 'Pylontech' protocol and see, if the Louisvdw driver does a better job here.

Keep you posted.

2 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Mike Dorsett avatar image Mike Dorsett commented ·
I designed my own BMS using 2.5A balancing and with its own modbus server. I used to be able to integrate this wiht the Venuso os, (Still can on a pi/) but the Venus OS is missing the spi driver for the beaglebone series.
0 Likes 0 ·
elvis avatar image elvis commented ·

The inaccurate SOC is likely because you might have a LIFEPO4 battery and the BMS calculates SOC based on voltage. SOC with LIFEPO4 cannot be determined with voltage accurately. You will need to use the SmartShunt for this.

LouisVDW's serial driver does indeed post the values to Modbus registers.

also look at registers 1282 through 1318


ETA: I think you might only be able to get the cell voltage values from MQTT.

0 Likes 0 ·
martin-liska avatar image
martin-liska answered ·

Thanks to all for commenting & happy new year !!
Update: I managed to get the Seplos working via RS-485-to-USB-Louisvdw-MQTT (it was connected through CanBus before). It now behaves similar to the other system, where a Daly-BMS is installed. All cell voltages visible on MQTT and DVCC in operation.
What starts to strike now is the discrepance in SoC between the Victron SmartShunts (500A, i could'nt get hold of smaller ones) and the BMSes. Typically, the BMSes show a much higher SoC than the SmartShunts (and yes, the SmartShunts are both set to LiFePo with identical parameters using the VeConnect app on Bluetooth) . After the SmartShunts 'Curent SOC' is manually synced with the BMSs value, they start to drift apart within a couple of hours.
Next is to feed all relevant measurement values (BattVolts, Currents and Power readouts) from all available sources (MQTT solarchargers, MultiPlus inverters, SmartShunts and BMSes) into an influxdb and then analyze with some Grafana querys. This should give some insight, which device is calculating what.
Apart from that, does anyone have an idea howto receive 'Notifications' (aka Alarms) from the Venus OS (Raspberry) / GCCX systems without polling each component separately ? Since the LAN console can do it, there should be SOME mqtt topic to which one can subscribe, where notification messages are subsequently sent to ... (Alternatively, squenching through each device instance's 'Alarms' subtopic will be required - and those seem to be not the same for various devices ...)

@Mike - did you post your 2.5 A active balancer circuit diagram and firmware somewhere ? The Daly can do about 400mA, and the Seplos claims 2 Amps, but when i measured, i never found more than 200mA floating through those individual-cell cables ... greatly aprechiated !


2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.