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
- Context
- My role
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
- Server
- Handles