OCPP 1.6J Simulator & Emulator: Every Core Message
Test OCPP 1.6J (JSON over WebSocket) against your central system: BootNotification, Authorize, StartTransaction, MeterValues, remote commands and more.
OCPP 1.6J in a nutshell
In OCPP 1.6J the charge point keeps one WebSocket open to the Central System and both sides send CALL frames that the other answers with a CALLRESULT or CALLERROR. Transactions are bracketed by StartTransaction and StopTransaction, and energy is reported in between with MeterValues.
// Charge point → CSMS (CALL: [2, uniqueId, action, payload])
[2, "8f3a", "BootNotification", {
"chargePointVendor": "Elmo",
"chargePointModel": "Virtual-Emulator-1"
}]
// CSMS → charge point (CALLRESULT: [3, uniqueId, payload])
[3, "8f3a", {
"status": "Accepted",
"currentTime": "2026-09-29T10:00:00Z",
"interval": 300
}]
// Later, during a transaction
[2, "91c2", "MeterValues", {
"connectorId": 1,
"transactionId": 1001,
"meterValue": [{
"timestamp": "2026-09-29T10:05:00Z",
"sampledValue": [
{ "measurand": "Energy.Active.Import.Register", "value": "4500", "unit": "Wh" },
{ "measurand": "SoC", "value": "15.0", "unit": "Percent", "location": "EV" }
]
}]
}]Messages the simulator sends
BootNotification, Heartbeat, StatusNotification, Authorize, StartTransaction, MeterValues, StopTransaction, DataTransfer, DiagnosticsStatusNotification, FirmwareStatusNotification, SecurityEventNotification and LogStatusNotification — plus any other action with a custom payload from the built-in message composer.
CSMS commands it answers
Remote control
RemoteStartTransaction, RemoteStopTransaction, Reset, UnlockConnector, ChangeAvailability, TriggerMessage.
Configuration
GetConfiguration and ChangeConfiguration, with read-only keys rejected as a real charger would.
Reservations and authorization
ReserveNow, CancelReservation, SendLocalList, GetLocalListVersion, ClearCache.
Smart charging
SetChargingProfile, ClearChargingProfile, GetCompositeSchedule.
Firmware and diagnostics
UpdateFirmware and GetDiagnostics run their full status sequences; SignedUpdateFirmware and GetLog from the security extension.
Certificates and data transfer
InstallCertificate, DeleteCertificate, GetInstalledCertificateIds, CertificateSigned, ExtendedTriggerMessage, DataTransfer.
Connecting to your Central System
- Set the CSMS URL, for example
ws://localhost:9000. The charge point ID is appended to the path when connecting. - Pick OCPP 1.6J. Use a
wss://URL if your server requires TLS. - Select Connect. After an accepted BootNotification the simulator sends heartbeats at the interval your CSMS returned.
Moving to the newer protocol? The OCPP 2.0.1 simulator guide covers what changes.
Test your OCPP 1.6J Central System
Open the simulator, point it at your CSMS URL and connect. Everything runs in your browser.
Frequently asked questions
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.