Flow to create an advanced widget for cell voltage difference

by Sophie Fisher · 3 weeks ago 15 views 4 replies
Sophie Fisher
Sophie Fisher
Active Member
10 posts
thumb_up 9 likes
Joined Nov 2023
3 weeks ago
#6336

I've been down a similar rabbit hole recently on the boat, trying to get something meaningful out of my Victron system beyond the standard dashboard widgets.

The idea of creating a virtual battery purely to surface cell voltage difference as a readable metric is rather clever — it essentially tricks the display into showing you something it wasn't designed to show. My Fogstar Drift cells have been behaving themselves, but I'd very much like a persistent visual alarm if one cell starts drifting from the pack mean, rather than hunting through raw BMS data after the fact.

What I've cobbled together so far is a Node-RED flow that pulls cell voltages from the BMS over MQTT, calculates the spread in millivolts, and writes the value back to the CCGX via dbus-mqtt as a virtual device. It works, but I wouldn't call it elegant — the virtual device sometimes disappears after a VRM portal sync, which is mildly infuriating.

Has anyone managed to make this sort of virtual battery persist reliably across Cerbo GX firmware updates? I'm on v3.40 and the dbus path I'm using feels a bit fragile.

Also curious whether anyone has taken this further — triggering a relay or a push notification once the spread exceeds, say, 50mV. That seems like the genuinely useful endpoint rather than just a pretty widget, particularly for those of us where a cell going rogue at 2am whilst cruising isn't immediately obvious.

Would be good to compare notes on the flow structure if others have gone down this road.

Mike
Mike
Active Member
14 posts
thumb_up 7 likes
Joined Jul 2024
3 weeks ago
#6364

@SophieFisher what BMS are you running on the boat? That's going to be the limiting factor for whether you can actually pull individual cell voltages out.

I'm looking at doing something similar with my Fogstar Drift cells and a Daly BMS - the Daly does expose cell-level data over RS485 but getting that into Node-RED cleanly has been a bit of a headache.

Has anyone here managed to pull cell delta values directly into Victron's VRM portal as a custom widget, or are we stuck having to run a separate dashboard like Grafana alongside it?

Main thing I want to know is whether the cell voltage difference threshold can trigger an actual alarm in the Victron system rather than just a visual flag on a dashboard.

Panel Julie
Panel Julie
Active Member
20 posts
thumb_up 21 likes
Joined Sep 2023
3 weeks ago
#6413

@SophieFisher totally relate to this - I went down exactly this rabbit hole last winter on my own boat.

@Mike1980 makes a fair point about the BMS being the bottleneck. I'm running a Daly Smart BMS and pulling individual cell voltages via Bluetooth into Node-RED using the daly-bms-mqtt bridge. From there it's straightforward enough to calculate max-min difference and push it into a virtual device that Victron's VRM can see.

The key thing I found was setting a meaningful threshold - I use 20mV as amber, 40mV as red. Anything below 20mV on a well-balanced pack and you're not really learning anything useful from the widget anyway.

If your BMS exposes cell data over CAN or Bluetooth, the flow logic is fairly transferable regardless of brand.

BodgeItAndScarper
BodgeItAndScarper
Active Member
23 posts
thumb_up 31 likes
Joined May 2023
3 weeks ago
#6429

@SophieFisher worth noting that even if your BMS exposes individual cell voltages over CAN or RS485, getting VRM to display a calculated delta as a proper widget is a faff. I ended up bodging it through Node-RED on a Raspberry Pi sitting alongside my Cerbo GX — creates a custom MQTT topic for the cell delta value, which then shows up as a virtual device in VRM.

Not elegant but it works. Running Fogstar cells so wanted proper visibility on drift before the BMS starts throwing fits.

The bigger question is whether you actually need real-time delta monitoring or just trend data over time — because that changes the approach considerably. Logging to InfluxDB and viewing in Grafana is far less painful if you're not bothered about live alerts.

Anglia Camper
Anglia Camper
Active Member
15 posts
thumb_up 22 likes
Joined Dec 2023
3 weeks ago
#6453

@BodgeItAndScarper is right to flag the VRM limitation — ran straight into that wall myself on the narrowboat last year.

What actually worked for me was pulling the cell data into Node-RED via the dbus on a Cerbo GX, calculating the delta there, then pushing a custom value back as a virtual device. VRM sees it as just another metric and you can widget it normally.

The maths is dead simple — max_cell - min_cell — but having that single number on the dashboard is genuinely more useful than staring at individual cell voltages trying to spot drift.

Took me a frustrating weekend to get the dbus paths right, I won't pretend otherwise. Victron's documentation is... optimistic about how straightforward it is. But once it clicked on the motorhome too, same flow worked straight away.

Log in to join the discussion.

Log In to Reply