From 6dfe4f56281d4647241651cb6aca84f21a66d68e Mon Sep 17 00:00:00 2001 From: goxlur <94928579+goxlur@users.noreply.github.com> Date: Thu, 6 Feb 2025 21:51:43 +0100 Subject: [PATCH 1/2] Add "kvar" unit to reactive power fields --- src/dsmr/fields.h | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/dsmr/fields.h b/src/dsmr/fields.h index 6db7282..510e517 100644 --- a/src/dsmr/fields.h +++ b/src/dsmr/fields.h @@ -465,26 +465,26 @@ namespace dsmr DEFINE_FIELD(current_sum, FixedValue, ObisId(1, 0, 90, 7, 0), FixedField, units::A, units::mA); /* - * LUX and Lithuania + * LUX, Lithuania and Sweden */ - /* TODO: by IEC 62056 unit's shoudl be kvar, safe to change? */ + /* IEC 62056 define the unit of reactive power as "kvar". Some meters e.g. L+G E360 uses mixed case "kVar" */ /* Instantaneous reactive power L1 (+Q) in W resolution */ - DEFINE_FIELD(reactive_power_delivered_l1, FixedValue, ObisId(1, 0, 23, 7, 0), FixedField, units::none, units::none); + DEFINE_FIELD(reactive_power_delivered_l1, FixedValue, ObisId(1, 0, 23, 7, 0), FixedField, units::kvar, units::kvar); /* Instantaneous reactive power L2 (+Q) in W resolution */ - DEFINE_FIELD(reactive_power_delivered_l2, FixedValue, ObisId(1, 0, 43, 7, 0), FixedField, units::none, units::none); + DEFINE_FIELD(reactive_power_delivered_l2, FixedValue, ObisId(1, 0, 43, 7, 0), FixedField, units::kvar, units::kvar); /* Instantaneous reactive power L3 (+Q) in W resolution */ - DEFINE_FIELD(reactive_power_delivered_l3, FixedValue, ObisId(1, 0, 63, 7, 0), FixedField, units::none, units::none); + DEFINE_FIELD(reactive_power_delivered_l3, FixedValue, ObisId(1, 0, 63, 7, 0), FixedField, units::kvar, units::kvar); /* - * LUX and Lithuania + * LUX, Lithuania and Sweden */ - /* TODO: by IEC 62056 unit's shoudl be kvar, safe to change? */ + /* IEC 62056 define the unit of reactive power as "kvar". Some meters e.g. L+G E360 uses mixed case "kVar" */ /* Instantaneous reactive power L1 (-Q) in W resolution */ - DEFINE_FIELD(reactive_power_returned_l1, FixedValue, ObisId(1, 0, 24, 7, 0), FixedField, units::none, units::none); + DEFINE_FIELD(reactive_power_returned_l1, FixedValue, ObisId(1, 0, 24, 7, 0), FixedField, units::kvar, units::kvar); /* Instantaneous reactive power L2 (-Q) in W resolution */ - DEFINE_FIELD(reactive_power_returned_l2, FixedValue, ObisId(1, 0, 44, 7, 0), FixedField, units::none, units::none); + DEFINE_FIELD(reactive_power_returned_l2, FixedValue, ObisId(1, 0, 44, 7, 0), FixedField, units::kvar, units::kvar); /* Instantaneous reactive power L3 (-Q) in W resolution */ - DEFINE_FIELD(reactive_power_returned_l3, FixedValue, ObisId(1, 0, 64, 7, 0), FixedField, units::none, units::none); + DEFINE_FIELD(reactive_power_returned_l3, FixedValue, ObisId(1, 0, 64, 7, 0), FixedField, units::kvar, units::kvar); /* Apparent instantaneous power (+S) in kVA resolution */ DEFINE_FIELD(apparent_delivery_power, FixedValue, ObisId(1, 0, 9, 7, 0), FixedField, units::kVA, units::VA); From 3fbd7060a3e99ad4cadd209d3c795237ea120ef3 Mon Sep 17 00:00:00 2001 From: goxlur <94928579+goxlur@users.noreply.github.com> Date: Fri, 21 Mar 2025 21:43:16 +0100 Subject: [PATCH 2/2] Update fields.h --- src/dsmr/fields.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dsmr/fields.h b/src/dsmr/fields.h index 510e517..92684ea 100644 --- a/src/dsmr/fields.h +++ b/src/dsmr/fields.h @@ -467,7 +467,7 @@ namespace dsmr /* * LUX, Lithuania and Sweden */ - /* IEC 62056 define the unit of reactive power as "kvar". Some meters e.g. L+G E360 uses mixed case "kVar" */ + /* IEC 62056 define the unit of reactive power as kvar. Some meters e.g. L+G E360 uses mixed case kVar */ /* Instantaneous reactive power L1 (+Q) in W resolution */ DEFINE_FIELD(reactive_power_delivered_l1, FixedValue, ObisId(1, 0, 23, 7, 0), FixedField, units::kvar, units::kvar); /* Instantaneous reactive power L2 (+Q) in W resolution */ @@ -478,7 +478,7 @@ namespace dsmr /* * LUX, Lithuania and Sweden */ - /* IEC 62056 define the unit of reactive power as "kvar". Some meters e.g. L+G E360 uses mixed case "kVar" */ + /* IEC 62056 define the unit of reactive power as kvar. Some meters e.g. L+G E360 uses mixed case kVar */ /* Instantaneous reactive power L1 (-Q) in W resolution */ DEFINE_FIELD(reactive_power_returned_l1, FixedValue, ObisId(1, 0, 24, 7, 0), FixedField, units::kvar, units::kvar); /* Instantaneous reactive power L2 (-Q) in W resolution */