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

FieldTypeRequiredDescription
locationanyURIRequiredWhere to download the firmware from.
checksumstringRequiredMD5 checksum of the firmware file.
requestIdintegerRequiredCorrelation id, echoed in PublishFirmwareStatusNotification.
retriesintegerOptionalDownload retry count.
retryIntervalintegerOptionalSeconds between retries.
json
[2, "19223201", "PublishFirmware", {
  "requestId": 802,
  "location": "https://firmware.example.com/ac22-duo/3.2.0.bin",
  "checksum": "9e107d9d372bb6826bd81d3542a419d6"
}]

Response

FieldTypeRequiredDescription
statusGenericStatusEnumTypeRequiredAccepted or Rejected.
statusInfoStatusInfoTypeOptionalReason 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.