refactor: rename a template key to a more sensible name
[e-mobility-charging-stations-simulator.git] / src / types / ChargingStationTemplate.ts
1 import type { ClientRequestArgs } from 'node:http';
2
3 import type { ClientOptions } from 'ws';
4
5 import type {
6 AutomaticTransactionGeneratorConfiguration,
7 ChargingStationOcppConfiguration,
8 ConnectorStatus,
9 FirmwareStatus,
10 IncomingRequestCommand,
11 MessageTrigger,
12 OCPPProtocol,
13 OCPPVersion,
14 RequestCommand,
15 } from './internal';
16
17 export enum CurrentType {
18 AC = 'AC',
19 DC = 'DC',
20 }
21
22 export enum PowerUnits {
23 WATT = 'W',
24 KILO_WATT = 'kW',
25 }
26
27 export enum AmpereUnits {
28 MILLI_AMPERE = 'mA',
29 CENTI_AMPERE = 'cA',
30 DECI_AMPERE = 'dA',
31 AMPERE = 'A',
32 }
33
34 export enum Voltage {
35 VOLTAGE_110 = 110,
36 VOLTAGE_230 = 230,
37 VOLTAGE_400 = 400,
38 VOLTAGE_800 = 800,
39 }
40
41 export type WsOptions = ClientOptions & ClientRequestArgs;
42
43 export type FirmwareUpgrade = {
44 versionUpgrade?: {
45 patternGroup?: number;
46 step?: number;
47 };
48 reset?: boolean;
49 failureStatus?: FirmwareStatus;
50 };
51
52 type CommandsSupport = {
53 incomingCommands: Record<IncomingRequestCommand, boolean>;
54 outgoingCommands?: Record<RequestCommand, boolean>;
55 };
56
57 export type ChargingStationTemplate = {
58 templateHash?: string;
59 supervisionUrls?: string | string[];
60 supervisionUrlOcppConfiguration?: boolean;
61 supervisionUrlOcppKey?: string;
62 supervisionUser?: string;
63 supervisionPassword?: string;
64 ocppVersion?: OCPPVersion;
65 ocppProtocol?: OCPPProtocol;
66 ocppStrictCompliance?: boolean;
67 ocppPersistentConfiguration?: boolean;
68 stationInfoPersistentConfiguration?: boolean;
69 wsOptions?: WsOptions;
70 idTagsFile?: string;
71 baseName: string;
72 nameSuffix?: string;
73 fixedName?: boolean;
74 chargePointModel: string;
75 chargePointVendor: string;
76 chargePointSerialNumberPrefix?: string;
77 chargeBoxSerialNumberPrefix?: string;
78 firmwareVersionPattern?: string;
79 firmwareVersion?: string;
80 firmwareUpgrade?: FirmwareUpgrade;
81 iccid?: string;
82 imsi?: string;
83 meterSerialNumberPrefix?: string;
84 meterType?: string;
85 power: number | number[];
86 powerSharedByConnectors?: boolean;
87 powerUnit: PowerUnits;
88 currentOutType?: CurrentType;
89 voltageOut?: Voltage;
90 numberOfPhases?: number;
91 numberOfConnectors?: number | number[];
92 useConnectorId0?: boolean;
93 randomConnectors?: boolean;
94 resetTime?: number;
95 autoRegister?: boolean;
96 autoReconnectMaxRetries?: number;
97 reconnectExponentialDelay?: boolean;
98 registrationMaxRetries?: number;
99 enableStatistics?: boolean;
100 mustAuthorizeAtRemoteStart?: boolean;
101 payloadSchemaValidation?: boolean;
102 amperageLimitationOcppKey?: string;
103 amperageLimitationUnit?: AmpereUnits;
104 beginEndMeterValues?: boolean;
105 outOfOrderEndMeterValues?: boolean;
106 meteringPerTransaction?: boolean;
107 transactionDataMeterValues?: boolean;
108 mainVoltageMeterValues?: boolean;
109 phaseLineToLineVoltageMeterValues?: boolean;
110 customValueLimitationMeterValues?: boolean;
111 commandsSupport?: CommandsSupport;
112 messageTriggerSupport?: Record<MessageTrigger, boolean>;
113 Configuration?: ChargingStationOcppConfiguration;
114 AutomaticTransactionGenerator?: AutomaticTransactionGeneratorConfiguration;
115 Connectors: Record<string, ConnectorStatus>;
116 };