// Partial Copyright Jerome Benoit. 2021-2024. All Rights Reserved.
-import { createHash } from 'node:crypto'
+import { createHash, randomInt } from 'node:crypto'
import { EventEmitter } from 'node:events'
import { existsSync, type FSWatcher, mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs'
import { dirname, join } from 'node:path'
exponentialDelay,
formatDurationMilliSeconds,
formatDurationSeconds,
- getRandomInteger,
getWebSocketCloseEventStatusString,
handleFileException,
isNotEmptyArray,
this.wsConnectionRetried
? true
: this.getAutomaticTransactionGeneratorConfiguration()?.stopAbsoluteDuration
- ).catch(error => {
+ ).catch((error: unknown) => {
logger.error(`${this.logPrefix()} Error while starting the message sequence:`, error)
})
this.wsConnectionRetried = false
this.heartbeatSetInterval = setInterval(() => {
this.ocppRequestService
.requestHandler<HeartbeatRequest, HeartbeatResponse>(this, RequestCommand.HEARTBEAT)
- .catch(error => {
+ .catch((error: unknown) => {
logger.error(
`${this.logPrefix()} Error while sending '${RequestCommand.HEARTBEAT}':`,
error
meterValue: [meterValue]
}
)
- .catch(error => {
+ .catch((error: unknown) => {
logger.error(
`${this.logPrefix()} Error while sending '${RequestCommand.METER_VALUES}':`,
error
this.wsConnection.on('close', this.onClose.bind(this))
// Handle WebSocket open
this.wsConnection.on('open', () => {
- this.onOpen().catch(error =>
+ this.onOpen().catch((error: unknown) =>
logger.error(`${this.logPrefix()} Error while opening WebSocket connection:`, error)
)
})
} does not match firmware version pattern '${stationInfo.firmwareVersionPattern}'`
)
}
- stationInfo.firmwareUpgrade = mergeDeepRight(
- {
- versionUpgrade: {
- step: 1
- },
- reset: true
- },
- stationTemplate.firmwareUpgrade ?? {}
- )
if (stationTemplate.resetTime != null) {
stationInfo.resetTime = secondsToMilliseconds(stationTemplate.resetTime)
}
stationInfoFromFile.templateHash === stationInfoFromTemplate.templateHash
) {
return setChargingStationOptions(
- { ...Constants.DEFAULT_STATION_INFO, ...stationInfoFromFile },
+ mergeDeepRight(Constants.DEFAULT_STATION_INFO, stationInfoFromFile),
options
)
}
stationInfoFromTemplate
)
return setChargingStationOptions(
- { ...Constants.DEFAULT_STATION_INFO, ...stationInfoFromTemplate },
+ mergeDeepRight(Constants.DEFAULT_STATION_INFO, stationInfoFromTemplate),
options
)
}
}
const templateConnectorId =
connectorId > 0 && stationTemplate.randomConnectors === true
- ? getRandomInteger(templateMaxAvailableConnectors, 1)
+ ? randomInt(1, templateMaxAvailableConnectors)
: connectorId
const connectorStatus = stationTemplate.Connectors[templateConnectorId]
checkStationInfoConnectorStatus(
this.sharedLRUCache.deleteChargingStationConfiguration(this.configurationFileHash)
this.sharedLRUCache.setChargingStationConfiguration(configurationData)
this.configurationFileHash = configurationHash
- }).catch(error => {
+ }).catch((error: unknown) => {
handleFileException(
this.configurationFile,
FileType.ChargingStationConfiguration,
.then(() => {
this.emit(ChargingStationEvents.updated)
})
- .catch(error => logger.error(`${this.logPrefix()} Error while reconnecting:`, error))
+ .catch((error: unknown) =>
+ logger.error(`${this.logPrefix()} Error while reconnecting:`, error)
+ )
break
}
}
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
Configuration.getSupervisionUrlDistribution()!
) &&
- logger.error(
+ logger.warn(
// eslint-disable-next-line @typescript-eslint/no-base-to-string
- `${this.logPrefix()} Unknown supervision url distribution '${Configuration.getSupervisionUrlDistribution()}' from values '${SupervisionUrlDistribution.toString()}', defaulting to ${
+ `${this.logPrefix()} Unknown supervision url distribution '${Configuration.getSupervisionUrlDistribution()}' in configuration from values '${SupervisionUrlDistribution.toString()}', defaulting to '${
SupervisionUrlDistribution.CHARGING_STATION_AFFINITY
- }`
+ }'`
)
configuredSupervisionUrlIndex = (this.index - 1) % supervisionUrls.length
break