From 3cbdf10bee1e69c8b48685ab2387626ae427a873 Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9r=C3=B4me=20Benoit?= Date: Wed, 1 Apr 2026 23:25:59 +0200 Subject: [PATCH] fix(ocpp): wire context param through OCPP 1.6 meter value builder The context parameter was silently dropped during extraction to OCPP16RequestBuilders, unlike the OCPP 2.0 version which correctly passes it to all internal calls. --- .../ocpp/1.6/OCPP16RequestBuilders.ts | 32 +++++++++++++------ 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/src/charging-station/ocpp/1.6/OCPP16RequestBuilders.ts b/src/charging-station/ocpp/1.6/OCPP16RequestBuilders.ts index 7beb3181..ae768e14 100644 --- a/src/charging-station/ocpp/1.6/OCPP16RequestBuilders.ts +++ b/src/charging-station/ocpp/1.6/OCPP16RequestBuilders.ts @@ -95,7 +95,11 @@ export const buildOCPP16MeterValue = ( measurandsKey ) if (socMeasurand != null) { - const socSampledValue = buildVersionedSampledValue(socMeasurand.template, socMeasurand.value) + const socSampledValue = buildVersionedSampledValue( + socMeasurand.template, + socMeasurand.value, + context + ) meterValue.sampledValue.push(socSampledValue) validateSocMeasurandValue( chargingStation, @@ -118,7 +122,8 @@ export const buildOCPP16MeterValue = ( chargingStation, meterValue, voltageMeasurand, - buildVersionedSampledValue + buildVersionedSampledValue, + context ) for ( let phase = 1; @@ -131,7 +136,9 @@ export const buildOCPP16MeterValue = ( meterValue, voltageMeasurand, phase, - buildVersionedSampledValue + buildVersionedSampledValue, + measurandsKey, + context ) addLineToLineVoltageToMeterValue( chargingStation, @@ -139,7 +146,9 @@ export const buildOCPP16MeterValue = ( meterValue, voltageMeasurand, phase, - buildVersionedSampledValue + buildVersionedSampledValue, + measurandsKey, + context ) } } @@ -158,7 +167,7 @@ export const buildOCPP16MeterValue = ( const connectorMinimumPower = Math.round(powerMeasurand.template.minimumValue ?? 0) meterValue.sampledValue.push( - buildVersionedSampledValue(powerMeasurand.template, powerMeasurand.values.allPhases) + buildVersionedSampledValue(powerMeasurand.template, powerMeasurand.values.allPhases, context) ) const sampledValuesIndex = meterValue.sampledValue.length - 1 validatePowerMeasurandValue( @@ -187,7 +196,7 @@ export const buildOCPP16MeterValue = ( const phasePowerValue = powerMeasurand.values[`L${phase.toString()}` as keyof MeasurandValues] meterValue.sampledValue.push( - buildVersionedSampledValue(phaseTemplate, phasePowerValue, undefined, phaseValue) + buildVersionedSampledValue(phaseTemplate, phasePowerValue, context, phaseValue) ) const sampledValuesPerPhaseIndex = meterValue.sampledValue.length - 1 validatePowerMeasurandValue( @@ -224,7 +233,11 @@ export const buildOCPP16MeterValue = ( const connectorMinimumAmperage = currentMeasurand.template.minimumValue ?? 0 meterValue.sampledValue.push( - buildVersionedSampledValue(currentMeasurand.template, currentMeasurand.values.allPhases) + buildVersionedSampledValue( + currentMeasurand.template, + currentMeasurand.values.allPhases, + context + ) ) const sampledValuesIndex = meterValue.sampledValue.length - 1 validateCurrentMeasurandValue( @@ -248,7 +261,7 @@ export const buildOCPP16MeterValue = ( phaseValue as keyof MeasurandPerPhaseSampledValueTemplates ] ?? currentMeasurand.template, currentMeasurand.values[phaseValue as keyof MeasurandPerPhaseSampledValueTemplates], - undefined, + context, phaseValue ) ) @@ -280,7 +293,8 @@ export const buildOCPP16MeterValue = ( roundTo( chargingStation.getEnergyActiveImportRegisterByTransactionId(transactionId) / unitDivider, 2 - ) + ), + context ) meterValue.sampledValue.push(energySampledValue) const connectorMaximumAvailablePower = -- 2.53.0