28 July 2026

What OCPP 1.6J will and will not tell you

The protocol most of the world's chargers speak was designed for billing and remote control, not diagnostics. Read carefully, its meter values still carry a surprising amount of signal.


OCPP 1.6J is the protocol the large majority of deployed charge points speak. It was designed to let a central system authorise transactions, meter them, and issue remote commands. It was not designed as a diagnostics protocol, and it shows.

What the protocol gives you directly

The message set is small. BootNotification announces vendor, model and firmware. Heartbeat proves liveness. StatusNotification reports connector state and a coarse error code.MeterValues carries sampled readings during a transaction, and StartTransaction / StopTransaction bracket the session.

Taken at face value that is a billing record with a status field attached. The error codes in particular are a blunt instrument — a handful of enumerated values covering every possible physical fault.

What the meter values imply

The interesting content is in the sampled readings, because they are a time series and time series have shape. Within a single session you can observe the power ramp, where it plateaus, when and how sharply it tapers, and how temperature moves against delivered current.

Across sessions, the same vehicle charging at the same rated hardware should produce a comparable curve. When it stops doing so — when the taper starts earlier, or the thermal rise per delivered kilowatt-hour steepens — something has changed in the pack. That is a degradation signal derived entirely from data the charger was already sending for billing purposes.

What it will not tell you

The protocol has no vocabulary for a jammed latch, a vandalised cable, a screen that has failed, or a payment terminal that rejects every card. These are the failures drivers most often meet, and they are precisely the ones that leave a charger reporting itself available.

Closing that gap needs inference — noticing that a charge point which normally starts eleven sessions a day has started none since Tuesday, while still heartbeating cheerfully. Absence of expected behaviour is itself a signal, and it is one the protocol never sends explicitly.


All posts