Connect machines
Energy meters
Energy meters are part of the Plant plan. A meter can measure one machine, the plant's main supply (the meter your utility bills), an area, or something else like a lighting panel or the compressor room. Meters on a machine are included with the machine. Your plan sets how many other meters a plant can have.
An owner or admin adds meters under Settings → Energy. Add the main meter first.
What a meter sends
Send the meter's running kWh total: the number on its energy register that only goes up. Do not send the kWh since the last reading. What Started works out the difference between two readings itself, so a reading that is late, or a gap while the network was down, still adds up to the right total.
If the meter also has a power register, send it as kW. It is used for the live figure. Without it, live kW is worked out from the last two readings when they are at most 15 minutes apart.
Send a reading every few seconds to once a minute. Every reading's difference is spread over the 15-minute periods it covers, by time. Demand and cost are worked out from those 15-minute totals, the same way utilities do it.
Get a token
Open the meter under Settings → Energy and click New token. Copy the token straight away: it is shown only once. A meter token can only send readings for that meter. It cannot read anything, and it does not work for machine pings.
Send a reading
POST https://whatstarted.com/api/v1/meters/readings
Authorization: Bearer hbm_…
Content-Type: application/json
{ "kwhTotal": 1840231.6, "kw": 412.3 }
A reading without at is taken as now. To send a reading made earlier, add "at": "2026-11-02T14:05:00Z".
For a device that can only open a link:
https://whatstarted.com/api/v1/meters/readings?token=hbm_…&kwhTotal=1840231.6&kw=412.3
Catch up after a gap
Send up to 500 readings in one call, each with its time:
{
"sentAt": "2026-11-02T14:10:00Z",
"readings": [
{ "at": "2026-11-02T14:00:00Z", "kwhTotal": 1840101.2, "kw": 405.0 },
{ "at": "2026-11-02T14:05:00Z", "kwhTotal": 1840135.0 }
]
}
sentAt is the sender's clock when it sent the batch. When it is there, every at is moved by the difference between that clock and ours, so a PLC whose clock is a few minutes off still lands its readings at the right time. Readings are taken oldest first, and a reading no newer than the meter's last one is skipped, so sending the same batch twice counts it once.
What the answer means
The answer lists how many readings were counted. A few are not:
- first: the meter's first reading. Counting starts from it.
- reset: the total went down, because the meter was reset or replaced. Counting starts again from it.
- jump: the total rose by more than 100 MW on average since the last reading, which cannot be real. It is not counted, and counting goes on from it.
- stale: no newer than the meter's last reading.
- tooOld: older than your plan's history.
The meter's page in Settings shows the last 30 readings and marks the first reading, each reset and each jump.
How long readings are kept
Raw readings are kept 7 days. The 15-minute totals are kept as long as your plan's history.