Edge data acquisition
Modbus RTU and Modbus TCP polling driven by per-device drivers compiled from official manufacturer register maps — never guessed addresses. A bus arbiter gives every application a fair lease on the RS-485 line.
Solar · Storage · Energy Management
MWatt.io is an end-to-end platform for photovoltaic and battery storage assets — from Modbus registers read at the edge, to live dashboards, automated peak shaving, and the demand-charge savings that follow.
The platform
Most tools stop at a pretty chart. MWatt.io covers the whole chain — acquisition, transport, storage, visualisation and closed-loop control of the assets themselves.
Modbus RTU and Modbus TCP polling driven by per-device drivers compiled from official manufacturer register maps — never guessed addresses. A bus arbiter gives every application a fair lease on the RS-485 line.
Readings buffer to disk the moment a link drops and upload when it returns. Every row carries its own health header, so an outage is an explicit record in the time-series — not a mysterious gap in a chart.
Power-flow view, KPI strip, per-device drill-down to any raw register, and energy summaries by day, week or month. Pushed over WebSocket, rendered in the site's own timezone, exportable to CSV or PNG.
A safety-gated dispatch loop holds the site under its demand target, with a tariff-aware predictive controller that plans against forecast PV and load — and reports both projected and realised cost avoidance.
Inverter-agnostic active power, reactive power and power-factor setpoints with a heartbeat re-assert, so a curtailment order survives a comms blip instead of silently reverting.
Size a system before it exists. Model PV, storage or both against real interval usage and a versioned utility tariff, then optimise for net present value with IRR, payback and LCOE over system life.
Architecture
Field devices are noisy, networks are unreliable and databases should never face the internet. The platform is built around those three facts.
A hardened single-board computer polls every inverter, meter, battery and weather station on site, and reports its own health as a device in its own right.
Timestamped, self-describing log files are compressed and pushed over HTTPS. Polling and uploading are fully decoupled loops — neither can stall the other.
Uploads are authenticated by hardware identity and validated against a driver registry, so a firmware or map change can never quietly corrupt historical decoding.
Raw values land in a dedicated TimescaleDB server on a private network. No derived metrics are stored — history stays exactly as the device reported it.
A React dashboard and REST API resolve raw positions into named metrics at query time, behind role- and site-scoped access control.
Remote access runs across a self-hosted WireGuard VPN, entirely separate from the data upload channel. The two have independent failure domains — losing one never takes out the other, and the time-series database is never internet-facing.
Beyond monitoring
Demand charges are set by a handful of minutes each month. MWatt.io watches the grid meter continuously and moves the battery before those minutes happen.
Supported equipment
Devices are described by declarative register maps, not hard-coded into the software. Supporting a new model means writing a map — no dashboard rebuild, no API change.
Existing customers can sign in to view live site performance, history and controls.
LoginDashboard hosted at mwatt.io/app