Skip to content

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.

OCPP 1.6J frames
// 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

  1. Set the CSMS URL, for example ws://localhost:9000. The charge point ID is appended to the path when connecting.
  2. Pick OCPP 1.6J. Use a wss:// URL if your server requires TLS.
  3. 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.

Open the simulator

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.