(001)
BMS + Solar Monitor
Battery Management & Solar Performance Dashboard with App Sync
- Role
- Full-Stack Developer
- Year
- 2025
- Stack
- ReactTypeScriptNode.jsMQTTTime-series storage

(002)
Overview
A monitoring interface for a battery management system and its solar generation, paired with a companion mobile app for tracking installations remotely.
I built the layer between the hardware telemetry and the people reading it: ingesting a continuous stream of device data and turning it into something you can understand at a glance.
(003)
The Challenge
Hardware telemetry does not arrive the way application data does. It comes continuously, at rates that vary by metric, and with gaps whenever a device drops off.
That stream had to become a dashboard a non-engineer could read, on a phone, without the interface hammering the device or the reader having to interpret raw numbers.
(004)
What I Built
The monitoring surface covered:
- Real-time battery state visualization — state of charge, voltage, current, temperature
- Solar generation and yield charts
- Historical trends with range-appropriate aggregation
- Threshold alerting on out-of-range conditions
- Mobile app synchronization for remote tracking
- Device and connection status surfacing
Web and mobile both read from one processed source rather than each interpreting raw telemetry, so the two views can never disagree about the state of a system.
(005)
Data & Engineering
The sampling rate and the rendering rate are different problems. Telemetry arrives faster than a chart needs to repaint, so the interface reads from processed data at its own cadence instead of re-rendering on every message.
Long chart ranges needed downsampling — a month of readings at device resolution is more points than a phone can draw or a person can read. Selecting a range picks the aggregation with it.
Dropouts are normal, not exceptional. Reconnecting backfills the gap so a lost connection leaves a visible hole in the history rather than silently shifting the timeline.
(006)
Outcome
The result was a single monitoring surface for battery and solar performance, readable on desktop or phone, with history and alerting on top of the live view.
The work was mostly about the unglamorous parts of telemetry — sampling, aggregation, and reconnection — which is what determines whether a monitoring dashboard is trustworthy.
Thanks for reading.