- OCPPLab product
- Dashboard
- Virtual charger
Virtual charger
Deploy a virtual charge point in the Dashboard: create one lab charger, deploy a station of several, copy the Charger URL, and drive OCPP from the Playground.
Virtual charger is the in-app path to a virtual charge point. You create the charge point in the Dashboard at /dashboard/virtual-charger, and it connects to the CSMS over OCPP without any hardware and without running a simulator on your own machine.
This is a different path from Create a charger, which registers a physical station you own so it can dial in. Use this guide when you want a charge point that OCPPLab itself drives.
Before you start
- You are signed in to the Dashboard with permission to manage chargers
- You know whether you want the charge point to speak OCPP 1.6 or OCPP 2.0.1
- A charger site exists, or you are ready to create one — location is required on both sheets
Never paste live OCPP passwords, OCPI tokens, or client certificates into tickets, chat, or public issues. Rotate anything that may have been exposed and use Dashboard or your secret store for operational credentials.
Where it lives
Path: rail → Virtual charger.
The area has five pages:
| Page | Route | What it does |
|---|---|---|
| Chargers | /dashboard/virtual-charger | Lab chargers you can connect, inspect, and drive from this workspace |
| Charger sites | /dashboard/virtual-charger/sites | Sites that group virtual chargers for maps and reporting |
| Workflows | /dashboard/virtual-charger/workflows | Sequence OCPP steps against a virtual charger |
| Playground | /dashboard/virtual-charger/playground | Compose and send a single OCPP call to a virtual charger |
| Logs | /dashboard/virtual-charger/logs | OCPP message log for virtual charger sessions |
The chargers list has two create controls, in the toolbar and repeated in the empty state: Create charger (one charge point) and Deploy station (several at once).
Deploy one virtual charge point
Path: Virtual charger → Chargers → Create charger.
The sheet is grouped into sections. Create charger stays disabled until the required fields are valid.
Charger identity
| Field | Required | What it is | How to set it |
|---|---|---|---|
| Name | No | Human label in the list. | Something you will recognise, e.g. Depot wallbox. |
| Identity | Yes | Charge point id used on the OCPP WebSocket path and in BootNotification. Must be unique in the organization. | Type a stable id such as CP-MALL-A-001, or press Generate for a CP-AB12-XY3 style value. |
| Location | Yes | Lab site this charger belongs to. Used for maps, filtering, and ops context. | Pick a site. If the list is empty, create a charger site first — the sheet links you there. |
Protocol mode
| Field | Required | What it is | How to set it |
|---|---|---|---|
| OCPP version | Yes | Protocol used when connecting to the CSMS. Drives routing and which actions the Playground offers. | Choose 1.6 or 2.0.1. |
| OCPP connection URL | Read-only | The WebSocket base path for this organization. | Copy it with the field's Copy button. |
| Charger URL | Read-only | The full WebSocket URL including the identity you typed — base path + identity. | Copy it with the field's Copy button. This is the value a real station would be pointed at. |
The Charger URL updates live as you edit Identity. It is the same shape described in Connect a charger — read that guide for what the host and path mean.
Charger configuration
| Field | Required | What it is |
|---|---|---|
| Brand | Yes | Manufacturer from the catalog. |
| Model | Yes | Model within that brand. Selecting a model fills in the connector defaults and the catalog photo. |
Brand and model are progressive: pick a site, then a brand, then a model.
Connector configuration
| Field | Required | What it is |
|---|---|---|
| Max charging power (kW) | Yes | Maximum power output of the connector, e.g. 7.4, 11, 22, 50. |
| Connector type | Yes | Physical plug type. |
Connection state
Live connection is read-only. A new charge point is created as Never connected — connection state is only set after an authenticated lab session and a heartbeat. The Dashboard does not pre-fill an Online badge for a charger that has never spoken.
Press Create charger. The charge point appears in the Chargers list.
Deploy a station of several chargers
Path: Virtual charger → Chargers → Deploy station.
Use this when you want a block of identical charge points, e.g. to load-test a CSMS.
| Field | Required | What it is |
|---|---|---|
| Station name | Yes | Label for the group, e.g. North yard. |
| Identity prefix | Yes | Each charger identity is this prefix plus a two-digit suffix. Press Generate for a STN-AB12 style value. |
| Chargers | Yes | How many charge points to create. Between 1 and 12. |
| Location | Yes | Lab site for the station. |
| Brand / Model | Yes | One catalog model for every charger in the station. |
| OCPP version | Yes | Protocol for every charger in the station. |
Press Deploy station. Every charge point is created with the same catalog model and photo, with identities PREFIX-01, PREFIX-02, and so on.
Drive it
Once a charge point exists:
- Playground (
/dashboard/virtual-charger/playground) composes and sends a single OCPP call. Pick the charger, pick a direction (To charger or From charger), pick an action, edit the JSON payload, and send. The payload is schema-checked against the selected action before you send. - Workflows (
/dashboard/virtual-charger/workflows) sequences several OCPP steps into a repeatable scenario. - Logs (
/dashboard/virtual-charger/logs) shows the OCPP frames for virtual charger sessions.
A charger that is not started shows "Charger is offline. Start it from Chargers, then send." in the Playground. Start it from the Chargers list first.
If you would rather drive it yourself
Virtual charger runs the charge point for you inside OCPPLab. If you want to send OCPP frames from your own script or tool instead, use Simulating a charger, which walks an OCPP 1.6 JSON BootNotification → StartTransaction → StopTransaction by hand against a URL you copy from the Dashboard.
Where to go next
| Goal | Guide |
|---|---|
| Register a physical station instead | Create a charger |
| Understand the WebSocket URL and host | Connect a charger |
| Send OCPP frames from your own tooling | Simulating a charger |
| Watch the fleet | Managed chargers |