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 {
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 type ChargingStationInfo = {
hashId: string
+ templateIndex: number
+ templateName: string
chargingStationId?: string
- chargePointModel: string
- chargePointVendor: string
- firmwareVersionPattern?: string
- firmwareVersion?: string
- firmwareStatus?: FirmwareStatus
- numberOfConnectors?: number | number[]
- baseName: string
- templateHash?: 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
outOfOrderEndMeterValues?: boolean
meteringPerTransaction?: boolean
transactionDataMeterValues?: boolean
+ stopTransactionsOnStopped?: boolean
mainVoltageMeterValues?: boolean
phaseLineToLineVoltageMeterValues?: boolean
customValueLimitationMeterValues?: boolean
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',
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
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
export enum OCPP16RegistrationStatus {
ACCEPTED = 'Accepted',
PENDING = 'Pending',
- REJECTED = 'Rejected',
+ REJECTED = 'Rejected'
}
export interface OCPP16BootNotificationResponse extends JsonObject {
FirmwareStatusNotification = 'FirmwareStatusNotification',
Heartbeat = 'Heartbeat',
MeterValues = 'MeterValues',
- StatusNotification = 'StatusNotification',
+ StatusNotification = 'StatusNotification'
}
export const MessageTrigger = {
- ...OCPP16MessageTrigger,
+ ...OCPP16MessageTrigger
} as const
export type MessageTrigger = OCPP16MessageTrigger
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 = {
export enum OCPP16AvailabilityType {
INOPERATIVE = 'Inoperative',
- OPERATIVE = 'Operative',
+ OPERATIVE = 'Operative'
}
export type AvailabilityType = OCPP16AvailabilityType
FINISHING = 'Finishing',
RESERVED = 'Reserved',
UNAVAILABLE = 'Unavailable',
- FAULTED = 'Faulted',
+ FAULTED = 'Faulted'
}
export type ChargePointStatus = OCPP16ChargePointStatus