OCPP WebSocket Upgrade fails with Evcs.Ocpp.Server (404), but works with standalone JSONServer

Hello,

I am integrating a Zappi charger using OCPP 1.6J, I have a strange issue with the WebSocket handshake.

What works

If I run a standalone JSONServer (ChargeTime.eu):

JSONServer server = new JSONServer(core);
server.open("0.0.0.0", 8888, events);

the charger connects correctly through ngrok, and BootNotification/Heartbeat work normally.

What fails

When I use OpenEMS’s built-in:

Evcs.Ocpp.Server → JSONServer on ws://0.0.0.0:8880/

the charger sends the WebSocket Upgrade request, but OpenEMS responds with 404 (Upgrade fail)

Why does the charger get a 404 WebSocket Upgrade only with OpenEMS’s Evcs.Ocpp.Server?

Sorry, no solution here. Usually OCPP is not the preferred API for local control - but from a quick research it seams Zappi Chargers do not have a very good API. Is that true?

Maybe if you can describe in detail the steps to reproduce this on a Debian Linux system, I might be able to help you out…