1 import type { JsonObject
} from
'./JsonType'
3 export enum IdTagDistribution
{
5 ROUND_ROBIN
= 'round-robin',
6 CONNECTOR_AFFINITY
= 'connector-affinity'
9 export interface AutomaticTransactionGeneratorConfiguration
{
13 minDelayBetweenTwoTransactions
: number
14 maxDelayBetweenTwoTransactions
: number
15 probabilityOfStart
: number
16 stopAfterHours
: number
17 stopAbsoluteDuration
: boolean
18 requireAuthorize
?: boolean
19 idTagDistribution
?: IdTagDistribution
22 export interface ChargingStationAutomaticTransactionGeneratorConfiguration
{
23 automaticTransactionGenerator
?: AutomaticTransactionGeneratorConfiguration
24 automaticTransactionGeneratorStatuses
?: Status
[]
27 export type ChargingStationData
= {
29 stationInfo
: ChargingStationInfo
30 connectors
: ConnectorStatus
[]
32 ocppConfiguration
: ChargingStationOcppConfiguration
33 supervisionUrl
: string
35 | typeof WebSocket
.CONNECTING
36 | typeof WebSocket
.OPEN
37 | typeof WebSocket
.CLOSING
38 | typeof WebSocket
.CLOSED
39 bootNotificationResponse
?: BootNotificationResponse
40 automaticTransactionGenerator
?: ChargingStationAutomaticTransactionGeneratorConfiguration
43 export enum OCPP16FirmwareStatus
{
44 Downloaded
= 'Downloaded',
45 DownloadFailed
= 'DownloadFailed',
46 Downloading
= 'Downloading',
48 InstallationFailed
= 'InstallationFailed',
49 Installing
= 'Installing',
50 Installed
= 'Installed'
53 export interface FirmwareUpgrade
{
59 failureStatus
?: FirmwareStatus
62 export const FirmwareStatus
= {
63 ...OCPP16FirmwareStatus
65 export type FirmwareStatus
= OCPP16FirmwareStatus
67 export interface ChargingStationOptions
extends JsonObject
{
68 supervisionUrls
?: string | string[]
69 persistentConfiguration
?: boolean
71 autoRegister
?: boolean
72 enableStatistics
?: boolean
73 ocppStrictCompliance
?: boolean
74 stopTransactionsOnStopped
?: boolean
77 export type ChargingStationInfo
= {
81 chargingStationId
: string
82 chargeBoxSerialNumber
?: string
83 chargePointSerialNumber
?: string
84 meterSerialNumber
?: string
85 maximumPower
?: number // Always in Watt
86 maximumAmperage
?: number // Always in Ampere
87 firmwareStatus
?: FirmwareStatus
89 supervisionUrls
?: string | string[]
90 supervisionUrlOcppConfiguration
?: boolean
91 supervisionUrlOcppKey
?: string
92 supervisionUser
?: string
93 supervisionPassword
?: string
95 ocppVersion
?: OCPPVersion
96 ocppProtocol
?: OCPPProtocol
97 ocppStrictCompliance
?: boolean
98 ocppPersistentConfiguration
?: boolean
99 stationInfoPersistentConfiguration
?: boolean
100 automaticTransactionGeneratorPersistentConfiguration
?: boolean
105 chargePointModel
: string
106 chargePointVendor
: string
107 firmwareVersionPattern
?: string
108 firmwareVersion
?: string
109 firmwareUpgrade
?: FirmwareUpgrade
113 powerSharedByConnectors
?: boolean
114 currentOutType
?: CurrentType
116 numberOfPhases
?: number
117 useConnectorId0
?: boolean
118 randomConnectors
?: boolean
120 autoRegister
?: boolean
121 autoReconnectMaxRetries
?: number
122 reconnectExponentialDelay
?: boolean
123 registrationMaxRetries
?: number
124 enableStatistics
?: boolean
125 remoteAuthorization
?: boolean
126 amperageLimitationOcppKey
?: string
127 amperageLimitationUnit
?: AmpereUnits
128 beginEndMeterValues
?: boolean
129 outOfOrderEndMeterValues
?: boolean
130 meteringPerTransaction
?: boolean
131 transactionDataMeterValues
?: boolean
132 stopTransactionsOnStopped
?: boolean
133 mainVoltageMeterValues
?: boolean
134 phaseLineToLineVoltageMeterValues
?: boolean
135 customValueLimitationMeterValues
?: boolean
136 commandsSupport
?: CommandsSupport
137 messageTriggerSupport
?: Record
<MessageTrigger
, boolean>
140 export interface ChargingStationOcppConfiguration
{
141 configurationKey
?: ConfigurationKey
[]
144 export type ConfigurationKey
= OCPPConfigurationKey
& {
149 export type OCPPConfigurationKey
= {
155 export enum OCPP16IncomingRequestCommand
{
157 CLEAR_CACHE
= 'ClearCache',
158 CHANGE_AVAILABILITY
= 'ChangeAvailability',
159 UNLOCK_CONNECTOR
= 'UnlockConnector',
160 GET_CONFIGURATION
= 'GetConfiguration',
161 CHANGE_CONFIGURATION
= 'ChangeConfiguration',
162 SET_CHARGING_PROFILE
= 'SetChargingProfile',
163 CLEAR_CHARGING_PROFILE
= 'ClearChargingProfile',
164 REMOTE_START_TRANSACTION
= 'RemoteStartTransaction',
165 REMOTE_STOP_TRANSACTION
= 'RemoteStopTransaction',
166 GET_DIAGNOSTICS
= 'GetDiagnostics',
167 TRIGGER_MESSAGE
= 'TriggerMessage'
170 export const IncomingRequestCommand
= {
171 ...OCPP16IncomingRequestCommand
173 export type IncomingRequestCommand
= OCPP16IncomingRequestCommand
175 export enum OCPP16RequestCommand
{
176 BOOT_NOTIFICATION
= 'BootNotification',
177 HEARTBEAT
= 'Heartbeat',
178 STATUS_NOTIFICATION
= 'StatusNotification',
179 AUTHORIZE
= 'Authorize',
180 START_TRANSACTION
= 'StartTransaction',
181 STOP_TRANSACTION
= 'StopTransaction',
182 METER_VALUES
= 'MeterValues',
183 DIAGNOSTICS_STATUS_NOTIFICATION
= 'DiagnosticsStatusNotification'
186 export const RequestCommand
= {
187 ...OCPP16RequestCommand
189 export type RequestCommand
= OCPP16RequestCommand
191 export type BootNotificationResponse
= OCPP16BootNotificationResponse
193 export enum OCPP16RegistrationStatus
{
194 ACCEPTED
= 'Accepted',
196 REJECTED
= 'Rejected'
199 export interface OCPP16BootNotificationResponse
extends JsonObject
{
200 status: OCPP16RegistrationStatus
205 export enum OCPP16MessageTrigger
{
206 BootNotification
= 'BootNotification',
207 DiagnosticsStatusNotification
= 'DiagnosticsStatusNotification',
208 FirmwareStatusNotification
= 'FirmwareStatusNotification',
209 Heartbeat
= 'Heartbeat',
210 MeterValues
= 'MeterValues',
211 StatusNotification
= 'StatusNotification'
214 export const MessageTrigger
= {
215 ...OCPP16MessageTrigger
217 export type MessageTrigger
= OCPP16MessageTrigger
219 type CommandsSupport
= {
220 incomingCommands
: Record
<IncomingRequestCommand
, boolean>
221 outgoingCommands
?: Record
<RequestCommand
, boolean>
224 export enum OCPPVersion
{
227 VERSION_201
= '2.0.1'
230 export enum OCPPProtocol
{
234 export enum CurrentType
{
239 export enum Voltage
{
246 export enum AmpereUnits
{
253 export type ConnectorStatus
= {
254 availability
: AvailabilityType
255 bootStatus
?: ChargePointStatus
256 status?: ChargePointStatus
257 authorizeIdTag
?: string
258 idTagAuthorized
?: boolean
259 localAuthorizeIdTag
?: string
260 idTagLocalAuthorized
?: boolean
261 transactionRemoteStarted
?: boolean
262 transactionStarted
?: boolean
263 transactionId
?: number
264 transactionIdTag
?: string
265 energyActiveImportRegisterValue
?: number // In Wh
266 transactionEnergyActiveImportRegisterValue
?: number // In Wh
269 export type EvseStatus
= {
270 availability
: AvailabilityType
271 connectors
?: ConnectorStatus
[]
274 export enum OCPP16AvailabilityType
{
275 INOPERATIVE
= 'Inoperative',
276 OPERATIVE
= 'Operative'
278 export type AvailabilityType
= OCPP16AvailabilityType
280 export enum OCPP16ChargePointStatus
{
281 AVAILABLE
= 'Available',
282 PREPARING
= 'Preparing',
283 CHARGING
= 'Charging',
284 OCCUPIED
= 'Occupied',
285 SUSPENDED_EVSE
= 'SuspendedEVSE',
286 SUSPENDED_EV
= 'SuspendedEV',
287 FINISHING
= 'Finishing',
288 RESERVED
= 'Reserved',
289 UNAVAILABLE
= 'Unavailable',
292 export type ChargePointStatus
= OCPP16ChargePointStatus
294 export type Status
= {
300 authorizeRequests
?: number
301 acceptedAuthorizeRequests
?: number
302 rejectedAuthorizeRequests
?: number
303 startTransactionRequests
?: number
304 acceptedStartTransactionRequests
?: number
305 rejectedStartTransactionRequests
?: number
306 stopTransactionRequests
?: number
307 acceptedStopTransactionRequests
?: number
308 rejectedStopTransactionRequests
?: number
309 skippedConsecutiveTransactions
?: number
310 skippedTransactions
?: number