feat(ui): allow to specificy a UI server configuration name
[e-mobility-charging-stations-simulator.git] / ui / web / src / types / ChargingStationType.ts
index 1479e1d7a622f4e2dafdb082f2b78e3ab6eedfec..6814737e811106b70d9212e61cff24a9b007500a 100644 (file)
@@ -1,17 +1,43 @@
 import type { JsonObject } from './JsonType'
 
+export enum IdTagDistribution {
+  RANDOM = 'random',
+  ROUND_ROBIN = 'round-robin',
+  CONNECTOR_AFFINITY = 'connector-affinity'
+}
+
+export interface AutomaticTransactionGeneratorConfiguration {
+  enable: boolean
+  minDuration: number
+  maxDuration: number
+  minDelayBetweenTwoTransactions: number
+  maxDelayBetweenTwoTransactions: number
+  probabilityOfStart: number
+  stopAfterHours: number
+  stopAbsoluteDuration: boolean
+  requireAuthorize?: boolean
+  idTagDistribution?: IdTagDistribution
+}
+
+export interface ChargingStationAutomaticTransactionGeneratorConfiguration {
+  automaticTransactionGenerator?: AutomaticTransactionGeneratorConfiguration
+  automaticTransactionGeneratorStatuses?: Status[]
+}
+
 export type ChargingStationData = {
   started: boolean
   stationInfo: ChargingStationInfo
   connectors: ConnectorStatus[]
   evses: EvseStatus[]
+  ocppConfiguration: ChargingStationOcppConfiguration
+  supervisionUrl: string
   wsState?:
     | typeof WebSocket.CONNECTING
     | typeof WebSocket.OPEN
     | typeof WebSocket.CLOSING
     | typeof WebSocket.CLOSED
   bootNotificationResponse?: BootNotificationResponse
-  automaticTransactionGenerator?: Status[]
+  automaticTransactionGenerator?: ChargingStationAutomaticTransactionGeneratorConfiguration
 }
 
 export enum OCPP16FirmwareStatus {
@@ -21,43 +47,66 @@ export enum OCPP16FirmwareStatus {
   Idle = 'Idle',
   InstallationFailed = 'InstallationFailed',
   Installing = 'Installing',
-  Installed = 'Installed',
+  Installed = 'Installed'
+}
+
+export interface FirmwareUpgrade {
+  versionUpgrade?: {
+    patternGroup?: number
+    step?: number
+  }
+  reset?: boolean
+  failureStatus?: FirmwareStatus
 }
 
 export const FirmwareStatus = {
-  ...OCPP16FirmwareStatus,
+  ...OCPP16FirmwareStatus
 } as const
 export type FirmwareStatus = OCPP16FirmwareStatus
 
+export interface ChargingStationOptions extends JsonObject {
+  supervisionUrls?: string | string[]
+  persistentConfiguration?: boolean
+  autoStart?: boolean
+  autoRegister?: boolean
+  enableStatistics?: boolean
+  ocppStrictCompliance?: boolean
+  stopTransactionsOnStopped?: boolean
+}
+
 export type ChargingStationInfo = {
   hashId: string
-  chargingStationId?: string
-  chargePointModel: string
-  chargePointVendor: string
-  firmwareVersionPattern?: string
-  firmwareVersion?: string
-  firmwareStatus?: FirmwareStatus
-  numberOfConnectors?: number | number[]
-  baseName: string
-  templateHash?: string
+  templateIndex: number
+  templateName: string
+  chargingStationId: string
   chargeBoxSerialNumber?: string
   chargePointSerialNumber?: string
   meterSerialNumber?: string
   maximumPower?: number // Always in Watt
   maximumAmperage?: number // Always in Ampere
+  firmwareStatus?: FirmwareStatus
+  templateHash?: string
   supervisionUrls?: string | string[]
   supervisionUrlOcppConfiguration?: boolean
   supervisionUrlOcppKey?: string
   supervisionUser?: string
   supervisionPassword?: string
+  autoStart?: boolean
   ocppVersion?: OCPPVersion
   ocppProtocol?: OCPPProtocol
   ocppStrictCompliance?: boolean
   ocppPersistentConfiguration?: boolean
   stationInfoPersistentConfiguration?: boolean
+  automaticTransactionGeneratorPersistentConfiguration?: boolean
   idTagsFile?: string
+  baseName: string
   nameSuffix?: string
   fixedName?: boolean
+  chargePointModel: string
+  chargePointVendor: string
+  firmwareVersionPattern?: string
+  firmwareVersion?: string
+  firmwareUpgrade?: FirmwareUpgrade
   iccid?: string
   imsi?: string
   meterType?: string
@@ -80,6 +129,7 @@ export type ChargingStationInfo = {
   outOfOrderEndMeterValues?: boolean
   meteringPerTransaction?: boolean
   transactionDataMeterValues?: boolean
+  stopTransactionsOnStopped?: boolean
   mainVoltageMeterValues?: boolean
   phaseLineToLineVoltageMeterValues?: boolean
   customValueLimitationMeterValues?: boolean
@@ -87,6 +137,21 @@ export type ChargingStationInfo = {
   messageTriggerSupport?: Record<MessageTrigger, boolean>
 }
 
+export interface ChargingStationOcppConfiguration {
+  configurationKey?: ConfigurationKey[]
+}
+
+export type ConfigurationKey = OCPPConfigurationKey & {
+  visible?: boolean
+  reboot?: boolean
+}
+
+export type OCPPConfigurationKey = {
+  key: string
+  readonly: boolean
+  value?: string
+} & JsonObject
+
 export enum OCPP16IncomingRequestCommand {
   RESET = 'Reset',
   CLEAR_CACHE = 'ClearCache',
@@ -99,11 +164,11 @@ export enum OCPP16IncomingRequestCommand {
   REMOTE_START_TRANSACTION = 'RemoteStartTransaction',
   REMOTE_STOP_TRANSACTION = 'RemoteStopTransaction',
   GET_DIAGNOSTICS = 'GetDiagnostics',
-  TRIGGER_MESSAGE = 'TriggerMessage',
+  TRIGGER_MESSAGE = 'TriggerMessage'
 }
 
 export const IncomingRequestCommand = {
-  ...OCPP16IncomingRequestCommand,
+  ...OCPP16IncomingRequestCommand
 } as const
 export type IncomingRequestCommand = OCPP16IncomingRequestCommand
 
@@ -115,11 +180,11 @@ export enum OCPP16RequestCommand {
   START_TRANSACTION = 'StartTransaction',
   STOP_TRANSACTION = 'StopTransaction',
   METER_VALUES = 'MeterValues',
-  DIAGNOSTICS_STATUS_NOTIFICATION = 'DiagnosticsStatusNotification',
+  DIAGNOSTICS_STATUS_NOTIFICATION = 'DiagnosticsStatusNotification'
 }
 
 export const RequestCommand = {
-  ...OCPP16RequestCommand,
+  ...OCPP16RequestCommand
 } as const
 export type RequestCommand = OCPP16RequestCommand
 
@@ -128,7 +193,7 @@ export type BootNotificationResponse = OCPP16BootNotificationResponse
 export enum OCPP16RegistrationStatus {
   ACCEPTED = 'Accepted',
   PENDING = 'Pending',
-  REJECTED = 'Rejected',
+  REJECTED = 'Rejected'
 }
 
 export interface OCPP16BootNotificationResponse extends JsonObject {
@@ -143,11 +208,11 @@ export enum OCPP16MessageTrigger {
   FirmwareStatusNotification = 'FirmwareStatusNotification',
   Heartbeat = 'Heartbeat',
   MeterValues = 'MeterValues',
-  StatusNotification = 'StatusNotification',
+  StatusNotification = 'StatusNotification'
 }
 
 export const MessageTrigger = {
-  ...OCPP16MessageTrigger,
+  ...OCPP16MessageTrigger
 } as const
 export type MessageTrigger = OCPP16MessageTrigger
 
@@ -159,29 +224,30 @@ type CommandsSupport = {
 export enum OCPPVersion {
   VERSION_16 = '1.6',
   VERSION_20 = '2.0',
+  VERSION_201 = '2.0.1'
 }
 
 export enum OCPPProtocol {
-  JSON = 'json',
+  JSON = 'json'
 }
 
 export enum CurrentType {
   AC = 'AC',
-  DC = 'DC',
+  DC = 'DC'
 }
 
 export enum Voltage {
   VOLTAGE_110 = 110,
   VOLTAGE_230 = 230,
   VOLTAGE_400 = 400,
-  VOLTAGE_800 = 800,
+  VOLTAGE_800 = 800
 }
 
 export enum AmpereUnits {
   MILLI_AMPERE = 'mA',
   CENTI_AMPERE = 'cA',
   DECI_AMPERE = 'dA',
-  AMPERE = 'A',
+  AMPERE = 'A'
 }
 
 export type ConnectorStatus = {
@@ -207,7 +273,7 @@ export type EvseStatus = {
 
 export enum OCPP16AvailabilityType {
   INOPERATIVE = 'Inoperative',
-  OPERATIVE = 'Operative',
+  OPERATIVE = 'Operative'
 }
 export type AvailabilityType = OCPP16AvailabilityType
 
@@ -221,7 +287,7 @@ export enum OCPP16ChargePointStatus {
   FINISHING = 'Finishing',
   RESERVED = 'Reserved',
   UNAVAILABLE = 'Unavailable',
-  FAULTED = 'Faulted',
+  FAULTED = 'Faulted'
 }
 export type ChargePointStatus = OCPP16ChargePointStatus