Fixes to OCPP 1.6 payload type definitions
[e-mobility-charging-stations-simulator.git] / src / types / ocpp / 1.6 / Requests.ts
index 0602c2831910dbddef90decc2e3f176cc60d3e04..678eacc990e50012964a66611eac978ed0d8c55c 100644 (file)
@@ -1,21 +1,25 @@
-import { ChargingProfile, ChargingProfilePurposeType } from './ChargingProfile';
-
-import { ChargePointErrorCode } from './ChargePointErrorCode';
-import { ChargePointStatus } from './ChargePointStatus';
-import { StandardParametersKey } from './Configuration';
-
-export enum RequestCommand {
+import type { EmptyObject } from '../../EmptyObject';
+import type { JsonObject } from '../../JsonType';
+import type { OCPP16ChargePointErrorCode } from './ChargePointErrorCode';
+import type { OCPP16ChargePointStatus } from './ChargePointStatus';
+import type { ChargingProfilePurposeType, OCPP16ChargingProfile } from './ChargingProfile';
+import type { OCPP16StandardParametersKey } from './Configuration';
+import type { OCPP16DiagnosticsStatus } from './DiagnosticsStatus';
+
+export enum OCPP16RequestCommand {
   BOOT_NOTIFICATION = 'BootNotification',
   HEARTBEAT = 'Heartbeat',
   STATUS_NOTIFICATION = 'StatusNotification',
-  CHANGE_CONFIGURATION = 'ChangeConfiguration',
   AUTHORIZE = 'Authorize',
   START_TRANSACTION = 'StartTransaction',
   STOP_TRANSACTION = 'StopTransaction',
-  METERVALUES = 'MeterValues'
+  METER_VALUES = 'MeterValues',
+  DIAGNOSTICS_STATUS_NOTIFICATION = 'DiagnosticsStatusNotification',
+  FIRMWARE_STATUS_NOTIFICATION = 'FirmwareStatusNotification',
+  DATA_TRANSFER = 'DataTransfer',
 }
 
-export enum IncomingRequestCommand {
+export enum OCPP16IncomingRequestCommand {
   RESET = 'Reset',
   CLEAR_CACHE = 'ClearCache',
   CHANGE_AVAILABILITY = 'ChangeAvailability',
@@ -25,84 +29,144 @@ export enum IncomingRequestCommand {
   SET_CHARGING_PROFILE = 'SetChargingProfile',
   CLEAR_CHARGING_PROFILE = 'ClearChargingProfile',
   REMOTE_START_TRANSACTION = 'RemoteStartTransaction',
-  REMOTE_STOP_TRANSACTION = 'RemoteStopTransaction'
+  REMOTE_STOP_TRANSACTION = 'RemoteStopTransaction',
+  GET_DIAGNOSTICS = 'GetDiagnostics',
+  TRIGGER_MESSAGE = 'TriggerMessage',
+  DATA_TRANSFER = 'DataTransfer',
+  UPDATE_FIRMWARE = 'UpdateFirmware',
 }
 
-// eslint-disable-next-line @typescript-eslint/no-empty-interface
-export interface HeartbeatRequest { }
+export type OCPP16HeartbeatRequest = EmptyObject;
 
-export interface BootNotificationRequest {
-  chargeBoxSerialNumber?: string;
+export interface OCPP16BootNotificationRequest extends JsonObject {
+  chargePointVendor: string;
   chargePointModel: string;
   chargePointSerialNumber?: string;
-  chargePointVendor: string;
+  chargeBoxSerialNumber?: string;
   firmwareVersion?: string;
   iccid?: string;
   imsi?: string;
-  meterSerialNumber?: string;
   meterType?: string;
+  meterSerialNumber?: string;
 }
 
-export interface StatusNotificationRequest {
+export interface OCPP16StatusNotificationRequest extends JsonObject {
   connectorId: number;
-  errorCode: ChargePointErrorCode;
+  errorCode: OCPP16ChargePointErrorCode;
+  status: OCPP16ChargePointStatus;
   info?: string;
-  status: ChargePointStatus;
-  timestamp?: string;
+  timestamp?: Date;
   vendorId?: string;
   vendorErrorCode?: string;
 }
 
-export interface ChangeConfigurationRequest {
-  key: string | StandardParametersKey;
+export type OCPP16ClearCacheRequest = EmptyObject;
+
+export interface ChangeConfigurationRequest extends JsonObject {
+  key: string | OCPP16StandardParametersKey;
   value: string;
 }
 
-export interface RemoteStartTransactionRequest {
+export interface RemoteStartTransactionRequest extends JsonObject {
   connectorId: number;
   idTag: string;
-  chargingProfile?: ChargingProfile;
+  chargingProfile?: OCPP16ChargingProfile;
 }
 
-export interface RemoteStopTransactionRequest {
+export interface RemoteStopTransactionRequest extends JsonObject {
   transactionId: number;
 }
 
-export interface UnlockConnectorRequest {
+export interface UnlockConnectorRequest extends JsonObject {
   connectorId: number;
 }
 
-export interface GetConfigurationRequest {
-  key?: string | StandardParametersKey[];
+export interface GetConfigurationRequest extends JsonObject {
+  key?: string | OCPP16StandardParametersKey[];
 }
 
 export enum ResetType {
   HARD = 'Hard',
-  SOFT = 'Soft'
+  SOFT = 'Soft',
 }
 
-export interface ResetRequest {
+export interface ResetRequest extends JsonObject {
   type: ResetType;
 }
 
-export interface SetChargingProfileRequest {
+export interface SetChargingProfileRequest extends JsonObject {
   connectorId: number;
-  csChargingProfiles: ChargingProfile;
+  csChargingProfiles: OCPP16ChargingProfile;
 }
 
-export enum AvailabilityType {
+export enum OCPP16AvailabilityType {
   INOPERATIVE = 'Inoperative',
-  OPERATIVE = 'Operative'
+  OPERATIVE = 'Operative',
 }
 
-export interface ChangeAvailabilityRequest {
+export interface ChangeAvailabilityRequest extends JsonObject {
   connectorId: number;
-  type: AvailabilityType;
+  type: OCPP16AvailabilityType;
 }
 
-export interface ClearChargingProfileRequest {
+export interface ClearChargingProfileRequest extends JsonObject {
   id?: number;
   connectorId?: number;
   chargingProfilePurpose?: ChargingProfilePurposeType;
   stackLevel?: number;
 }
+
+export interface OCPP16UpdateFirmwareRequest extends JsonObject {
+  location: string;
+  retrieveDate: Date;
+  retries?: number;
+  retryInterval?: number;
+}
+
+export enum OCPP16FirmwareStatus {
+  Downloaded = 'Downloaded',
+  DownloadFailed = 'DownloadFailed',
+  Downloading = 'Downloading',
+  Idle = 'Idle',
+  InstallationFailed = 'InstallationFailed',
+  Installing = 'Installing',
+  Installed = 'Installed',
+}
+
+export type OCPP16FirmwareStatusNotificationRequest = {
+  status: OCPP16FirmwareStatus;
+};
+
+export interface GetDiagnosticsRequest extends JsonObject {
+  location: string;
+  retries?: number;
+  retryInterval?: number;
+  startTime?: Date;
+  stopTime?: Date;
+}
+
+export interface DiagnosticsStatusNotificationRequest extends JsonObject {
+  status: OCPP16DiagnosticsStatus;
+}
+
+export enum OCPP16MessageTrigger {
+  BootNotification = 'BootNotification',
+  DiagnosticsStatusNotification = 'DiagnosticsStatusNotification',
+  FirmwareStatusNotification = 'FirmwareStatusNotification',
+  Heartbeat = 'Heartbeat',
+  MeterValues = 'MeterValues',
+  StatusNotification = 'StatusNotification',
+}
+
+export interface OCPP16TriggerMessageRequest extends JsonObject {
+  requestedMessage: OCPP16MessageTrigger;
+  connectorId?: number;
+}
+
+export enum OCPP16DataTransferVendorId {}
+
+export interface OCPP16DataTransferRequest extends JsonObject {
+  vendorId: string;
+  messageId?: string;
+  data?: string;
+}