fix: fix station info generation
[e-mobility-charging-stations-simulator.git] / src / charging-station / ocpp / 1.6 / OCPP16ResponseService.ts
index 5cc6cbe7312ad701699bb1beb1087352e4191126..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);