A private dashboard for solar panels
A small app that reads a SolarEdge inverter every five seconds, stores the readings and shows them on a private dashboard on any phone.
- Year
- 2026
- Services
- Integrations and automation, Web apps
- Stack
- TypeScript · Node.js · SQLite · Modbus TCP · Tailscale
- Result
- Live and historical solar figures on any phone, with nothing exposed to the internet
The problem
A solar inverter knows exactly what the panels produce, but that data usually lives in the manufacturer’s app. The goal was live figures, a long-term history and the money saved, kept on the owner’s own hardware.
What we built
One small process reads the SolarEdge inverter on the home network over Modbus TCP, using the SunSpec standard, every five seconds. It stores every reading in SQLite and serves a dashboard with live updates, plus energy per hour, day, month and year from the inverter’s lifetime counter. With an electricity price set, it also shows the money saved.
How we built it
TypeScript, run directly by Node.js 24 with its built-in SQLite, so the app needs a single dependency for Modbus. It is read-only by design: it never writes to the inverter. The database is backed up daily, with the last 14 snapshots kept.
On Windows a scheduled task keeps it running and restarts it after any exit. Phones reach the dashboard through Tailscale, where it installs like an app, so neither the dashboard nor the inverter is ever open to the public internet.
The result
Live and historical solar figures on any phone, at home or away, without a cloud account and without opening a port to the internet.