The Dash
The battery numbers, on the radio
The Victron numbers on the Xite head unit, with a BAT button to flip between them and the navigation. Nothing in the radio's firmware touched.
Read the story →
On the Road · Tech
Every Victron owner has the VRM app, and it is good at telling you what your system is doing. What it did not do was surface the slow-degradation modes I wanted to catch — the ones that need several sensors compared against each other. This is a running log of closing that gap, one story at a time.
The Setup
The coach is a 2018.5 Winnebago View 24J — a diesel Class C on the Mercedes-Benz Sprinter chassis. It runs a Victron Cerbo GX as its brain: a MultiPlus inverter/charger, a 680 Ah lithium bank in two packs, a SmartSolar MPPT, a battery shunt, and an Onan generator with automatic start. Standard enough.
The part that is not standard is a small publisher script running on the Cerbo itself, pushing telemetry over MQTT into Home Assistant back at the house. That gives Home Assistant a pile of readings VRM never shows you: per-pack cell spread, the weakest cell in each pack, each pack's requested charge voltage limit, the Cerbo's own CPU load and free disk, GPS fix validity, even how many remote console sessions are open.
Home Assistant then does the math on top. That math is where most of the value turned out to be.
Stories
Each of these started as something breaking, going quiet, or just not being visible from the driver's seat. Newest first.
The Dash
The Victron numbers on the Xite head unit, with a BAT button to flip between them and the navigation. Nothing in the radio's firmware touched.
Read the story →
Power
Going from 456 Ah to 680 Ah, why integration beat capacity, and five things worth knowing before you parallel two packs.
Read the story →
Power
An inverter that tripped on every compressor start, a corroded lug hiding in a cable run, and how the cable became a sensor.
Read the story →
Solar
A burned SAE connector on the roof that never blew a fuse, and the health sensor built so it cannot happen quietly again.
Read the story →
Connectivity
Starlink queried straight from the dish, why one ping target is not proof of a cell link, and data usage shown as tank gauges.
Read the story →
Coming Home
A geofence that runs on the Cerbo, a dashcam archive that can only leave over home Wi-Fi, and the backstop for the ugly case.
Read the story →
On the Road
Drives as real tracks coloured by speed, positions buffered through dead zones, and the tracker setting that hid a parked RV for three days.
Read the story →
Monitoring
Why the telemetry chain is wired ahead of the disconnect, a heartbeat that alarms when it stops, and alerts that say what to go do.
Read the story →
The Kit
The full parts list, because "what are you running?" is the question that always comes up first.
| Item | Detail |
|---|---|
| Coach | Winnebago View, 24J floorplan, 2018.5 |
| Chassis | Mercedes-Benz Sprinter — diesel Class C |
| Why it matters | A short Sprinter roof is why the array is three small strings rather than two big ones, and the diesel genset shares the coach's own fuel tank |
| Component | Model | Role |
|---|---|---|
| Inverter / charger | MultiPlus 12/3000/120-50, 120 V | 3000 VA inverter (2400 W continuous at 25 °C), 120 A charger, 50 A transfer switch |
| System controller | Cerbo GX | Runs Venus OS and Node-RED; the brain of the whole system |
| Solar controller | SmartSolar MPPT 100/50 | Single controller for all three strings |
| Battery monitor | BMV-712 Smart | Shunt in the battery negative; coulomb-counted bank state of charge, which needs periodic synchronisation |
| DC-DC charger | Orion-Tr Smart 12/12-30 | Charges the house bank from the alternator while driving |
| Component | Detail | Spec |
|---|---|---|
| Lithium packs | 2 × SFK 340ELR LiFePO4, paralleled, each BMS on its own USB link | 680 Ah |
| Pack cabling | 1/0 throughout, roughly 3 ft per pack run | — |
| Disconnects | Anderson SB175, one per pack | 175 A |
| USB hub | CoolGear industrial 7-port — carries both packs and the Bluetooth adapter; the GPS keeps the Cerbo's second port | — |
| Chassis battery maintainer | TRIK-L-START, diode-modified for lithium — keeps the chassis starting battery topped up from the house bank | — |
| Measured path resistance | Typical per-pack cells-to-shunt path after the 2026 rebuild. A per-branch fit, so shared segments count twice over — not the parallel equivalent of the bank | ~3 mΩ |
That last row used to be 7.4 mΩ. Fixing it is the story in the section above, and the full upgrade — fitment, charge profile, and what to know before paralleling two packs — is written up in The Lithium Upgrade.
| String | Panels | Nameplate |
|---|---|---|
| A | 2 × Newpowa Pro 200 W 9BB | 400 W |
| B | 2 × Zamp Obsidian 100 W | 200 W |
| C | 2 × Newpowa 160 W | 320 W |
All three strings are natively MC4, adapted to the roof's Zamp SAE cap. Worth knowing: Zamp SAE is reverse polarity to the usual SAE convention — never assume an adapter is wired the way you expect. String C is the one whose connector burned through.
| Component | Detail |
|---|---|
| Generator | Cummins Onan QD3200 Quiet Diesel, with automatic start and stop driven by the Cerbo on state-of-charge thresholds. It draws from the coach's own diesel tank, so autostart spends driving range — and the pickup stops around a quarter tank so it cannot strand you |
| Run detection | Wired into a Cerbo digital input, so "is it actually running" is measured rather than assumed |
| Transfer switch | Second digital input; separate AC current limits for shore and generator |
| Component | Model | Role |
|---|---|---|
| Router | MikroTik hAP ac (RB962UiGS-5HacT2HnT) | Router, switch, dual-band access point, firewall, and the VPN endpoint |
| Satellite | Starlink Mini | Roam plan, 100 GB/month — the metered link |
| Cellular | USB-tethered Android phone | Unlimited, and therefore the preferred link |
| Cell booster | Wilson RV cellular booster | Amplifies the signal reaching the phone — the difference between a usable cellular link and none at all in marginal sites |
| Home uplink | 5 GHz radio in client mode | Joins the house network automatically on arrival |
| Tunnel | WireGuard, site to site | Remote administration rides this; no inbound management services are published to the internet |
| Component | Model | Notes |
|---|---|---|
| Dashcam | BlackVue DR900S-1CH | Live view in Home Assistant; footage archives over home Wi-Fi only |
| Cameras ×2 | Blink Outdoor, with sync module | Battery-powered, on the RV's own 2.4 GHz network. Integrated into Home Assistant, so exterior motion and snapshots land alongside the rest of the RV's telemetry rather than in a separate app |
| Temperature ×4 | RuuviTag, Bluetooth | Inside, outside, freezer, and inverter bay |
| GPS | u-blox 7 USB receiver | Feeds the map, the tracking server, and the arrive-home geofence |
| Propane | Cerbo built-in tank input | One of four inputs; three are still free |
Not here yet: fresh, grey and black tank levels. Still the factory panel only.
| Component | Runs where | Job |
|---|---|---|
| Venus OS | Cerbo GX | Victron's own platform — everything else is built on top of it |
| Node-RED | Cerbo GX | Relays the arrive/leave decision to the router |
| Custom collectors | Cerbo GX | Telemetry publisher, Starlink dish reader, GPS poster, geofence, heartbeat |
| Home Assistant | At the house | Every derived sensor, dashboard and alert on this page |
| Traccar | At the house | Drive tracks, with offline buffering through dead zones |
| Uptime Kuma | At the house | The heartbeat watchdog and the reach-in monitors |
| Dash feed | Cerbo GX | Serves the battery, solar, shore and alert numbers to the radio over the coach WiFi |
| Battery screen | Xite head unit | Shows those numbers on the radio; lives on the navigation card, see The Dash |
Still To Do
Fresh, grey and black still exist only on the factory monitor panel. There is no history, no alert, and nothing that could catch a black tank filling faster than usual — the early signature of a leaking toilet valve. Three of the Cerbo's four tank inputs are free and propane already proves the path works, so the open question is what kind of sender the coach actually uses. That is the next project.
The GPS receiver also dropped its fix for three days without anyone noticing, which is its own small lesson: it now publishes an explicit "no fix" rather than simply going quiet, so the difference between a dead receiver and a dead RV is visible at a glance.
More to come as things break and get fixed. Questions, or want detail on any of it? Get in touch.
Built with Claude Code.