Skip to content
Documentation Menu

Publish Firmware

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 NameField TypeCard.Description
locationstring [0..512]1..1Required. URI from which the firmware is retrieved.
retriesinteger0..1Optional. Maximum number of download retries.
checksumidentifierString [0..32]1..1Required. MD5 checksum (hex string of length 32) over the firmware file.
requestIdinteger1..1Required. Id of the request.
retryIntervalinteger0..1Optional. 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)

Request schema (JSON Schema)
Response schema (JSON Schema)