Victron mppt metrics exporter for pppprometheus , grafana

by Stormy Drifter · 1 month ago 33 views 5 replies
Stormy Drifter
Stormy Drifter
Active Member
14 posts
thumb_up 5 likes
Joined Sep 2024
1 month ago
#21718

Been down this exact rabbit hole with my Victron SmartSolar 100/30 on the boat — pulling BT metrics into Prometheus felt like defusing a bomb whilst simultaneously trying to sail.

Ended up bodging together a Python script that scrapes data via the Victron VRM API rather than direct Bluetooth, mostly because my phone's BT range on a steel hull is roughly equivalent to shouting into a biscuit tin. Works a treat now though — Grafana dashboard showing live watts, state of charge, yield history, the lot.

A few things worth mentioning for anyone attempting this in a UK context:

  • Fogstar Drift 100Ah pair brilliantly with Victron kit and the SOC data is actually accurate for once
  • If you're on a narrowboat or van, the Cerbo GX makes the whole data pipeline considerably less painful — MQTT out of the box
  • victron-bluetooth Python library exists and mostly works, but expect an afternoon of swearing at udev rules

The Android app angle is interesting — would be dead useful for a van build where you don't want a full Raspberry Pi setup just to see your panels are generating 4W because it's November in Scotland again.

Anyone else running Grafana alerts for things like overvoltage or low SOC? Curious whether you're pushing notifications via Telegram or just letting the Victron app handle it natively — feels like there should be a cleaner solution for proper off-grid monitoring without relying on VRM cloud being up.

Drop your configs below, genuinely keen to see what people have cobbled together. 🔧

SOC_Nerd
SOC_Nerd
Active Member
24 posts
thumb_up 7 likes
Joined Feb 2024
1 month ago
#21733

@StormyDrifter yeah the BT polling is a nightmare — discovered that the hard way when my Prometheus scrape interval kept clashing with the Victron app's own BT connection and one of them would just... give up.

Switched to VE.Direct USB on my SmartSolar 75/15 and it's been rock solid ever since. victron-prometheus-exporter on a Pi Zero W, scraping every 30s, feeding into Grafana. Dashboard now shows SOC, PV watts, battery voltage trends — actually useful data rather than just vibes.

The BT approach is fine for occasional manual checks but for persistent monitoring it's genuinely unreliable. VE.Direct cable is a fiver and saves you the headache.

Worth checking if your 100/30 has a VE.Direct port before committing to the BT route. Most do.

Borders Explorer
Borders Explorer
Active Member
49 posts
thumb_up 14 likes
Joined Nov 2023
1 month ago
#21748

@StormyDrifter @SOC_Nerd — worth noting that the BT polling instability often comes down to scrape interval vs. the Victron advertisement window mismatch. On my SmartSolar 100/20 in the motorhome I ended up pushing metrics via VictronConnect's local Modbus TCP rather than BT entirely — far more reliable for Prometheus scraping.

Key bits that made it stable:

  • Set scrape interval to 30s minimum
  • Used victron-mqtt-to-influxdb as a bridge, then federated into Prometheus
  • Alternatively, Cerbo GX running Venus OS exposes a proper MQTT broker out of the box

If you're running a Raspberry Pi already, the venus-docker project gives you a clean exporter with labelled metrics that Grafana dashboards against beautifully.

The BT route is inherently fragile — it was designed for occasional app polling, not continuous telemetry. Modbus or MQTT are the right foundations here.

Volt Barry
Volt Barry
Active Member
39 posts
thumb_up 13 likes
Joined Nov 2023
1 month ago
#21761

@BordersExplorer got me wondering — does anyone have a Node-RED flow sitting between the BT polling and Prometheus acting as a buffer, because my garden office setup with a Victron SmartSolar 75/15 basically needed a diplomatic interpreter between the two before it stopped having a meltdown every Tuesday for no reason.

Heather Soul
Heather Soul
Active Member
12 posts
Joined Sep 2024
1 month ago
#21771

@VoltBarry yes — Node-RED as a buffer is exactly what I ended up doing on the narrowboat. Running it on a Pi Zero 2W, polling the SmartSolar 100/30 via the victron-vrm nodes, then pushing to an MQTT broker before Prometheus scrapes that instead of hitting BT directly. Massively more stable.

The key thing nobody mentions: set your Node-RED poll interval to something slower than you think you need — I run 10s and it's fine for what Grafana actually visualises. Hammering BT every 2s just causes drops.

Static caravan setup is slightly different as I've got VE.Direct there instead, which is honestly far less drama. If you can wire a cable rather than rely on BT, do it — saves a world of pain with Prometheus scrape timing.

Rob
Rob
Regular
79 posts
thumb_up 27 likes
Joined May 2023
1 month ago
#21869

@HeatherSoul Pi Zero 2W doing BT polling and Node-RED and Prometheus exporter simultaneously is brave — mine was dropping connections faster than my motivations to finish the van conversion, switched to a Pi 4 and the BT stack actually behaves itself now.

Worth checking your ve-direct-bluetooth scrape timeout is longer than the polling interval — obvious in hindsight but caught me out for a week. Also if you're on the Victron mk3-usb over actual VE.Direct rather than BT, the metrics are far more stable; Bluetooth on the SmartSolar occasionally just decides it fancies a holiday.

For anyone starting fresh — victron-mqtt-exporter feeding into Prometheus is cleaner than polling BT directly, assuming you've got a Cerbo GX or equivalent sat in the middle doing the heavy lifting.

Log in to join the discussion.

Log In to Reply