Skip to content

OCPP Simulator & Emulator FAQ

Answers about the free OCPP simulator and emulator: supported OCPP versions, connecting to a CSMS, localhost testing, meter values, state of charge and load testing.

Frequently asked questions

What is OCPP?

The Open Charge Point Protocol (OCPP) is an open standard, maintained by the Open Charge Alliance, for communication between EV charging stations and the software that manages them (the CSMS). It covers boot and heartbeat, authorization, transactions, meter values, remote control, smart charging and firmware updates.

What is a CSMS?

A Charging Station Management System — called the Central System in OCPP 1.6 — is the backend that chargers connect to. It authorizes drivers, records transactions, sends remote commands and manages charging profiles.

Do I need to install anything?

No. The simulator runs in a modern browser. It can also be run locally from its open-source repository with npm install and npm run dev.

Can I load-test my CSMS?

Yes. Fleet spawn creates and connects up to 50 virtual chargers at once with a common prefix, and scenario macros can run the same charging sequence on every connected charger.

Is my data sent anywhere?

Only to the CSMS you connect to. Charger configuration is stored in your browser's local storage; the simulator has no backend of its own for your OCPP traffic.

What is an OCPP simulator?

An OCPP simulator is software that behaves like a real EV charge point. It connects to a CSMS (Central System) over WebSocket and exchanges OCPP messages — boot, authorization, transactions, meter values — so you can test the backend without charging hardware.

Is an OCPP emulator the same as an OCPP simulator?

Yes — both terms describe software that acts as a charge point over OCPP. “Simulator” stresses that no charging hardware is involved; “emulator” stresses that it speaks the real protocol, message for message, to a real CSMS. This tool is both.

Is this OCPP simulator free?

Yes. OCPP WS Simulator is free and open source under the MIT license. It runs in your browser with no install and no account.

Which OCPP versions are supported?

OCPP 1.6J, OCPP 2.0.1 and OCPP 2.1, all using JSON over WebSocket (OCPP-J).

Can it connect to a CSMS running on localhost?

Yes. When the simulator itself runs locally it connects directly. From the hosted HTTPS site, allow insecure content for the site in your browser settings, or expose your CSMS through a tunnel such as ngrok.

Can I simulate an EV charging session without hardware?

Yes. The simulator emulates the charger side of the session over OCPP: plug in, authorize, start the transaction, report meter values and state of charge, then stop and unplug — all from the browser.

How is state of charge (SoC) calculated?

SoC is the energy delivered in the current session divided by the configured battery capacity, sent with one decimal place. Every session starts from an empty battery; the energy meter itself keeps counting across sessions, as a real meter does.

Can I stop charging at 80%?

Yes. Set the auto-charge target to 80%, 90% or 100% of the battery capacity. Auto charge stops the transaction when the session reaches that state of charge.

Can I simulate charger faults?

Yes. Trip any OCPP error code (for example GroundFailure or OverVoltage) on a connector, force the charger offline, or delay every response to test CSMS timeouts.

What is OCPP 1.6J?

OCPP 1.6J is version 1.6 of the Open Charge Point Protocol using JSON over WebSocket (the 'J' stands for JSON; 1.6S was the SOAP variant). It is still the most widely deployed OCPP version on public chargers.

Which WebSocket subprotocol does OCPP 1.6J use?

ocpp1.6. The charge point connects to the CSMS URL with its identity appended to the path and requests the ocpp1.6 subprotocol during the WebSocket handshake.

Does the simulator support the OCPP 1.6 security extensions?

It answers the security-whitepaper messages for certificates, signed firmware updates and log retrieval, and connects over plain ws:// or encrypted wss:// URLs.

What is the main difference between OCPP 1.6 and OCPP 2.0.1?

OCPP 2.0.1 replaces StartTransaction and StopTransaction with a single TransactionEvent message, models chargers as EVSEs with connectors, and replaces configuration keys with a device model of components and variables read and written through GetVariables and SetVariables.

Does the simulator support OCPP 2.1?

Yes. OCPP 2.0.1 and 2.1 are both selectable; the simulator negotiates the matching WebSocket subprotocol (ocpp2.0.1 or ocpp2.1).

Can I test device model variables?

Yes. The simulator exposes a device model the CSMS can read with GetVariables and change with SetVariables; read-only variables are rejected, and you can view and edit the values in the Config tab.

What is the best way to use OCPP in Node.js?

Use an OCPP-J RPC library that handles the WebSocket connection, message framing, request/response matching and error codes for you. ocpp-ws-io is one such library: it supports OCPP 1.6J, 2.0.1 and 2.1 with typed messages in TypeScript.

What does OCPP RPC mean?

OCPP-J carries remote procedure calls over WebSocket as JSON arrays: a CALL [2, id, action, payload], answered by a CALLRESULT [3, id, payload] or a CALLERROR [4, id, code, description, details]. An OCPP RPC library implements that framing for you.

Is ocpp-ws-io an alternative to ocpp-rpc?

Both are open-source Node.js libraries for the OCPP-J RPC framing. ocpp-ws-io adds typed messages for OCPP 1.6J, 2.0.1 and 2.1, optional JSON schema validation, all security profiles, Redis clustering and a browser client. Compare both projects' documentation to choose what fits your stack.

How do I test my Node.js CSMS?

Start your server, open the OCPP WS Simulator, set the endpoint to your server's WebSocket URL (for example ws://localhost:9000) and connect. The simulator acts as a real charge point.

Why can't the simulator connect to ws://localhost?

When the simulator is opened over HTTPS, browsers block unencrypted ws:// connections from it as mixed content, and newer Chrome versions also ask before a site can reach devices on your local network. Allow insecure content for the site, run the simulator locally, or use a wss:// tunnel.

Do I need a tunnel to test locally?

No. Allowing insecure content for the simulator site, or running the simulator itself on localhost, both work without a tunnel. A tunnel is useful when browser settings can't be changed, for example on a managed work machine.

How do I check that my CSMS is reachable?

Open the Localhost guide from the simulator header, go to Test and run the WebSocket test against your port. It reports whether the connection succeeded, was blocked by the browser or was refused, with the round-trip time.