Starting point
A depot operator in southern Germany charges its buses and trucks overnight in the yard. The CPMS in use was approaching the end of its contract, key functions were missing – the decision to switch providers had been made. The catch: the vehicles had to keep charging every night, so halting charging operations was not an option.
A direct cut-over – moving all charge points to the new backend on a single day – would have meant exactly that risk: if anything fails after the switch, vehicles stand in the depot the next morning without enough charge.
Approach
The project started with an assessment of the existing landscape: which charge points speak which OCPP version, which configurations and edge cases exist, which processes depend on the legacy system? The result was a migration plan in groups instead of a cut-over date.
We then placed the OCPP Broker as a decoupling layer between the charge points and the backend. Since then, the charge points connect to the broker – which backend answers behind it is a routing decision. The new backend was first connected as a shadow system: it received the same OCPP messages as the legacy system without affecting operations.
Running both backends in parallel made it possible to verify that the new system handled every flow correctly – from authorisation to the end of a charging session. Only then were the charge points switched over group by group, starting with non-critical ones. For every group, the way back to the legacy system stayed open at all times.
Outcome
The migration succeeded without interrupting charging operations: at no point were the vehicles in the depot unable to charge. Rollback capability remained in place until the last group was switched – it was never needed, but it was there.
Today the operator owns the decoupling layer itself. The next backend change – whether for contractual, functional or cost reasons – is no longer a major project but a routing decision. The lock-in to a backend provider is gone.
Building blocks used
OCPP Broker as a decoupling layer with multi-backend routing and shadow connection, complemented by assessment and migration support from our services. The broker runs on-premises at the operator and remains permanently in their ownership.