PublishFirmware
Asks a local controller to download firmware once and serve it to other stations on its network.
- Version
- OCPP 2.0.1
- Direction
- CSMS → Charge Point
- Functional block
- Firmware Management
New in 2.0.1, and aimed squarely at cellular fleets. Rather than every station downloading the same firmware over a metered link, one local controller fetches it and publishes it locally for its neighbours.
Only stations acting as a local controller support this.
Request
| Field | Type | Required | Description |
|---|---|---|---|
location | anyURI | Required | Where to download the firmware from. |
checksum | string | Required | MD5 checksum of the firmware file. |
requestId | integer | Required | Correlation id, echoed in PublishFirmwareStatusNotification. |
retries | integer | Optional | Download retry count. |
retryInterval | integer | Optional | Seconds between retries. |
json
[2, "19223201", "PublishFirmware", {
"requestId": 802,
"location": "https://firmware.example.com/ac22-duo/3.2.0.bin",
"checksum": "9e107d9d372bb6826bd81d3542a419d6"
}]Response
| Field | Type | Required | Description |
|---|---|---|---|
status | GenericStatusEnumType | Required | Accepted or Rejected. |
statusInfo | StatusInfoType | Optional | Reason code. |
json
[3, "19223201", {
"status": "Accepted"
}]Implementation notes
The checksum here is MD5, which is a file-integrity check, not a security control. Firmware authenticity still comes from the signature in UpdateFirmware.
Only a station configured as a local controller will accept this. Others answer Rejected.