Skip to content
FRFaizan Raza
All work
EV charging protocol serverOpen source

OCPP Central System

A central system server speaking OCPP to EV chargers — managing connected charge points, storing their configuration, and handling the protocol exchange over WebSocket.

Period
2025
Context
Personal project
My role
Author

The problem

Charge points speak OCPP to a central system that has to be there whenever they reconnect. I wanted my own implementation of that server — a place to work through the protocol exchange directly rather than through a vendor's abstraction.

How it was built

The boot handshake

A charger opens a WebSocket and announces itself with a BootNotification carrying its vendor and model. The central system records the charge point, decides whether to accept it, and returns a heartbeat interval and the current time — which is how a charger with no clock of its own learns what time it is.

Configuration as server-owned state

Charger configuration is stored and pushed from the server, so the operator changes a value in one place rather than on the unit. The stored record is what the fleet is reconciled against.

Where it landed

  • Handles connection lifecycle, BootNotification and configuration updates for connected chargers
  • Built on the same protocol foundations as the commercial charging work

Specification

Protocol
OCPP over WebSocket
Server
Python · Django
Handles
BootNotification · configuration get/change
  • Python
  • Django
  • OCPP
  • WebSockets
  • PostgreSQL