Publish Firmware
The CSMS sends PublishFirmwareRequest to a Local Controller (acting as Charging Station in the OCPP topology) instructing it to download a firmware file from a URI and republish it locally — so dow…
Source: OCPP 2.0.1 Part 2 — Specification (Edition 2, 2022-12-15) — Section 1.41 (Messages); Use Case L03 — Publish Firmware file on Local Controller (Functional Block L. FirmwareManagement)
Overview
The CSMS sends PublishFirmwareRequest to a Local Controller (acting as Charging Station in the OCPP topology) instructing it to download a firmware file from a URI and republish it locally — so downstream Charging Stations can fetch the firmware from the Local Controller instead of the public internet.
The Local Controller verifies the file using the MD5 checksum and then makes it available via the URIs reported in subsequent PublishFirmwareStatusNotification messages.
Sequence diagram
CSMS ──── PublishFirmwareRequest ────▶ Charging Station (Local Controller)
(location, checksum, requestId, retries?, retryInterval?)
CSMS ◀─── PublishFirmwareResponse ──── Charging Station (Local Controller)
(status, statusInfo?)
(then PublishFirmwareStatusNotificationRequest messages with same requestId)Initiator
CSMS → Charging Station (Local Controller)
Fields
| Field Name | Field Type | Card. | Description |
|---|---|---|---|
| location | string [0..512] | 1..1 | Required. URI from which the firmware is retrieved. |
| retries | integer | 0..1 | Optional. Maximum number of download retries. |
| checksum | identifierString [0..32] | 1..1 | Required. MD5 checksum (hex string of length 32) over the firmware file. |
| requestId | integer | 1..1 | Required. Id of the request. |
| retryInterval | integer | 0..1 | Optional. Interval (s) between retries. |
GenericStatusEnumType values
Accepted, Rejected.
Examples
{
"location": "https://firmware.example.com/cp/2.1.0/firmware.bin",
"checksum": "9e107d9d372bb6826bd81d3542a419d6",
"requestId": 55,
"retries": 3,
"retryInterval": 600
}Schema
Source:
schemas/PublishFirmwareRequest.json,schemas/PublishFirmwareResponse.json(OCPP 2.0.1 FINAL)