StatusNotification
Sent by the Charging Station to report the current status of a connector on a specific EVSE. Uses the new EVSE/connector model and a simplified connector status enum.
Quick Reference
Required Fields
timestamp string (date-time) Time at which the status change occurred
connectorStatus ConnectorStatusEnumType Current status: Available, Occupied, Reserved, Unavailable, or Faulted
evseId integer ID of the EVSE to which this connector belongs (0 = Charging Station itself)
connectorId integer ID of the connector on the EVSE
Example Payload
{
"timestamp": "2024-01-15T10:00:00Z",
"connectorStatus": "Available",
"evseId": 1,
"connectorId": 1
} Example Full Frame
[
2,
"msg-001",
"StatusNotification",
{
"timestamp": "2024-01-15T10:00:00Z",
"connectorStatus": "Available",
"evseId": 1,
"connectorId": 1
}
]
Format: [MessageType, MessageId, Action, Payload]
Overview
StatusNotification reports the operational status of a specific connector on a specific EVSE to the CSMS. In OCPP 2.0.1, the status enum is simplified from 1.6J’s 9 states to just 5 states, and the EVSE model replaces the flat connector model.
When to Send
- When the status of a connector changes
- After a BootNotification is accepted (report initial status for all connectors)
- After a ChangeAvailability command is processed
Expected Response
Empty response — the CSMS acknowledges with an empty {} object.
Key Differences from OCPP 1.6J
| OCPP 1.6J Status | OCPP 2.0.1 Equivalent |
|---|---|
| Available | Available |
| Preparing | Occupied |
| Charging | Occupied |
| SuspendedEV | Occupied |
| SuspendedEVSE | Occupied |
| Finishing | Occupied |
| Reserved | Reserved |
| Unavailable | Unavailable |
| Faulted | Faulted |
The charging state details (Charging, SuspendedEV, etc.) are now reported via TransactionEvent.transactionInfo.chargingState.
Also, connectorId in 1.6J now becomes evseId + connectorId in 2.0.1.
Usage Notes
- Use
evseId: 0to report the overall Charging Station status - A Charging Station with 2 EVSEs would send StatusNotification for evseId 1 and 2
- The detailed charging state is no longer part of StatusNotification — use
TransactionEventfor that errorCodefrom 1.6J is removed — security events useSecurityEventNotificationinstead
Best Practices
- Report all connectors on boot — After BootNotification is accepted, send StatusNotification for each connector
- Keep it simple — Only 5 states to track, detailed session state lives in TransactionEvent
- Use evseId=0 for station-level faults — If the entire station is unavailable, report with evseId=0
Testing Tips
- Verify all 5 statuses: Available, Occupied, Reserved, Unavailable, Faulted
- Test that sending
PreparingorCharging(from 1.6J) results in a validation error - Test the initial status report after BootNotification
Common Errors
TypeConstraintViolation
Cause: connectorStatus uses a 1.6J status value like Preparing or Charging
Solution: OCPP 2.0.1 has a different status enum: Available, Occupied, Reserved, Unavailable, Faulted
TypeConstraintViolation
Cause: evseId is missing
Solution: evseId is required in OCPP 2.0.1. Use 0 to report Charging Station level status