ocppsim
ocppsim is a terminal OCPP-J (Open Charge Point Protocol JSON) charge point
simulator written in Rust.
It connects to a CSMS over WebSocket, negotiates an OCPP subprotocol, and lets
an operator drive common charge point workflows from an interactive terminal UI.
The simulator is focused on practical protocol development and CSMS testing. It keeps local connector, transaction, meter, reservation, charging profile, and configuration state, then emits protocol-shaped OCPP messages from that state.
Installation
-
Cargo
-
Homebrew
-
Prebuilt binaries
Download prebuilt binaries for Linux, macOS, and Windows from
ocppsim's latest release on GitHub. -
Docker
Docker images for
ocppsimare also available on Docker Hub aszhongruoyu/ocppsim, and on GitHub Container Registry asghcr.io/zhongruoyu/ocppsim. Use thelatesttag or a specific version tag likev0.1.0to track stable releases, andmainto track the latest commit on the main branch.
Quick Start
Run ocppsim directly against a CSMS endpoint:
Or use a named profile from a TOML config file
in ~/.config/ocppsim/ocppsim.toml or a custom path:
In a Docker container, you can run ocppsim with a mounted config file like:
Run ocppsim --help for more CLI options.
Inside the terminal UI, type help to see available simulator commands.
See documentation for more details on usage.
Shell completion can be enabled by adding the relevant command to your shell profile:
# Bash
# Zsh
# Fish
|
# PowerShell
| |
Documentation
Documentation on design, protocol support, usage, and more is available in the
docs directory.
Protocol Scope
OCPP 1.6 base JSON schemas are the primary complete target. The OCPP 1.6 Security Whitepaper extension is intentionally out of scope for now and is reported as unsupported when recognized.
OCPP 2.0.1 and OCPP 2.1 support the feature subset that maps to already
implemented OCPP 1.6 behavior, plus GetVariables and SetVariables for the
configuration-equivalent device model surface.
Other 2.x actions are explicitly treated as unsupported until they are
implemented and tested.
Schema validation tests use files under schemas as the
source of truth.
License
This project is licensed under the MIT License. See LICENSE for details.