Ohme
How Joulo connects an Ohme charger: daily energy buckets, Firebase authentication and MID detection.
Ohme chargers connect through the Ohme API. Ohme exposes no per-session history, so Joulo builds one session per charging day from daily energy totals.
At a glance
| Property | Value |
|---|---|
| Route | Cloud API |
| API | Ohme API |
| Authentication | Ohme account, email and password |
| Sync | Every 15 minutes |
| MID detection | Per model, from the Joulo charger catalog |
| Backfill | Automatic, to 1 January 2026 |
How the connection works
The Ohme app signs in against Google Firebase and calls the Ohme API with the resulting ID token. That token lives about an hour and is renewed with a Firebase refresh token. When the refresh token is finally revoked, Joulo signs in again with the credentials held in Supabase Vault, so you are not asked to reconnect.
What Joulo reads
Ohme has no per-session endpoint. The only historical source is the charge-session summary, which returns energy and active charging time per period.
Joulo requests daily granularity. The hourly variant takes about 25 seconds on Ohme's side whatever window you ask for, which exceeds the per-call budget and aborts. Daily returns the same totals in about seven seconds.
Every daily bucket is stored, and each charging day becomes one session. Duration comes from the active charging time in that bucket, not from the length of the day.
A session therefore appears after the charging day closes, not minutes after you unplug. Joulo polls every 15 minutes, but a day bucket only becomes final once the day is over.
MID certification
The Ohme API returns no MID flag. Joulo decides from the charger catalog, per model. Only the Ohme Home Pro carries a built-in MID meter. The Home and the ePod do not.
Limitations
- One session per charging day. Two separate charges on the same day are reported as one session with the combined energy.
- Start and end times are derived from the day bucket, so they are not the exact plug-in and plug-out moments.