Open Source · OCPP Simulator

Simulate a charge point. Test your CPMS without hardware.

The OCPP Virtual Charge Point (VCP) is a lightweight, open-source simulator that behaves like a real charging station, straight from your terminal. Build, test, and break your Central System before a single EVSE ships.

vcp — npm start index_16.ts
$ npm start index_16.ts [vcp] connected · OCPP 1.6J · JSON over WebSocket -> BootNotification { vendor: "Solidstudio", model: "VCP" } <- BootNotification.conf { status: "Accepted", interval: 30 } -> Authorize { idTag: "04A1B2C3D4" } <- Authorize.conf { idTagInfo: { status: "Accepted" } } -> StartTransaction { connectorId: 1, meterStart: 0 } <- StartTransaction.conf { transactionId: 1042 } [vcp] heartbeat every 30s · admin ws listening on :9999
Node.js & TypeScriptRuns anywhere Node 12+ runs
OCPP 1.6 & 2.0.1Switch protocol per script
Terminal / CLINothing to install on a station
Apache-2.0Free for commercial use
What is it

Build and test your Charge Point Management System without hardware.

Speed up your CPMS development. The open-source Virtual Charge Point is a lightweight Node.js simulator for OCPP communication flows.

Test edge cases and debug payloads straight from the terminal. When you need to see how your Central System handles stress, VCP puts you in control.

No physical hardware required. A charging station on your laptop, running against your Central System in minutes.

Apache-2.0
Open source, maintained in public by Solidstudio - fork it, file an issue, send a PR.
Who is it for

Three teams that stop waiting for hardware

E-mobility developers

Skip the hardware wait. VCP puts a charging station on your laptop, so you code against OCPP from day one.

  • Iterate on message handlers while the EVSE is still on order.
  • Trigger Authorize, StartTransaction and others by hand.
  • Switch between OCPP 1.6 and 2.0.1 to check both paths.
Clone the repo and you have a test station running in minutes.

QA and testing teams

Break things on purpose. VCP lets you throw bad input and rough conditions at the Central System, then confirm it holds up.

  • Send malformed payloads and watch schema validation flag them.
  • Force connection drops and hard resets, then check recovery.
  • Load different .env configs to reproduce a failing scenario.
A bug you catch once, you can reproduce every time.

Charge Point Operators

Test before the field does. VCP mirrors how a real station talks to your back office, so integration problems surface in staging.

  • Validate back-office updates against live OCPP traffic.
  • Confirm roaming and firmware assumptions before rollout.
  • Simulate a small fleet: many instances, one Central System.
Catch the broken integration in staging - not at a dead charger.
Key features

Everything you need to put a Central System under pressure

Protocol
Dual protocol supportSwitch between OCPP 1.6 and 2.0.1 depending on the project.
Strict schema validationEvery message checked against the spec; malformed payloads flagged on the spot.
Control
Configurable per scenarioSwap .env files for endpoint, Charge Point ID and credentials.
Admin commands & proxyingA separate WebSocket endpoint fires manual Authorize or StartTransaction calls.
Resilience
Resilience testingAuto-restart replays connection drops and hard resets on demand.
Many instances at onceRun a small simulated fleet against a single Central System.
quickstart
# install dependencies npm install # point it at a local Central System WS_URL=ws://localhost:3000 CP_ID=vcp_16_test npm start index_16.ts → connected · BootNotification accepted
Quickstart

Up and running in minutes

Clone the repo, install, point VCP at your WebSocket endpoint. Real OCPP traffic against your Central System - no station, no lab, no procurement.

Get it on GitHub
Open source

Built for developers, maintained in public

VCP is open source under Apache-2.0. Solidstudio maintains it in the open, working toward a more interoperable e-mobility stack - open a pull request or file an issue via the standard fork-and-pull flow.

Manual actions

Plug in / unplug cableScan RFID tokenBoot NotificationSend HeartbeatAuthorizeStart / Stop Transaction

Protocol & validation

OCPP 1.6 & 2.0.1Strict schema validationJSON over WebSocket

Testing

Resilience & auto-restartConnection dropsHard resetsPer-scenario .envMany instances for load
Frequently asked questions

Does VCP support both OCPP 1.6 and 2.0.1?

Yes. Switch between the two protocols by running the respective script – index_16.ts for 1.6, index_201.ts for 2.0.1.

Can I manually trigger specific OCPP messages?

Yes. Basic messages (BootNotification, Heartbeat) are automated, and an admin WebSocket endpoint lets you send actions like Authorize or StartTransaction on demand.

Is the simulator free for commercial use?

Absolutely. VCP is 100% open source under Apache-2.0 – use, modify, and integrate it into open-source and commercial testing environments at no cost.

Start simulating in minutes

Clone the repo, point it at your Central System, and you have a charging station running locally.

Get it on GitHub