Rey — a virtual OCPP charge point running a live session in the browser, with the OCPP-J frame log
Rey driving a live OCPP session — every frame, in the browser.

Two ways to use it

🎬 Explore — demo CSMS

A built-in CSMS runs on the server for whichever version you pick (OCPP 1.6, 2.0.1 or 2.1), so you can drive a full session — boot, authorize, charge, stop — and inspect every frame with no backend of your own. The fastest way to see how OCPP behaves live.

🔌 Connect my CSMS

Enter your CSMS's wss:// URL (+ station id and Basic-auth password if needed) and Rey opens a real OCPP connection to your backend. Watch exactly how your CSMS handles a boot, an authorize, and a transaction — before any hardware is on site.

What you can test

  • The boot handshake — does your CSMS return Accepted, and set the heartbeat interval?
  • Authorization — how does it respond to an idToken, and to a rejected one?
  • The transaction lifecycleStartTransactionMeterValuesStopTransaction in 1.6, or TransactionEvent Started → Updated → Ended in 2.0.1/2.1.
  • CSMS-initiated commands — send a remote start, a Reset, or a TriggerMessage and watch the station respond.
  • The device model — browse and edit the station's variables live, and see how GetVariables / SetVariables behave (in 1.6, the flat configuration keys).
  • Certificate management (2.0.1/2.1) — the station generates a real key and CSR, the CSMS signs it, and you see the installed certificate on the charger. The OCPP cert lifecycle, with real crypto.
  • The wire format — every message shown as its real OCPP-J array, so you can copy frames as test fixtures.

New to the protocol? Start with what OCPP is, then watch the message flow in the OCPP simulator (a passive walkthrough) — and come back here to test your own CSMS live. Rey is open source on GitHub.

Building a CSMS or charge-point firmware?

Rey helps you smoke-test it. The OCPP course takes you from reading frames to building the whole thing — the device model, the transaction engine, smart charging, and security profiles.

Frequently asked questions

What is a virtual charge point?

A virtual charge point (or charge-point emulator) is software that behaves like a physical EV charging station on the OCPP protocol, so you can test a CSMS or learn the message flow without any hardware. Rey is a browser-based one — you drive it in a tab and watch every OCPP-J frame.

Can I test my own CSMS with it?

Yes. Pick your OCPP version, switch to "Connect my CSMS", enter your CSMS's wss:// URL, a station id, and a Basic-auth password if it needs one, and Rey opens a real OCPP connection to your backend — boot, authorize, run a transaction, and see exactly how your CSMS responds. A relay presents the auth headers a browser can't set.

Do I need to install anything or wire up hardware?

No. Rey runs entirely in the browser. For a zero-setup look, the default "Explore" mode drives the station against a built-in demo CSMS — no backend of your own required.

Which OCPP versions does it support?

All three: OCPP 1.6 (1.6-J) — the largest install base — plus OCPP 2.0.1 and OCPP 2.1, all over OCPP-J on WebSocket. Pick the version before you connect; Rey is the one charger across versions, so each speaks its own real message set (StartTransaction/MeterValues/StopTransaction in 1.6, TransactionEvent in 2.0.1/2.1).

Can it do certificates or Plug & Charge?

It demonstrates the OCPP 2.0.1/2.1 certificate lifecycle for real: click "Request a certificate" and the station generates a genuine RSA key pair and CSR, the built-in CSMS signs it (acting as a mini-CA) and returns it over CertificateSigned, and Rey shows the installed certificate — subject, issuer, serial, validity, and SHA-256 fingerprint. That is the cert machinery security profiles 2/3 and ISO 15118 Plug & Charge rely on. It is not the ISO 15118 EV-to-charger handshake itself, which happens on a wire a browser tool cannot reach.

Is it open source?

Yes — the source is public on GitHub. It is a free teaching and testing tool, not a product. Contributions are welcome via pull request.

How is this different from the OCPP simulator on this site?

The OCPP simulator replays a canned message flow so you can learn the sequence passively. Rey is a live charge point you drive against a real or demo CSMS over an actual WebSocket — use the simulator to learn the flow, use Rey to test your own backend.