import type { JsonObject } from './JsonType'
-export type ChargingStationData = {
+export enum IdTagDistribution {
+ RANDOM = 'random',
+ ROUND_ROBIN = 'round-robin',
+ CONNECTOR_AFFINITY = 'connector-affinity'
+}
+
+export interface AutomaticTransactionGeneratorConfiguration extends JsonObject {
+ enable: boolean
+ minDuration: number
+ maxDuration: number
+ minDelayBetweenTwoTransactions: number
+ maxDelayBetweenTwoTransactions: number
+ probabilityOfStart: number
+ stopAfterHours: number
+ stopAbsoluteDuration: boolean
+ requireAuthorize?: boolean
+ idTagDistribution?: IdTagDistribution
+}
+
+export interface ChargingStationAutomaticTransactionGeneratorConfiguration extends JsonObject {
+ automaticTransactionGenerator?: AutomaticTransactionGeneratorConfiguration
+ automaticTransactionGeneratorStatuses?: Status[]
+}
+
+export interface ChargingStationData extends JsonObject {
started: boolean
stationInfo: ChargingStationInfo
connectors: ConnectorStatus[]
| typeof WebSocket.CLOSING
| typeof WebSocket.CLOSED
bootNotificationResponse?: BootNotificationResponse
- automaticTransactionGenerator?: Status[]
+ automaticTransactionGenerator?: ChargingStationAutomaticTransactionGeneratorConfiguration
}
export enum OCPP16FirmwareStatus {
Installed = 'Installed'
}
-export interface FirmwareUpgrade {
+export interface FirmwareUpgrade extends JsonObject {
versionUpgrade?: {
patternGroup?: number
step?: number
} as const
export type FirmwareStatus = OCPP16FirmwareStatus
-export type ChargingStationInfo = {
+export interface ChargingStationOptions extends JsonObject {
+ supervisionUrls?: string | string[]
+ persistentConfiguration?: boolean
+ autoStart?: boolean
+ autoRegister?: boolean
+ enableStatistics?: boolean
+ ocppStrictCompliance?: boolean
+ stopTransactionsOnStopped?: boolean
+}
+
+export interface ChargingStationInfo extends JsonObject {
hashId: string
templateIndex: number
templateName: string
- chargingStationId?: string
+ chargingStationId: string
chargeBoxSerialNumber?: string
chargePointSerialNumber?: string
meterSerialNumber?: string
messageTriggerSupport?: Record<MessageTrigger, boolean>
}
-export interface ChargingStationOcppConfiguration {
+export interface ChargingStationOcppConfiguration extends JsonObject {
configurationKey?: ConfigurationKey[]
}
-export type ConfigurationKey = OCPPConfigurationKey & {
+export interface ConfigurationKey extends OCPPConfigurationKey {
visible?: boolean
reboot?: boolean
}
-export type OCPPConfigurationKey = {
+export interface OCPPConfigurationKey extends JsonObject {
key: string
readonly: boolean
value?: string
-} & JsonObject
+}
export enum OCPP16IncomingRequestCommand {
RESET = 'Reset',
} as const
export type MessageTrigger = OCPP16MessageTrigger
-type CommandsSupport = {
+interface CommandsSupport extends JsonObject {
incomingCommands: Record<IncomingRequestCommand, boolean>
outgoingCommands?: Record<RequestCommand, boolean>
}
export enum OCPPVersion {
VERSION_16 = '1.6',
- VERSION_20 = '2.0'
+ VERSION_20 = '2.0',
+ VERSION_201 = '2.0.1'
}
export enum OCPPProtocol {
AMPERE = 'A'
}
-export type ConnectorStatus = {
+export interface ConnectorStatus extends JsonObject {
availability: AvailabilityType
bootStatus?: ChargePointStatus
status?: ChargePointStatus
transactionEnergyActiveImportRegisterValue?: number // In Wh
}
-export type EvseStatus = {
+export interface EvseStatus extends JsonObject {
availability: AvailabilityType
connectors?: ConnectorStatus[]
}
}
export type ChargePointStatus = OCPP16ChargePointStatus
-export type Status = {
+export interface Status extends JsonObject {
start?: boolean
startDate?: Date
lastRunDate?: Date