]> Piment Noir Git Repositories - e-mobility-charging-stations-simulator.git/commitdiff
fix(ocpp2.0): pass real transactionId to buildMeterValue for energy accumulation
authorJérôme Benoit <jerome.benoit@sap.com>
Fri, 20 Mar 2026 19:05:22 +0000 (20:05 +0100)
committerJérôme Benoit <jerome.benoit@sap.com>
Fri, 20 Mar 2026 19:05:22 +0000 (20:05 +0100)
buildMeterValue was called with transactionId=0 for OCPP 2.0 stations,
but transaction IDs are UUID strings in 2.0.1. The energy lookup
compared 'uuid-string' === 0, always returning 0 Wh. Pass the actual
connectorStatus.transactionId and widen the parameter type to
number | string | undefined.

src/charging-station/ocpp/2.0/OCPP20IncomingRequestService.ts
src/charging-station/ocpp/2.0/OCPP20ServiceUtils.ts
src/charging-station/ocpp/OCPPServiceUtils.ts

index 5f9898aa885384dd8d3277686e93b93263206fec..124f9c4dfc741d059dc9f322bedf467f20aeb052 100644 (file)
@@ -511,7 +511,7 @@ export class OCPP20IncomingRequestService extends OCPPIncomingRequestService {
                 const meterValue = buildMeterValue(
                   chargingStation,
                   cId,
-                  0,
+                  connector.transactionId,
                   txUpdatedInterval
                 ) as OCPP20MeterValue
                 OCPP20ServiceUtils.sendTransactionEvent(
@@ -531,7 +531,7 @@ export class OCPP20IncomingRequestService extends OCPPIncomingRequestService {
                 meterValue = buildMeterValue(
                   chargingStation,
                   fallbackEvseId > 0 ? fallbackEvseId : 1,
-                  0,
+                  undefined,
                   OCPP20ServiceUtils.getTxUpdatedInterval(chargingStation)
                 ) as OCPP20MeterValue
               } catch {
index c51ae341c2a94003cd8f12401fdc746a25a19b3f..588dc07dd4c4ff287f7be06dd1d2fa5d11b65e4f 100644 (file)
@@ -560,7 +560,7 @@ export class OCPP20ServiceUtils extends OCPPServiceUtils {
         const meterValue = buildMeterValue(
           chargingStation,
           connectorId,
-          0,
+          connectorStatus.transactionId,
           interval
         ) as OCPP20MeterValue
         OCPP20ServiceUtils.sendTransactionEvent(
index 8098abc15298e8f712e854d6b52ae6a48e7b6429..e96a7166fb26fbbb1a01439312a4602d69ac2c76 100644 (file)
@@ -1523,7 +1523,7 @@ const buildCurrentMeasurandValue = (
 export const buildMeterValue = (
   chargingStation: ChargingStation,
   connectorId: number,
-  transactionId: number,
+  transactionId: number | string | undefined,
   interval: number,
   debug = false
 ): MeterValue => {