import type { ValidateFunction } from 'ajv'
import { secondsToMilliseconds } from 'date-fns'
-import { OCPP16ServiceUtils } from './OCPP16ServiceUtils.js'
import {
- type ChargingStation,
addConfigurationKey,
+ type ChargingStation,
getConfigurationKey,
hasReservationExpired,
resetConnectorStatus
} from '../../../types/index.js'
import { Constants, convertToInt, isAsyncFunction, logger } from '../../../utils/index.js'
import { OCPPResponseService } from '../OCPPResponseService.js'
+import { OCPP16ServiceUtils } from './OCPP16ServiceUtils.js'
const moduleName = 'OCPP16ResponseService'
// Throw exception
throw new OCPPError(
ErrorType.NOT_IMPLEMENTED,
- `${commandName} is not implemented to handle response PDU ${JSON.stringify(
+ `'${commandName}' is not implemented to handle response PDU ${JSON.stringify(
payload,
undefined,
2
const connectorStatus = chargingStation.getConnectorStatus(connectorId)
resetConnectorStatus(connectorStatus)
chargingStation.stopMeterValues(connectorId)
- if (connectorStatus?.status !== OCPP16ChargePointStatus.Available) {
+ if (chargingStation.getReservationBy('connectorId', connectorId) != null) {
+ await OCPP16ServiceUtils.sendAndSetConnectorStatus(
+ chargingStation,
+ connectorId,
+ OCPP16ChargePointStatus.Reserved
+ )
+ } else if (connectorStatus?.status !== OCPP16ChargePointStatus.Available) {
await OCPP16ServiceUtils.sendAndSetConnectorStatus(
chargingStation,
connectorId,