Firmware Status Notification
Source: OCPP 2.0.1 Part 2 — Specification (Edition 2, 2022-12-15) — Section 1.15 (Messages); Use Cases L01 — Secure Firmware Update, L02 — Non-Secure Firmware Update (Functional Block L. FirmwareManagement)
Overview
The Charging Station sends FirmwareStatusNotificationRequest to inform the CSMS about the progress of a firmware update started by UpdateFirmwareRequest (L01: signed firmware; L02: legacy non-signed firmware).
Every notification for a specific update SHALL carry the same requestId as the originating UpdateFirmwareRequest. requestId is mandatory unless the message was triggered by TriggerMessageRequest AND there is no firmware update ongoing — in which case the CS sends status = Idle without a requestId.
When entering certain failure states the CS also sends a SecurityEventNotification:
InvalidFirmwareSignature→ security eventInvalidFirmwareSignature.- Invalid signing certificate → security event
InvalidFirmwareSigningCertificate.
Sequence Diagram
Charging Station ──── FirmwareStatusNotificationRequest ────▶ CSMS
(status, requestId?)
Charging Station ◀─── FirmwareStatusNotificationResponse ──── CSMS
(repeated for each state: Downloading → Downloaded → SignatureVerified
→ Installing → Installed)
Initiator
Charging Station → CSMS
Fields
| Field Name | Field Type | Card. | Description |
|---|---|---|---|
| status | FirmwareStatusEnumType | 1..1 | Required. Progress status of the firmware installation. |
| requestId | integer | 0..1 | Optional. The requestId from the originating UpdateFirmwareRequest. Mandatory unless the message was triggered by TriggerMessage AND there is no firmware update ongoing. |
No fields are defined.
FirmwareStatusEnumType values
Intermediate states: Downloaded, Downloading, DownloadScheduled, DownloadPaused, Installing, InstallRebooting, InstallScheduled, SignatureVerified.
End states: Installed (success), DownloadFailed, InstallationFailed, InstallVerificationFailed, InvalidSignature.
Other: Idle — only valid in response to a TriggerMessage when no update is in progress.
Examples
{
"status": "Downloading",
"requestId": 123
}{
"status": "Installed",
"requestId": 123
}{}Schema
Source:
schemas/FirmwareStatusNotificationRequest.json,schemas/FirmwareStatusNotificationResponse.json(OCPP 2.0.1 FINAL)