Smappee
How Joulo connects a Smappee charger: Dev API, hourly energy buckets and MID meter detection.
Smappee chargers connect through the Smappee Dev API. Smappee has no per-session feed for most installations, so Joulo builds sessions from hourly energy. The EV Base, EV One and EV Wall also speak OCPP 1.6J if you prefer the direct route.
At a glance
| Property | Value |
|---|---|
| Route | Cloud API, or OCPP 1.6J |
| API | Smappee Dev API v3 |
| Authentication | Your own client_id and client_secret, plus your Smappee login |
| Sync | Every 15 minutes |
| MID detection | Meter serial and bus address, read live from the Smappee bus |
| Backfill | Automatic, to 1 January 2026 |
How the connection works
Smappee issues API credentials per developer, not per platform. You request a client_id and client_secret from Smappee once and paste them into Joulo. If you would rather not do that, connect the charger over OCPP instead.
A Smappee account holds one service location per device. Joulo tells three kinds apart:
- EV chargers. The location's own device is the charging-station controller. Energy comes from
/consumption. - Genius and Infinity home monitors. These watch the house, including the charger. Counting one would double-count the charger, so Joulo excludes them from discovery and sync.
- Mixed installations. One location that is both the station controller and the whole-house meter. Here
/consumptionis the house total, so Joulo pulls real sessions from the charging-station endpoint instead.
What Joulo reads
For a plain EV charger location, the historical events endpoint returns nothing. /consumption is the real source and it returns hourly buckets in Wh.
Joulo stores every bucket, then materialises contiguous non-idle buckets into charging sessions using a 90-minute gap rule. Both steps are idempotent, keyed on the charger and the bucket start. A re-run never double-counts, and a change to the gap rule rebuilds sessions from the stored buckets without refetching.
MID certification
Smappee is one of the few brands that proves MID per device rather than per model. Joulo reads the charging-station serial and the midBusAddress from the bus. A meter serial in the 582 series is the MID meter itself.
Your MID status is therefore measured, not assumed.
Limitations
- Session boundaries are derived from hourly buckets, so a start time is accurate to the hour, not to the minute.
- A house monitor on the same account is deliberately ignored. Its energy is the charger's energy plus everything else.