StatusNotification

Core CP->CSMS

Sent by the Charge Point to notify the Central System of a status change on a connector.

Quick Reference

Required Fields

connectorId integer

Connector ID (0 for Charge Point, >0 for connectors)

errorCode string

Error code (NoError if no error)

status string

Current status of the connector

Optional Fields

info string(50)

Additional free-format info about error

timestamp dateTime

Time of status change

vendorId string(255)

Vendor-specific identifier

vendorErrorCode string(50)

Vendor-specific error code

Example Payload

{
  "connectorId": 1,
  "errorCode": "NoError",
  "status": "Available",
  "timestamp": "2024-01-15T10:00:00Z"
}

Example Full Frame

[
  2,
  "msg-001",
  "StatusNotification",
  {
    "connectorId": 1,
    "errorCode": "NoError",
    "status": "Available",
    "timestamp": "2024-01-15T10:00:00Z"
  }
]

Format: [MessageType, MessageId, Action, Payload]

Overview

The StatusNotification message informs the Central System about the current status of a connector or the Charge Point itself. This is crucial for real-time monitoring and user-facing availability displays.

When to Send

  • After BootNotification (send initial status for all connectors)
  • When connector status changes (cable connected/disconnected, charging starts/stops)
  • When an error occurs or clears
  • Periodically as a heartbeat for connector status (optional)

Connector Status Values

  • Available: Ready for use, no vehicle connected
  • Preparing: Cable connected, waiting for authorization or vehicle ready
  • Charging: Active charging session
  • SuspendedEV: Charging suspended by vehicle (e.g., battery management)
  • SuspendedEVSE: Charging suspended by Charge Point
  • Finishing: Charging finished, waiting for cable disconnect
  • Reserved: Connector reserved for specific user
  • Unavailable: Connector out of service
  • Faulted: Connector error state

Error Code Values

  • NoError: No error
  • ConnectorLockFailure: Cable lock malfunction
  • EVCommunicationError: Communication with vehicle failed
  • GroundFailure: Ground fault detected
  • HighTemperature: Over-temperature condition
  • InternalError: Internal component error
  • LocalListConflict: Authorization list issue
  • OverCurrentFailure: Over-current detected
  • PowerMeterFailure: Energy meter malfunction
  • PowerSwitchFailure: Contactor/relay failure
  • ReaderFailure: RFID reader malfunction
  • UnderVoltage: Under-voltage condition
  • OverVoltage: Over-voltage condition
  • WeakSignal: Poor network signal

Usage Notes

  • ConnectorId 0 refers to the Charge Point itself
  • Always send status after BootNotification for all connectors
  • Status transitions should follow logical flow (Available → Preparing → Charging → Finishing → Available)
  • When errorCode is not “NoError”, status is typically “Faulted”

Best Practices

  1. Initial status - Send StatusNotification for all connectors after boot
  2. Accurate timestamps - Include timestamp for precise event tracking
  3. Error details - Use info field to provide human-readable error description
  4. Vendor codes - Include vendorErrorCode for manufacturer-specific diagnostics
  5. Status consistency - Ensure status transitions are logical and consistent

Testing Tips

  • Test all status values (Available, Preparing, Charging, etc.)
  • Test error conditions with various errorCode values
  • Test connectorId 0 for Charge Point-level status
  • Test status transitions during typical charging session
  • Test with and without optional timestamp field

Common Errors

PropertyConstraintViolation

Cause: Invalid status or errorCode value

Solution: Use only standard OCPP status and error code values

TypeConstraintViolation

Cause: connectorId is negative

Solution: Use 0 for Charge Point, positive integers for connectors