From dcfc120c6562e7d20830629a067a3224d5bc37ca Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Fri, 20 Mar 2026 20:05:22 +0100 Subject: [PATCH] fix(ocpp2.0): pass real transactionId to buildMeterValue for energy accumulation 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 | 4 ++-- src/charging-station/ocpp/2.0/OCPP20ServiceUtils.ts | 2 +- src/charging-station/ocpp/OCPPServiceUtils.ts | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/charging-station/ocpp/2.0/OCPP20IncomingRequestService.ts b/src/charging-station/ocpp/2.0/OCPP20IncomingRequestService.ts index 5f9898aa..124f9c4d 100644 --- a/src/charging-station/ocpp/2.0/OCPP20IncomingRequestService.ts +++ b/src/charging-station/ocpp/2.0/OCPP20IncomingRequestService.ts @@ -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 { diff --git a/src/charging-station/ocpp/2.0/OCPP20ServiceUtils.ts b/src/charging-station/ocpp/2.0/OCPP20ServiceUtils.ts index c51ae341..588dc07d 100644 --- a/src/charging-station/ocpp/2.0/OCPP20ServiceUtils.ts +++ b/src/charging-station/ocpp/2.0/OCPP20ServiceUtils.ts @@ -560,7 +560,7 @@ export class OCPP20ServiceUtils extends OCPPServiceUtils { const meterValue = buildMeterValue( chargingStation, connectorId, - 0, + connectorStatus.transactionId, interval ) as OCPP20MeterValue OCPP20ServiceUtils.sendTransactionEvent( diff --git a/src/charging-station/ocpp/OCPPServiceUtils.ts b/src/charging-station/ocpp/OCPPServiceUtils.ts index 8098abc1..e96a7166 100644 --- a/src/charging-station/ocpp/OCPPServiceUtils.ts +++ b/src/charging-station/ocpp/OCPPServiceUtils.ts @@ -1523,7 +1523,7 @@ const buildCurrentMeasurandValue = ( export const buildMeterValue = ( chargingStation: ChargingStation, connectorId: number, - transactionId: number, + transactionId: number | string | undefined, interval: number, debug = false ): MeterValue => { -- 2.43.0