-import type { JsonObject } from './JsonType';
+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 = {
- stationInfo: ChargingStationInfo;
- started: boolean;
+ 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;
- connectors: ConnectorStatus[];
- automaticTransactionGeneratorStatuses?: Status[];
-};
+ | typeof WebSocket.CLOSED
+ bootNotificationResponse?: BootNotificationResponse
+ automaticTransactionGenerator?: ChargingStationAutomaticTransactionGeneratorConfiguration
+}
+
+export enum OCPP16FirmwareStatus {
+ Downloaded = 'Downloaded',
+ DownloadFailed = 'DownloadFailed',
+ Downloading = 'Downloading',
+ Idle = 'Idle',
+ InstallationFailed = 'InstallationFailed',
+ Installing = 'Installing',
+ Installed = 'Installed'
+}
+
+export interface FirmwareUpgrade {
+ versionUpgrade?: {
+ patternGroup?: number
+ step?: number
+ }
+ reset?: boolean
+ failureStatus?: FirmwareStatus
+}
+
+export const FirmwareStatus = {
+ ...OCPP16FirmwareStatus
+} as const
+export type FirmwareStatus = OCPP16FirmwareStatus
export type ChargingStationInfo = {
- hashId: string;
- chargingStationId?: string;
- chargePointModel: string;
- chargePointVendor: string;
- firmwareVersionPattern?: string;
- firmwareVersion?: string;
- numberOfConnectors?: number | number[];
- baseName: string;
- infoHash?: string;
- templateHash?: string;
- chargeBoxSerialNumber?: string;
- chargePointSerialNumber?: string;
- meterSerialNumber?: string;
- maximumPower?: number; // Always in Watt
- maximumAmperage?: number; // Always in Ampere
- supervisionUrls?: string | string[];
- supervisionUrlOcppConfiguration?: boolean;
- supervisionUrlOcppKey?: string;
- supervisionUser?: string;
- supervisionPassword?: string;
- ocppVersion?: OCPPVersion;
- ocppProtocol?: OCPPProtocol;
- ocppStrictCompliance?: boolean;
- ocppPersistentConfiguration?: boolean;
- stationInfoPersistentConfiguration?: boolean;
- authorizationFile?: string;
- nameSuffix?: string;
- fixedName?: boolean;
- iccid?: string;
- imsi?: string;
- meterType?: string;
- powerSharedByConnectors?: boolean;
- currentOutType?: CurrentType;
- voltageOut?: Voltage;
- numberOfPhases?: number;
- useConnectorId0?: boolean;
- randomConnectors?: boolean;
- resetTime?: number;
- autoRegister?: boolean;
- autoReconnectMaxRetries?: number;
- reconnectExponentialDelay?: boolean;
- registrationMaxRetries?: number;
- enableStatistics?: boolean;
- mustAuthorizeAtRemoteStart?: 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>;
-};
+ hashId: 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
+ powerSharedByConnectors?: boolean
+ currentOutType?: CurrentType
+ voltageOut?: Voltage
+ numberOfPhases?: number
+ useConnectorId0?: boolean
+ randomConnectors?: boolean
+ resetTime?: number
+ autoRegister?: boolean
+ autoReconnectMaxRetries?: number
+ reconnectExponentialDelay?: boolean
+ registrationMaxRetries?: number
+ enableStatistics?: boolean
+ remoteAuthorization?: boolean
+ amperageLimitationOcppKey?: string
+ amperageLimitationUnit?: AmpereUnits
+ beginEndMeterValues?: boolean
+ outOfOrderEndMeterValues?: boolean
+ meteringPerTransaction?: boolean
+ transactionDataMeterValues?: boolean
+ stopTransactionsOnStopped?: boolean
+ mainVoltageMeterValues?: boolean
+ phaseLineToLineVoltageMeterValues?: boolean
+ customValueLimitationMeterValues?: boolean
+ commandsSupport?: CommandsSupport
+ 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',
REMOTE_START_TRANSACTION = 'RemoteStartTransaction',
REMOTE_STOP_TRANSACTION = 'RemoteStopTransaction',
GET_DIAGNOSTICS = 'GetDiagnostics',
- TRIGGER_MESSAGE = 'TriggerMessage',
+ TRIGGER_MESSAGE = 'TriggerMessage'
}
-export type IncomingRequestCommand = OCPP16IncomingRequestCommand;
-
export const IncomingRequestCommand = {
- ...OCPP16IncomingRequestCommand,
-};
+ ...OCPP16IncomingRequestCommand
+} as const
+export type IncomingRequestCommand = OCPP16IncomingRequestCommand
export enum OCPP16RequestCommand {
BOOT_NOTIFICATION = 'BootNotification',
START_TRANSACTION = 'StartTransaction',
STOP_TRANSACTION = 'StopTransaction',
METER_VALUES = 'MeterValues',
- DIAGNOSTICS_STATUS_NOTIFICATION = 'DiagnosticsStatusNotification',
+ DIAGNOSTICS_STATUS_NOTIFICATION = 'DiagnosticsStatusNotification'
}
-export type RequestCommand = OCPP16RequestCommand;
-
export const RequestCommand = {
- ...OCPP16RequestCommand,
-};
+ ...OCPP16RequestCommand
+} as const
+export type RequestCommand = OCPP16RequestCommand
-export type BootNotificationResponse = OCPP16BootNotificationResponse;
+export type BootNotificationResponse = OCPP16BootNotificationResponse
export enum OCPP16RegistrationStatus {
ACCEPTED = 'Accepted',
PENDING = 'Pending',
- REJECTED = 'Rejected',
+ REJECTED = 'Rejected'
}
export interface OCPP16BootNotificationResponse extends JsonObject {
- status: OCPP16RegistrationStatus;
- currentTime: string;
- interval: number;
+ status: OCPP16RegistrationStatus
+ currentTime: Date
+ interval: number
}
export enum OCPP16MessageTrigger {
FirmwareStatusNotification = 'FirmwareStatusNotification',
Heartbeat = 'Heartbeat',
MeterValues = 'MeterValues',
- StatusNotification = 'StatusNotification',
+ StatusNotification = 'StatusNotification'
}
-export type MessageTrigger = OCPP16MessageTrigger;
-
export const MessageTrigger = {
- ...OCPP16MessageTrigger,
-};
+ ...OCPP16MessageTrigger
+} as const
+export type MessageTrigger = OCPP16MessageTrigger
type CommandsSupport = {
- incomingCommands: Record<IncomingRequestCommand, boolean>;
- outgoingCommands?: Record<RequestCommand, boolean>;
-};
+ incomingCommands: Record<IncomingRequestCommand, boolean>
+ outgoingCommands?: Record<RequestCommand, boolean>
+}
export enum OCPPVersion {
VERSION_16 = '1.6',
- VERSION_20 = '2.0',
+ VERSION_20 = '2.0'
}
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 = {
- availability: AvailabilityType;
- bootStatus?: ChargePointStatus;
- status?: ChargePointStatus;
- authorizeIdTag?: string;
- idTagAuthorized?: boolean;
- localAuthorizeIdTag?: string;
- idTagLocalAuthorized?: boolean;
- transactionRemoteStarted?: boolean;
- transactionStarted?: boolean;
- transactionId?: number;
- transactionIdTag?: string;
- energyActiveImportRegisterValue?: number; // In Wh
- transactionEnergyActiveImportRegisterValue?: number; // In Wh
-};
-
-export type AvailabilityType = OCPP16AvailabilityType;
+ availability: AvailabilityType
+ bootStatus?: ChargePointStatus
+ status?: ChargePointStatus
+ authorizeIdTag?: string
+ idTagAuthorized?: boolean
+ localAuthorizeIdTag?: string
+ idTagLocalAuthorized?: boolean
+ transactionRemoteStarted?: boolean
+ transactionStarted?: boolean
+ transactionId?: number
+ transactionIdTag?: string
+ energyActiveImportRegisterValue?: number // In Wh
+ transactionEnergyActiveImportRegisterValue?: number // In Wh
+}
+
+export type EvseStatus = {
+ availability: AvailabilityType
+ connectors?: ConnectorStatus[]
+}
export enum OCPP16AvailabilityType {
INOPERATIVE = 'Inoperative',
- OPERATIVE = 'Operative',
+ OPERATIVE = 'Operative'
}
-
-export type ChargePointStatus = OCPP16ChargePointStatus;
+export type AvailabilityType = OCPP16AvailabilityType
export enum OCPP16ChargePointStatus {
AVAILABLE = 'Available',
FINISHING = 'Finishing',
RESERVED = 'Reserved',
UNAVAILABLE = 'Unavailable',
- FAULTED = 'Faulted',
+ FAULTED = 'Faulted'
}
+export type ChargePointStatus = OCPP16ChargePointStatus
export type Status = {
- start?: boolean;
- startDate?: Date;
- lastRunDate?: Date;
- stopDate?: Date;
- stoppedDate?: Date;
- authorizeRequests?: number;
- acceptedAuthorizeRequests?: number;
- rejectedAuthorizeRequests?: number;
- startTransactionRequests?: number;
- acceptedStartTransactionRequests?: number;
- rejectedStartTransactionRequests?: number;
- stopTransactionRequests?: number;
- acceptedStopTransactionRequests?: number;
- rejectedStopTransactionRequests?: number;
- skippedConsecutiveTransactions?: number;
- skippedTransactions?: number;
-};
+ start?: boolean
+ startDate?: Date
+ lastRunDate?: Date
+ stopDate?: Date
+ stoppedDate?: Date
+ authorizeRequests?: number
+ acceptedAuthorizeRequests?: number
+ rejectedAuthorizeRequests?: number
+ startTransactionRequests?: number
+ acceptedStartTransactionRequests?: number
+ rejectedStartTransactionRequests?: number
+ stopTransactionRequests?: number
+ acceptedStopTransactionRequests?: number
+ rejectedStopTransactionRequests?: number
+ skippedConsecutiveTransactions?: number
+ skippedTransactions?: number
+}