-import ChargingStationConfiguration from './ChargingStationConfiguration';
-import Connectors from './Connectors';
+import type { ClientRequestArgs } from 'node:http';
-export enum PowerOutType {
+import type { ClientOptions } from 'ws';
+
+import type { AutomaticTransactionGeneratorConfiguration } from './AutomaticTransactionGenerator';
+import type { ChargingStationOcppConfiguration } from './ChargingStationOcppConfiguration';
+import type { ConnectorStatus } from './ConnectorStatus';
+import type { EvseTemplate } from './Evse';
+import type { OCPPProtocol } from './ocpp/OCPPProtocol';
+import type { OCPPVersion } from './ocpp/OCPPVersion';
+import type {
+ FirmwareStatus,
+ IncomingRequestCommand,
+ MessageTrigger,
+ RequestCommand,
+} from './ocpp/Requests';
+
+export enum CurrentType {
AC = 'AC',
DC = 'DC',
}
-export enum PowerUnit {
+export enum PowerUnits {
WATT = 'W',
KILO_WATT = 'kW',
}
-export enum VoltageOut {
+export enum AmpereUnits {
+ MILLI_AMPERE = 'mA',
+ CENTI_AMPERE = 'cA',
+ DECI_AMPERE = 'dA',
+ AMPERE = 'A',
+}
+
+export enum Voltage {
VOLTAGE_110 = 110,
VOLTAGE_230 = 230,
- VOLTAGE_400 = 400
+ VOLTAGE_400 = 400,
+ VOLTAGE_800 = 800,
+}
+
+export type WsOptions = ClientOptions & ClientRequestArgs;
+
+export interface FirmwareUpgrade {
+ versionUpgrade?: {
+ patternGroup?: number;
+ step?: number;
+ };
+ reset?: boolean;
+ failureStatus?: FirmwareStatus;
+}
+
+interface CommandsSupport {
+ incomingCommands: Record<IncomingRequestCommand, boolean>;
+ outgoingCommands?: Record<RequestCommand, boolean>;
}
-export interface AutomaticTransactionGenerator {
- enable: boolean;
- minDuration: number;
- maxDuration: number;
- minDelayBetweenTwoTransactions: number;
- maxDelayBetweenTwoTransactions: number;
- probabilityOfStart: number;
- stopAfterHours: number;
- stopOnConnectionFailure: boolean
+enum x509CertificateType {
+ V2GRootCertificate = 'V2GRootCertificate',
+ MORootCertificate = 'MORootCertificate',
+ CSMSRootCertificate = 'CSMSRootCertificate',
+ ManufacturerRootCertificate = 'ManufacturerRootCertificate',
+ ChargingStationCertificate = 'ChargingStationCertificate',
+ V2GCertificate = 'V2GCertificate',
}
-export default interface ChargingStationTemplate {
- supervisionURL?: string;
- authorizationFile?: string;
+export interface ChargingStationTemplate {
+ templateHash?: string;
+ supervisionUrls?: string | string[];
+ supervisionUrlOcppConfiguration?: boolean;
+ supervisionUrlOcppKey?: string;
+ supervisionUser?: string;
+ supervisionPassword?: string;
+ ocppVersion?: OCPPVersion;
+ ocppProtocol?: OCPPProtocol;
+ ocppStrictCompliance?: boolean;
+ ocppPersistentConfiguration?: boolean;
+ stationInfoPersistentConfiguration?: boolean;
+ automaticTransactionGeneratorPersistentConfiguration?: boolean;
+ wsOptions?: WsOptions;
+ idTagsFile?: string;
baseName: string;
- fixedName?: string;
+ nameSuffix?: string;
+ fixedName?: boolean;
chargePointModel: string;
chargePointVendor: string;
+ chargePointSerialNumberPrefix?: string;
chargeBoxSerialNumberPrefix?: string;
+ firmwareVersionPattern?: string;
firmwareVersion?: string;
- power: number | number[];
+ firmwareUpgrade?: FirmwareUpgrade;
+ iccid?: string;
+ imsi?: string;
+ meterSerialNumberPrefix?: string;
+ meterType?: string;
+ power?: number | number[];
+ powerUnit?: PowerUnits;
powerSharedByConnectors?: boolean;
- powerUnit: PowerUnit;
- powerOutType?: PowerOutType;
+ currentOutType?: CurrentType;
+ voltageOut?: Voltage;
numberOfPhases?: number;
numberOfConnectors?: number | number[];
useConnectorId0?: boolean;
randomConnectors?: boolean;
resetTime?: number;
- connectionTimeout?: number;
+ autoRegister?: boolean;
autoReconnectMaxRetries?: number;
reconnectExponentialDelay?: boolean;
registrationMaxRetries?: number;
enableStatistics?: boolean;
- voltageOut?: number;
- Configuration?: ChargingStationConfiguration;
- AutomaticTransactionGenerator: AutomaticTransactionGenerator;
- Connectors: Connectors;
+ mustAuthorizeAtRemoteStart?: boolean;
+ /** @deprecated Replaced by ocppStrictCompliance */
+ payloadSchemaValidation?: boolean;
+ amperageLimitationOcppKey?: string;
+ amperageLimitationUnit?: AmpereUnits;
+ beginEndMeterValues?: boolean;
+ outOfOrderEndMeterValues?: boolean;
+ meteringPerTransaction?: boolean;
+ transactionDataMeterValues?: boolean;
+ mainVoltageMeterValues?: boolean;
+ phaseLineToLineVoltageMeterValues?: boolean;
+ customValueLimitationMeterValues?: boolean;
+ commandsSupport?: CommandsSupport;
+ messageTriggerSupport?: Record<MessageTrigger, boolean>;
+ Configuration?: ChargingStationOcppConfiguration;
+ AutomaticTransactionGenerator?: AutomaticTransactionGeneratorConfiguration;
+ Evses?: Record<string, EvseTemplate>;
+ Connectors?: Record<string, ConnectorStatus>;
+ x509Certificates?: Record<x509CertificateType, string>;
}