⚡ OCPP Simulator · EVSE · Charging Station · Electric Vehicle

Test EV charging infrastructure
without the hardware

SimIt simulates entire charging networks — stations, EVSEs, and electric vehicles — so CSMS vendors can test every edge case before going live.

Launch SimIt → See features
# Create a charging station POST /api/v1/cs/create/STATION-001 { "csms_url": "ws://csms.example.com/ocpp/1.6", "evse_count": 2, "connector_count": 1 } # Plug in a virtual EV and start a transaction POST /api/v1/ev/connect/EV-42 POST /api/v1/cs/transaction/start/STATION-001

Built for

OCPP 1.6
OCPP 2.0.1
Multi-EVSE
Docker Ready
REST API
AC & DC

Everything you need to simulate
an EV charging network

From a single connector to hundreds of concurrent stations — SimIt covers every scenario your CSMS needs to handle.

🏗️

Multi-EVSE Architecture

Simulate multiple EVSEs and connectors per station. Configure any topology your CSMS expects, from single-port units to large multi-port sites.

🔋

Realistic EV Simulation

Battery state machine with live SOC tracking, configurable capacity, import energy during charging, and auto-discharge when idle.

Accurate Energy Metering

Power-to-current conversion, configurable increment intervals, and periodic MeterValues messages — indistinguishable from real hardware.

🔌

AC & DC Charging

Supports both AC (up to 11 kW) and DC fast-charging (up to 90 kW) modes with dynamic power distribution and charging profile management.

🌐

REST API Control

Full programmatic control over every simulator lifecycle. Integrate directly with your test harness, CI pipeline, or load-testing scripts.

📡

Network Fault Injection

Simulate disconnects, reconnects, and error states on demand. Verify your CSMS handles degraded conditions safely and recovers correctly.

⏱️

Simulated Time Control

Pure asyncio time controller decoupled from the wall clock. Run time-dependent scenarios at any speed without waiting for real time to pass.

🐳

Docker & High Concurrency

Production-grade Docker setup with Nginx reverse proxy and ulimits tuned to 65 536 connections for serious load testing.

🔁

Auto-Reconnect

Each station reconnects automatically with random jitter on connection loss, mirroring real-world charger behaviour your CSMS must handle.

Simulate a full charging session
in four steps

1

Deploy SimIt

Run locally with python simulator.py or spin up the Docker Compose stack in seconds.

2

Create a Station

POST to the API with your CSMS WebSocket URL. SimIt connects immediately and begins the OCPP handshake.

3

Attach an EV

Create a virtual EV, connect it to a connector, and configure battery capacity and initial SOC.

4

Run Your Scenario

Start transactions, inject faults, disconnect the network — then verify your CSMS responds correctly.

REST Client
curl / test suite / CI
HTTP
SimIt API
aiohttp server
manages
CS & EV Simulators
OCPP 1.6 / 2.0.1
WebSocket
Your CSMS
system under test
REST API

Control everything via HTTP

All operations are available as REST endpoints secured with an API key header (DDOCHARGE-API-KEY).

⚡ Charging Station /api/v1/cs/{action}/{cb_id}
POST/createBoot a station
GET/infoStation state
DEL/deleteRemove station
POST/transaction/startBegin charge
POST/transaction/stopEnd charge
POST/error/setInject error
POST/error/resetClear error
POST/network/disconnectDrop connection
POST/network/connectRestore connection
🔋 Electric Vehicle /api/v1/ev/{action}/{ev_id}
POST/createRegister EV
GET/infoBattery & SOC
DEL/deleteRemove EV
POST/connectPlug in
POST/disconnectUnplug
POST/dischargeDrain battery

OCPP 1.6 today,
OCPP 2.0.1 coming soon

OCPP 1.6

Fully implemented
  • BootNotification & Heartbeat
  • RemoteStart / RemoteStop
  • MeterValues (periodic)
  • SetChargingProfile
  • ClearChargingProfile
  • ChangeConfiguration
  • Reset (soft & hard)
  • StatusNotification

OCPP 2.0.1

In progress
  • Library (ocpp 2.0.0) integrated
  • EVSE abstraction layer ready
  • Multi-EVSE model in place
  • Protocol handlers pending
  • Device Model support planned
  • ISO 15118 roadmap
Get started

Up and running in minutes

1

Get your API key

Sign in at simit.ddosoft.com and grab your API key from the dashboard.

2

Create a charge point

POST to /cs/create/{id} with your CSMS WebSocket URL. SimIt connects immediately over OCPP.

3

Attach a virtual EV

Create an EV and connect it to a connector. Configure battery capacity and initial SOC as needed.

4

Start a transaction

Trigger a charge session and watch MeterValues flow to your CSMS in real time.

# 1. Create a charge point $ curl -X POST https://simit.ddosoft.com/api/v1/cs/create/CP-001 \ -H "DDOCHARGE-API-KEY: <your-key>" \ -H "Content-Type: application/json" \ -d '{ "csms_url": "ws://csms.example.com/ocpp/1.6", "evse_count": 1, "connector_count": 1, "power_output": 22 }' # 2. Create & connect a virtual EV $ curl -X POST https://simit.ddosoft.com/api/v1/ev/create/EV-01 \ -H "DDOCHARGE-API-KEY: <your-key>" \ -d '{"capacity_kwh": 60, "soc": 20}' $ curl -X POST https://simit.ddosoft.com/api/v1/ev/connect/EV-01 \ -H "DDOCHARGE-API-KEY: <your-key>" \ -d '{"cb_id": "CP-001", "connector_id": 1}' # 3. Start a charging transaction $ curl -X POST https://simit.ddosoft.com/api/v1/cs/transaction/start/CP-001 \ -H "DDOCHARGE-API-KEY: <your-key>"