MeterValueMeasurand,
MeterValuePhase,
MeterValueUnit,
+ type OCPP16ChargePointStatus,
type OCPP16StatusNotificationRequest,
+ type OCPP20ConnectorStatusEnumType,
type OCPP20StatusNotificationRequest,
OCPPVersion,
RequestCommand,
handleFileException,
isNotEmptyArray,
isNotEmptyString,
- isNullOrUndefined,
- isUndefined,
logPrefix,
logger,
max,
case OCPPVersion.VERSION_16:
return {
connectorId,
- status,
+ status: status as OCPP16ChargePointStatus,
errorCode: ChargePointErrorCode.NO_ERROR
} satisfies OCPP16StatusNotificationRequest
case OCPPVersion.VERSION_20:
case OCPPVersion.VERSION_201:
return {
timestamp: new Date(),
- connectorStatus: status,
+ connectorStatus: status as OCPP20ConnectorStatusEnumType,
connectorId,
- evseId
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
+ evseId: evseId!
} satisfies OCPP20StatusNotificationRequest
default:
throw new BaseError('Cannot build status notification payload: OCPP version not supported')
// Persist previous value on connector
if (connector != null) {
if (
- !isNullOrUndefined(connector.energyActiveImportRegisterValue) &&
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- connector.energyActiveImportRegisterValue! >= 0 &&
- !isNullOrUndefined(connector.transactionEnergyActiveImportRegisterValue) &&
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- connector.transactionEnergyActiveImportRegisterValue! >= 0
+ connector.energyActiveImportRegisterValue != null &&
+ connector.energyActiveImportRegisterValue >= 0 &&
+ connector.transactionEnergyActiveImportRegisterValue != null &&
+ connector.transactionEnergyActiveImportRegisterValue >= 0
) {
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- connector.energyActiveImportRegisterValue! += energyValueRounded
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
- connector.transactionEnergyActiveImportRegisterValue! += energyValueRounded
+ connector.energyActiveImportRegisterValue += energyValueRounded
+ connector.transactionEnergyActiveImportRegisterValue += energyValueRounded
} else {
connector.energyActiveImportRegisterValue = 0
connector.transactionEnergyActiveImportRegisterValue = 0
chargingStation: ChargingStation,
measurandType: MeterValueMeasurand
): void => {
- if (isUndefined(chargingStation.powerDivider)) {
+ if (chargingStation.powerDivider == null) {
const errMsg = `MeterValues measurand ${
measurandType ?? MeterValueMeasurand.ENERGY_ACTIVE_IMPORT_REGISTER
}: powerDivider is undefined`
const sampledValuePhase = phase ?? sampledValueTemplate?.phase
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
return {
- ...(!isNullOrUndefined(sampledValueTemplate.unit) && {
+ ...(sampledValueTemplate.unit != null && {
unit: sampledValueTemplate.unit
}),
- ...(!isNullOrUndefined(sampledValueContext) && { context: sampledValueContext }),
- ...(!isNullOrUndefined(sampledValueTemplate.measurand) && {
+ ...(sampledValueContext != null && { context: sampledValueContext }),
+ ...(sampledValueTemplate.measurand != null && {
measurand: sampledValueTemplate.measurand
}),
- ...(!isNullOrUndefined(sampledValueLocation) && { location: sampledValueLocation }),
- ...(!isNullOrUndefined(value) && { value: value.toString() }),
- ...(!isNullOrUndefined(sampledValuePhase) && { phase: sampledValuePhase })
+ ...(sampledValueLocation != null && { location: sampledValueLocation }),
+ ...(value != null && { value: value.toString() }),
+ ...(sampledValuePhase != null && { phase: sampledValuePhase })
} as SampledValue
}
}
public static startHeartbeatInterval (chargingStation: ChargingStation, interval: number): void {
- if (chargingStation.heartbeatSetInterval === undefined) {
+ if (chargingStation.heartbeatSetInterval == null) {
chargingStation.startHeartbeat()
} else if (chargingStation.getHeartbeatInterval() !== interval) {
chargingStation.restartHeartbeat()