"baseName": "CS-CHARGEX",
   "chargePointModel": "Aqueduct 1.0",
   "chargePointVendor": "ChargeX GmbH",
+  "firmwareVersionPattern": "^MCC (0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*); SCC \\[(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*), (0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\]$",
   "firmwareVersion": "MCC 1.2.0; SCC [0.12.0, 0.13.0]",
   "power": 22080,
   "powerUnit": "W",
 
   OCPP16RequestCommand,
   OCPP16StatusNotificationRequest,
   OCPP16TriggerMessageRequest,
+  OCPP16UpdateFirmwareRequest,
   RemoteStartTransactionRequest,
   RemoteStopTransactionRequest,
   ResetRequest,
   OCPP16HeartbeatResponse,
   OCPP16StatusNotificationResponse,
   OCPP16TriggerMessageResponse,
+  OCPP16UpdateFirmwareResponse,
   SetChargingProfileResponse,
   UnlockConnectorResponse,
 } from '../../../types/ocpp/1.6/Responses';
       [OCPP16IncomingRequestCommand.GET_DIAGNOSTICS, this.handleRequestGetDiagnostics.bind(this)],
       [OCPP16IncomingRequestCommand.TRIGGER_MESSAGE, this.handleRequestTriggerMessage.bind(this)],
       [OCPP16IncomingRequestCommand.DATA_TRANSFER, this.handleRequestDataTransfer.bind(this)],
+      // [OCPP16IncomingRequestCommand.UPDATE_FIRMWARE, this.handleRequestUpdateFirmware.bind(this)],
     ]);
     this.jsonSchemas = new Map<OCPP16IncomingRequestCommand, JSONSchemaType<JsonObject>>([
       [
     return Constants.OCPP_RESPONSE_REJECTED;
   }
 
+  private handleRequestUpdateFirmware(
+    chargingStation: ChargingStation,
+    commandPayload: OCPP16UpdateFirmwareRequest
+  ): OCPP16UpdateFirmwareResponse {
+    if (
+      OCPP16ServiceUtils.checkFeatureProfile(
+        chargingStation,
+        OCPP16SupportedFeatureProfiles.FirmwareManagement,
+        OCPP16IncomingRequestCommand.UPDATE_FIRMWARE
+      ) === false
+    ) {
+      return Constants.OCPP_RESPONSE_EMPTY;
+    }
+    logger.debug(
+      chargingStation.logPrefix() +
+        ' ' +
+        OCPP16IncomingRequestCommand.UPDATE_FIRMWARE +
+        ' request received: %j',
+      commandPayload
+    );
+  }
+
   private async handleRequestGetDiagnostics(
     chargingStation: ChargingStation,
     commandPayload: GetDiagnosticsRequest
 
   GET_DIAGNOSTICS = 'GetDiagnostics',
   TRIGGER_MESSAGE = 'TriggerMessage',
   DATA_TRANSFER = 'DataTransfer',
+  UPDATE_FIRMWARE = 'UpdateFirmware',
 }
 
 export type OCPP16ClearCacheRequest = EmptyObject;
   stackLevel?: number;
 }
 
+export interface OCPP16UpdateFirmwareRequest extends JsonObject {
+  location: string;
+  retrieveDate: Date;
+  retries?: number;
+  retryInterval?: number;
+}
+
 export interface GetDiagnosticsRequest extends JsonObject {
   location: string;
   retries?: number;