type ChargingStationOcppConfiguration,
type ChargingStationTemplate,
ConnectorPhaseRotation,
- ConnectorStatus,
+ type ConnectorStatus,
ConnectorStatusEnum,
CurrentType,
type ErrorCallback,
private ocppIncomingRequestService!: OCPPIncomingRequestService;
private readonly messageBuffer: Set<string>;
private configuredSupervisionUrl!: URL;
- private configuredSupervisionUrlIndex!: number;
private wsConnectionRestarted: boolean;
private autoReconnectRetryCount: number;
private templateFileWatcher!: fs.FSWatcher | undefined;
private get wsConnectionUrl(): URL {
return new URL(
`${
- this.getSupervisionUrlOcppConfiguration()
+ this.getSupervisionUrlOcppConfiguration() &&
+ Utils.isNotEmptyString(this.getSupervisionUrlOcppKey())
? ChargingStationConfigurationUtils.getConfigurationKey(
this,
this.getSupervisionUrlOcppKey()
return localAuthListEnabled ? Utils.convertToBoolean(localAuthListEnabled.value) : false;
}
- public startHeartbeat(): void {
+ public setSupervisionUrl(url: string): void {
if (
- this.getHeartbeatInterval() &&
- this.getHeartbeatInterval() > 0 &&
- !this.heartbeatSetInterval
+ this.getSupervisionUrlOcppConfiguration() &&
+ Utils.isNotEmptyString(this.getSupervisionUrlOcppKey())
) {
+ ChargingStationConfigurationUtils.setConfigurationKeyValue(
+ this,
+ this.getSupervisionUrlOcppKey(),
+ url
+ );
+ } else {
+ this.stationInfo.supervisionUrls = url;
+ this.saveStationInfo();
+ this.configuredSupervisionUrl = this.getConfiguredSupervisionUrl();
+ }
+ }
+
+ public startHeartbeat(): void {
+ if (this.getHeartbeatInterval() > 0 && !this.heartbeatSetInterval) {
this.heartbeatSetInterval = setInterval(() => {
this.ocppRequestService
.requestHandler<HeartbeatRequest, HeartbeatResponse>(this, RequestCommand.HEARTBEAT)
}
if (
this.getSupervisionUrlOcppConfiguration() &&
+ Utils.isNotEmptyString(this.getSupervisionUrlOcppKey()) &&
!ChargingStationConfigurationUtils.getConfigurationKey(this, this.getSupervisionUrlOcppKey())
) {
ChargingStationConfigurationUtils.addConfigurationKey(
);
} else if (
!this.getSupervisionUrlOcppConfiguration() &&
+ Utils.isNotEmptyString(this.getSupervisionUrlOcppKey()) &&
ChargingStationConfigurationUtils.getConfigurationKey(this, this.getSupervisionUrlOcppKey())
) {
ChargingStationConfigurationUtils.deleteConfigurationKey(
private getConfiguredSupervisionUrl(): URL {
const supervisionUrls = this.stationInfo?.supervisionUrls ?? Configuration.getSupervisionUrls();
if (Utils.isNotEmptyArray(supervisionUrls)) {
+ let configuredSupervisionUrlIndex: number;
switch (Configuration.getSupervisionUrlDistribution()) {
case SupervisionUrlDistribution.RANDOM:
- this.configuredSupervisionUrlIndex = Math.floor(
- Utils.secureRandom() * supervisionUrls.length
- );
+ configuredSupervisionUrlIndex = Math.floor(Utils.secureRandom() * supervisionUrls.length);
break;
case SupervisionUrlDistribution.ROUND_ROBIN:
case SupervisionUrlDistribution.CHARGING_STATION_AFFINITY:
SupervisionUrlDistribution.CHARGING_STATION_AFFINITY
}`
);
- this.configuredSupervisionUrlIndex = (this.index - 1) % supervisionUrls.length;
+ configuredSupervisionUrlIndex = (this.index - 1) % supervisionUrls.length;
break;
}
- return new URL(supervisionUrls[this.configuredSupervisionUrlIndex]);
+ return new URL(supervisionUrls[configuredSupervisionUrlIndex]);
}
return new URL(supervisionUrls as string);
}