zevOS

01Technology

OCPP 1.6 vs 2.0.1: what actually changes for an operator

The migration is real but rarely urgent. What 2.0.1 gives you, what it costs, and how to run a mixed fleet without splitting your operations in two.

ENzevOS Engineering · Platform engineering
19 August 2026 · 2 min read

OCPP 1.6J is a decade old and still runs the majority of chargers in the field. OCPP 2.0.1 has been available since 2020 and is now shipping on serious new hardware. Operators keep asking whether they should force the migration, and the honest answer for most Indian networks today is: not yet, but buy 2.0.1-capable hardware from here on.

What 2.0.1 genuinely improves

Device model and variables

This is the big one. In 1.6 a charger is a flat bag of configuration keys whose names are only loosely standardised, so managing configuration across vendors is a per-model exercise. 2.0.1 replaces it with a structured device model: components, variables, attributes, with defined characteristics and mutability. Configuration management stops being vendor archaeology.

Better transactions

The 1.6 transaction model conflates several concerns and leaves genuine ambiguity about when a transaction begins. 2.0.1 introduces an explicit TransactionEvent with reasons and trigger causes, which makes the failure taxonomy far cleaner — you can distinguish "the driver never plugged in" from "the vehicle refused" without inference.

Security profiles

2.0.1 defines three security profiles covering basic authentication over TLS, and mutual TLS with client certificates including certificate management over the protocol itself. In 1.6 the equivalent is a matter of convention and vendor implementation.

ISO 15118 and plug-and-charge

2.0.1 carries the messages needed to support ISO 15118 certificate handling, which is the prerequisite for plug-and-charge. If plug-and-charge matters to your roadmap, 2.0.1 is not optional — it is the entry ticket.

Smart charging refinements

Charging profiles exist in both, but 2.0.1 adds better reporting of what the charger is actually enforcing and clearer composite schedule semantics. The practical benefit is that you can verify a limit rather than assume it.

What it costs you

CostDetail
HardwareMost deployed 1.6 units cannot be upgraded — the firmware architecture differs
PlatformThe CSMS must implement a genuinely different message set, not a superset
OperationsTwo message vocabularies, two configuration models, two sets of vendor quirks
TestingEvery vendor implements 2.0.1 slightly differently; early adopters do the debugging

Running a mixed fleet

The practical requirement for the next several years is not migration — it is coexistence. Your platform should negotiate the subprotocol per charger and expose a single operational surface regardless of version. Your operations team should never need to know which charger speaks which protocol in order to reset it.

That is an architectural decision on the platform side: the protocol handlers stay isolated per version, normalise into a shared internal event vocabulary, and everything downstream — billing, analytics, uptime, the dashboard — consumes the normalised form. Get that boundary right and 2.0.1 adoption becomes a hardware procurement question rather than an operations project.

The one exception

If you are deploying high-power DC on a constrained connection, the smart-charging verification improvements in 2.0.1 are worth paying for now. Knowing what limit the charger believes it is enforcing — rather than what you told it — is the difference between a safe assumption and an expensive one.

OCPPprotocolsmigration

Get the next one by email

One email a month. Operations notes, unit economics and policy changes that affect your tariff.