type ChargingSchedulePeriod,
type ChargingStationInfo,
type ChargingStationTemplate,
+ ConnectorPhaseRotation,
type ConnectorStatus,
+ ConnectorStatusEnum,
CurrentType,
type EvseTemplate,
type OCPP16BootNotificationRequest,
return true;
}
+ public static getPhaseRotationValue(
+ connectorId: number,
+ numberOfPhases: number
+ ): string | undefined {
+ // AC/DC
+ if (connectorId === 0 && numberOfPhases === 0) {
+ return `${connectorId}.${ConnectorPhaseRotation.RST}`;
+ } else if (connectorId > 0 && numberOfPhases === 0) {
+ return `${connectorId}.${ConnectorPhaseRotation.NotApplicable}`;
+ // AC
+ } else if (connectorId > 0 && numberOfPhases === 1) {
+ return `${connectorId}.${ConnectorPhaseRotation.NotApplicable}`;
+ } else if (connectorId > 0 && numberOfPhases === 3) {
+ return `${connectorId}.${ConnectorPhaseRotation.RST}`;
+ }
+ }
+
public static getMaxNumberOfEvses(evses: Record<string, EvseTemplate>): number {
if (!evses) {
return -1;
}
}
+ public static getBootConnectorStatus(
+ chargingStation: ChargingStation,
+ connectorId: number,
+ connectorStatus: ConnectorStatus
+ ): ConnectorStatusEnum {
+ let connectorBootStatus: ConnectorStatusEnum;
+ if (
+ !connectorStatus?.status &&
+ (chargingStation.isChargingStationAvailable() === false ||
+ chargingStation.isConnectorAvailable(connectorId) === false)
+ ) {
+ connectorBootStatus = ConnectorStatusEnum.Unavailable;
+ } else if (!connectorStatus?.status && connectorStatus?.bootStatus) {
+ // Set boot status in template at startup
+ connectorBootStatus = connectorStatus?.bootStatus;
+ } else if (connectorStatus?.status) {
+ // Set previous status at startup
+ connectorBootStatus = connectorStatus?.status;
+ } else {
+ // Set default status
+ connectorBootStatus = ConnectorStatusEnum.Available;
+ }
+ return connectorBootStatus;
+ }
+
public static getConfiguredNumberOfConnectors(stationInfo: ChargingStationInfo): number {
let configuredMaxConnectors: number;
if (Utils.isNotEmptyArray(stationInfo.numberOfConnectors) === true) {
): void {
if (!Utils.isNullOrUndefined(connectorStatus?.status)) {
logger.warn(
- `${logPrefix} Charging station information from template ${templateFile} with connector ${connectorId} status configuration defined, undefine it`
+ `${logPrefix} Charging station information from template ${templateFile} with connector id ${connectorId} status configuration defined, undefine it`
);
delete connectorStatus.status;
}
for (const connectorId of connectors.keys()) {
if (connectorId > 0 && connectors.get(connectorId)?.transactionStarted === true) {
logger.warn(
- `${logPrefix} Connector ${connectorId} at initialization has a transaction started: ${
+ `${logPrefix} Connector id ${connectorId} at initialization has a transaction started with id ${
connectors.get(connectorId)?.transactionId
}`
);
}
- if (
- connectorId === 0 &&
- Utils.isNullOrUndefined(connectors.get(connectorId)?.transactionStarted)
- ) {
+ if (connectorId === 0) {
connectors.get(connectorId).availability = AvailabilityType.Operative;
if (Utils.isUndefined(connectors.get(connectorId)?.chargingProfiles)) {
connectors.get(connectorId).chargingProfiles = [];
}
/**
- * Charging profiles should already be sorted by connectorId and stack level (highest stack level has priority)
+ * Charging profiles should already be sorted by connector id and stack level (highest stack level has priority)
*
* @param chargingProfiles -
* @param logPrefix -