From afc2afbac09cc175789fcce9f97bf5ed14383468 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Fri, 8 Nov 2024 16:08:53 +0100 Subject: [PATCH] heatpump uoms fix #2188 --- interface/src/app/main/types.ts | 6 ++++-- src/devices/heatpump.cpp | 14 +++++++------- src/emsdevicevalue.cpp | 2 +- src/emsdevicevalue.h | 3 ++- src/locale_common.h | 1 + 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/interface/src/app/main/types.ts b/interface/src/app/main/types.ts index d037d338e..4c20fd57f 100644 --- a/interface/src/app/main/types.ts +++ b/interface/src/app/main/types.ts @@ -181,7 +181,8 @@ export enum DeviceValueUOM { K, VOLTS, MBAR, - LH + LH, + CTKWH } export const DeviceValueUOM_s = [ @@ -210,7 +211,8 @@ export const DeviceValueUOM_s = [ 'K', 'V', 'mbar', - 'l/h' + 'l/h', + 'ct/kWh' ]; export enum AnalogType { diff --git a/src/devices/heatpump.cpp b/src/devices/heatpump.cpp index de56e342a..8c87c5e02 100644 --- a/src/devices/heatpump.cpp +++ b/src/devices/heatpump.cpp @@ -82,9 +82,9 @@ Heatpump::Heatpump(uint8_t device_type, uint8_t device_id, uint8_t product_id, c DeviceValueUOM::NONE, MAKE_CF_CB(set_lowNoiseMode)); register_device_value( - DeviceValueTAG::TAG_DEVICE_DATA, &lowNoiseStart_, DeviceValueType::UINT8, FL_(lowNoiseStart), DeviceValueUOM::NONE, MAKE_CF_CB(set_lowNoiseStart), 0, 23); + DeviceValueTAG::TAG_DEVICE_DATA, &lowNoiseStart_, DeviceValueType::UINT8, FL_(lowNoiseStart), DeviceValueUOM::HOURS, MAKE_CF_CB(set_lowNoiseStart), 0, 23); register_device_value( - DeviceValueTAG::TAG_DEVICE_DATA, &lowNoiseStop_, DeviceValueType::UINT8, FL_(lowNoiseStop), DeviceValueUOM::NONE, MAKE_CF_CB(set_lowNoiseStop), 0, 23); + DeviceValueTAG::TAG_DEVICE_DATA, &lowNoiseStop_, DeviceValueType::UINT8, FL_(lowNoiseStop), DeviceValueUOM::HOURS, MAKE_CF_CB(set_lowNoiseStop), 0, 23); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &hybridDHW_, DeviceValueType::ENUM, @@ -96,25 +96,25 @@ Heatpump::Heatpump(uint8_t device_type, uint8_t device_id, uint8_t product_id, c &energyPriceGas_, DeviceValueType::UINT8, FL_(energyPriceGas), - DeviceValueUOM::NONE, + DeviceValueUOM::CTKWH, MAKE_CF_CB(set_energyPriceGas)); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &energyPriceEl_, DeviceValueType::UINT8, FL_(energyPriceEl), - DeviceValueUOM::NONE, + DeviceValueUOM::CTKWH, MAKE_CF_CB(set_energyPriceEl)); register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, &energyPricePV_, DeviceValueType::UINT8, FL_(energyPricePV), - DeviceValueUOM::NONE, + DeviceValueUOM::CTKWH, MAKE_CF_CB(set_energyPricePV)); - register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, + register_device_value(DeviceValueTAG::TAG_DHW1, &switchOverTemp_, DeviceValueType::INT8, FL_(switchOverTemp), - DeviceValueUOM::NONE, + DeviceValueUOM::DEGREES, MAKE_CF_CB(set_switchOverTemp)); // Function test register_device_value(DeviceValueTAG::TAG_DEVICE_DATA, diff --git a/src/emsdevicevalue.cpp b/src/emsdevicevalue.cpp index fb4be3152..9a5c4f6ec 100644 --- a/src/emsdevicevalue.cpp +++ b/src/emsdevicevalue.cpp @@ -110,7 +110,7 @@ const char * DeviceValue::DeviceValueUOM_s[] = { F_(uom_blank), // 0 F_(uom_degrees), F_(uom_degrees), F_(uom_percent), F_(uom_lmin), F_(uom_kwh), F_(uom_wh), FL_(hours)[0], FL_(minutes)[0], F_(uom_ua), F_(uom_bar), F_(uom_kw), F_(uom_w), F_(uom_kb), FL_(seconds)[0], F_(uom_dbm), F_(uom_fahrenheit), F_(uom_mv), F_(uom_sqm), - F_(uom_m3), F_(uom_l), F_(uom_kmin), F_(uom_k), F_(uom_volts), F_(uom_mbar), F_(uom_lh), F_(uom_blank) + F_(uom_m3), F_(uom_l), F_(uom_kmin), F_(uom_k), F_(uom_volts), F_(uom_mbar), F_(uom_lh), F_(uom_ctkwh), F_(uom_blank) }; diff --git a/src/emsdevicevalue.h b/src/emsdevicevalue.h index 2780e19a0..d193aa924 100644 --- a/src/emsdevicevalue.h +++ b/src/emsdevicevalue.h @@ -74,7 +74,8 @@ class DeviceValue { VOLTS, // 23 - V MBAR, // 24 - mbar LH, // 25 - l/h - CONNECTIVITY // 26 - used in HA + CTKWH, // 26 - ct/kWh + CONNECTIVITY // 27 - used in HA }; // TAG mapping - maps to DeviceValueTAG_s in emsdevice.cpp diff --git a/src/locale_common.h b/src/locale_common.h index 09ccde737..61e7de0b1 100644 --- a/src/locale_common.h +++ b/src/locale_common.h @@ -262,6 +262,7 @@ MAKE_WORD_CUSTOM(uom_k, "K") MAKE_WORD_CUSTOM(uom_volts, "V") MAKE_WORD_CUSTOM(uom_mbar, "mbar") MAKE_WORD_CUSTOM(uom_lh, "l/h") +MAKE_WORD_CUSTOM(uom_ctkwh, "ct/kWh") // MQTT topics and prefixes MAKE_WORD_CUSTOM(heating_active, "heating_active")