Skip to main content
EV & Mobility · 5 min read

EV Charging Networks and OCPP 2.0.1: A Practical Guide

What OCPP 2.0.1 changes for charge point operators, what to keep an eye on during integration, and how to architect a network that supports multiple charger brands without a fork per vendor.

#EV Charging#OCPP#Mobility#IoT

OCPP — the Open Charge Point Protocol — is the lingua franca of EV charging. If you operate a network of more than two chargers from more than one manufacturer, you live and die by your OCPP implementation. Here is what we have learned shipping it on multiple charge point operator (CPO) platforms.

Why OCPP 2.0.1 matters

OCPP 1.6 is what most networks still run. It works, it is widely supported, and it is showing its age. OCPP 2.0.1 brings several things that materially change what a CPO platform can do:

  • Plug & Charge support, integrating with ISO 15118 for cryptographically authenticated sessions without driver app interaction.
  • Smart charging profiles with finer-grained control: per-EVSE schedules, demand response, dynamic load balancing.
  • Improved security: profile-based authentication, certificate management built in, signed firmware updates.
  • Better diagnostics: structured event reporting, remote logs, predictable error semantics.
  • Device management: variables, monitoring, configuration as a first-class concept rather than a free-text key/value bag.

Whether to migrate now or wait depends on your charger fleet’s firmware support and your roadmap for Plug & Charge. Mixed-version networks are a reality for the next several years.

The integration is rarely the hard part

The protocol itself is well-defined. The integration challenges that consume time on every project:

  • Vendor variance. Two chargers that both claim OCPP 1.6J behave differently in dozens of subtle ways: how they report meter values, how they handle reservations, how they recover from network outages, what they consider a “transaction.” Your central system has to absorb that variance, not push it upstream.
  • Time synchronization. Chargers report timestamps they generate locally. When their clocks drift, your billing data drifts. Your platform should validate timestamps against server-side time and flag suspicious drift.
  • Stop transaction races. Sessions can stop because of the driver, the EV, the charger, or the network. Multiple “Stop” messages can arrive out of order. Your transaction model needs to be idempotent and reconcile gracefully.
  • Firmware updates. OCPP supports firmware updates, but the actual experience is vendor-specific and often fragile. Treat it as a partner-by-partner integration.

Architecting for multi-vendor reality

The pattern that holds up:

  • A vendor abstraction layer sits behind the OCPP endpoint. It normalizes vendor quirks into a canonical event model your application code consumes. New vendors get a new adapter, not changes throughout the system.
  • Sessions are first-class objects, not derived from message streams. The session object reconciles the OCPP message stream with billing, driver attribution, and physical events (cable plugged, EV authorized, energy delivered).
  • A diagnostic timeline per session captures every OCPP message. When something goes wrong (and it will), this is the artifact you debug from. Without it, customer support runs blind.
  • Reconciliation runs continuously, not as a batch job. Every session’s transaction sum is reconciled against meter values; discrepancies trigger investigation immediately, not at month-end.

Things that bite in production

Real failure modes from real networks:

  • Stuck sessions. A charger goes offline mid-transaction. The driver thinks they are charging; the network thinks they are. Hours later, the session is still “active.” Watchdog timers and explicit session-recovery logic are mandatory.
  • Phantom transactions. A charger restarts and re-sends a BootNotification. If your server treats this as a new session, you get duplicate billing. Idempotency keys based on (charger ID, transaction ID) close the gap.
  • Roaming. Drivers expect to start a session with their preferred app on a charger they have never seen. OCPI is the protocol for inter-network roaming. It is a separate (significant) project.
  • OCPP over Wi-Fi from public chargers is unreliable. Wired Ethernet wherever possible; cellular as fallback. Wi-Fi as primary is a support burden.

What good looks like operationally

A CPO platform that is working well has:

  • Sub-30-second latency from charger event to operator dashboard. Slower and operators stop trusting it.
  • Real-time charger health rolled up: percentage of fleet online, sessions in progress, average response time.
  • Per-session diagnostic detail that customer support can pull with one click. No manual log mining.
  • Driver app consistency with the operator dashboard. When the driver app says “charging at 50 kW,” the operator dashboard agrees.
  • Tested rollback paths for misbehaving firmware. The first time you push a bad firmware to a fleet of chargers should be a recoverable event.

What we typically do at this stage

For new CPO platforms, our default starting point is OCPP 2.0.1 with backward-compatible 1.6J support, behind a vendor abstraction layer. We integrate three to five charger brands as part of the initial build to validate the abstraction; new brands afterward fit the pattern.

If you are building a charging network and want a second opinion on architecture, we have shipped both 1.6J and 2.0.1 platforms.

By Diglogic Engineering · February 12, 2026

Share

Ready to ship

Let's get started.

Tell us about the problem. We come back within one business day with a clear path, a timeline you can plan around, and a fixed-scope first milestone.