Add CS template tunable to enable persistent OCPP configuration
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / 1.6 / OCPP16ResponseService.ts
index 759f3705700d0765af848e7596f71ed05251f255..93465c620fb9ff04584a1adecead5781ead24935 100644 (file)
@@ -104,12 +104,15 @@ export default class OCPP16ResponseService extends OCPPResponseService {
     if (payload.status === OCPP16RegistrationStatus.ACCEPTED) {
       this.chargingStation.addConfigurationKey(
         OCPP16StandardParametersKey.HeartBeatInterval,
-        payload.interval.toString()
+        payload.interval.toString(),
+        {},
+        { overwrite: true, save: true }
       );
       this.chargingStation.addConfigurationKey(
         OCPP16StandardParametersKey.HeartbeatInterval,
         payload.interval.toString(),
-        { visible: false }
+        { visible: false },
+        { overwrite: true, save: true }
       );
       this.chargingStation.heartbeatSetInterval
         ? this.chargingStation.restartHeartbeat()
@@ -169,9 +172,9 @@ export default class OCPP16ResponseService extends OCPPResponseService {
       this.chargingStation.getConnectorStatus(authorizeConnectorId).idTagAuthorized = false;
       delete this.chargingStation.getConnectorStatus(authorizeConnectorId).authorizeIdTag;
       logger.debug(
-        `${this.chargingStation.logPrefix()} IdTag ${requestPayload.idTag} refused with status ${
+        `${this.chargingStation.logPrefix()} IdTag ${requestPayload.idTag} refused with status '${
           payload.idTagInfo.status
-        } on connector ${authorizeConnectorId}`
+        }' on connector ${authorizeConnectorId}`
       );
     }
   }
@@ -310,10 +313,14 @@ export default class OCPP16ResponseService extends OCPPResponseService {
           requestPayload.meterStart
         );
       this.chargingStation.getBeginEndMeterValues() &&
-        (await this.chargingStation.ocppRequestService.sendTransactionBeginMeterValues(
-          connectorId,
-          payload.transactionId,
-          this.chargingStation.getConnectorStatus(connectorId).transactionBeginMeterValue
+        (await this.chargingStation.ocppRequestService.sendMessageHandler(
+          OCPP16RequestCommand.METER_VALUES,
+          {
+            connectorId,
+            transactionId: payload.transactionId,
+            meterValue:
+              this.chargingStation.getConnectorStatus(connectorId).transactionBeginMeterValue,
+          }
         ));
       await this.chargingStation.ocppRequestService.sendMessageHandler(
         OCPP16RequestCommand.STATUS_NOTIFICATION,
@@ -353,9 +360,9 @@ export default class OCPP16ResponseService extends OCPPResponseService {
         this.chargingStation.logPrefix() +
           ' Starting transaction id ' +
           payload.transactionId.toString() +
-          ' REJECTED with status ' +
+          " REJECTED with status '" +
           payload?.idTagInfo?.status +
-          ', idTag ' +
+          "', idTag " +
           requestPayload.idTag
       );
       await this.resetConnectorOnStartTransactionError(connectorId);
@@ -385,17 +392,9 @@ export default class OCPP16ResponseService extends OCPPResponseService {
     payload: OCPP16StopTransactionResponse,
     requestPayload: StopTransactionRequest
   ): Promise<void> {
-    let transactionConnectorId: number;
-    for (const connectorId of this.chargingStation.connectors.keys()) {
-      if (
-        connectorId > 0 &&
-        this.chargingStation.getConnectorStatus(connectorId)?.transactionId ===
-          requestPayload.transactionId
-      ) {
-        transactionConnectorId = connectorId;
-        break;
-      }
-    }
+    const transactionConnectorId = this.chargingStation.getConnectorIdByTransactionId(
+      requestPayload.transactionId
+    );
     if (!transactionConnectorId) {
       logger.error(
         this.chargingStation.logPrefix() +
@@ -408,14 +407,17 @@ export default class OCPP16ResponseService extends OCPPResponseService {
       this.chargingStation.getBeginEndMeterValues() &&
         !this.chargingStation.getOcppStrictCompliance() &&
         this.chargingStation.getOutOfOrderEndMeterValues() &&
-        (await this.chargingStation.ocppRequestService.sendTransactionEndMeterValues(
-          transactionConnectorId,
-          requestPayload.transactionId,
-          OCPP16ServiceUtils.buildTransactionEndMeterValue(
-            this.chargingStation,
-            transactionConnectorId,
-            requestPayload.meterStop
-          )
+        (await this.chargingStation.ocppRequestService.sendMessageHandler(
+          OCPP16RequestCommand.METER_VALUES,
+          {
+            connectorId: transactionConnectorId,
+            transactionId: requestPayload.transactionId,
+            meterValue: OCPP16ServiceUtils.buildTransactionEndMeterValue(
+              this.chargingStation,
+              transactionConnectorId,
+              requestPayload.meterStop
+            ),
+          }
         ));
       if (
         !this.chargingStation.isChargingStationAvailable() ||
@@ -461,8 +463,9 @@ export default class OCPP16ResponseService extends OCPPResponseService {
         this.chargingStation.logPrefix() +
           ' Stopping transaction id ' +
           requestPayload.transactionId.toString() +
-          ' REJECTED with status ' +
-          payload.idTagInfo?.status
+          " REJECTED with status '" +
+          payload.idTagInfo?.status +
+          "'"
       );
     }
   }