fix: fix station info generation
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / 1.6 / OCPP16ResponseService.ts
index 743455ff8ae783d86611b06272ddba8c7b9e8dee..54a25b0bf6b41d691e6f36c3be3c975c48b529f1 100644 (file)
@@ -403,13 +403,26 @@ export class OCPP16ResponseService extends OCPPResponseService {
     requestPayload: OCPP16AuthorizeRequest
   ): void {
     let authorizeConnectorId: number;
-    for (const connectorId of chargingStation.connectors.keys()) {
-      if (
-        connectorId > 0 &&
-        chargingStation.getConnectorStatus(connectorId)?.authorizeIdTag === requestPayload.idTag
-      ) {
-        authorizeConnectorId = connectorId;
-        break;
+    if (chargingStation.hasEvses) {
+      for (const [evseId, evseStatus] of chargingStation.evses) {
+        if (evseId > 0) {
+          for (const [connectorId, connectorStatus] of evseStatus.connectors) {
+            if (connectorStatus?.authorizeIdTag === requestPayload.idTag) {
+              authorizeConnectorId = connectorId;
+              break;
+            }
+          }
+        }
+      }
+    } else {
+      for (const connectorId of chargingStation.connectors.keys()) {
+        if (
+          connectorId > 0 &&
+          chargingStation.getConnectorStatus(connectorId)?.authorizeIdTag === requestPayload.idTag
+        ) {
+          authorizeConnectorId = connectorId;
+          break;
+        }
       }
     }
     const authorizeConnectorIdDefined = !Utils.isNullOrUndefined(authorizeConnectorId);
@@ -440,7 +453,7 @@ export class OCPP16ResponseService extends OCPPResponseService {
     requestPayload: OCPP16StartTransactionRequest
   ): Promise<void> {
     const connectorId = requestPayload.connectorId;
-    if (connectorId === 0 || !chargingStation.connectors.has(connectorId)) {
+    if (connectorId === 0 || chargingStation.hasConnector(connectorId) === false) {
       logger.error(
         `${chargingStation.logPrefix()} Trying to start a transaction on a non existing connector id ${connectorId.toString()}`
       );