From 89245c7af79869ffc95b6681f1551bef09580a56 Mon Sep 17 00:00:00 2001 From: MichaelDvP Date: Sun, 20 Nov 2022 10:44:17 +0100 Subject: [PATCH] translating UOMs hours/minutes/seconds --- src/emsdevice.cpp | 28 +++++++++++++--------------- src/emsdevicevalue.cpp | 6 +++--- src/locale_common.h | 5 +---- 3 files changed, 17 insertions(+), 22 deletions(-) diff --git a/src/emsdevice.cpp b/src/emsdevice.cpp index 0184f2ffa..90dac5a49 100644 --- a/src/emsdevice.cpp +++ b/src/emsdevice.cpp @@ -51,23 +51,21 @@ std::string EMSdevice::tag_to_mqtt(uint8_t tag) { return (DeviceValue::DeviceValueTAG_mqtt[tag]); } -// convert UOM to a string - these don't need translating +// convert UOM to a string - translating only for hours/minutes/seconds std::string EMSdevice::uom_to_string(uint8_t uom) { - if (EMSESP::system_.fahrenheit() && (uom == DeviceValueUOM::DEGREES || uom == DeviceValueUOM::DEGREES_R)) { - return (DeviceValue::DeviceValueUOM_s[DeviceValueUOM::FAHRENHEIT]); + switch (uom) { + case DeviceValueUOM::DEGREES: + case DeviceValueUOM::DEGREES_R: + return EMSESP::system_.fahrenheit() ? DeviceValue::DeviceValueUOM_s[DeviceValueUOM::FAHRENHEIT] : DeviceValue::DeviceValueUOM_s[uom]; + case DeviceValueUOM::HOURS: + return Helpers::translated_word(FL_(hours)); + case DeviceValueUOM::MINUTES: + return Helpers::translated_word(FL_(minutes)); + case DeviceValueUOM::SECONDS: + return Helpers::translated_word(FL_(seconds)); + default: + return DeviceValue::DeviceValueUOM_s[uom]; } - /* translate times? https://github.com/emsesp/EMS-ESP32/issues/752 - if (uom == DeviceValueUOM::HOURS) { - return (Helpers::translated_word(FL_(hours))); - } - if (uom == DeviceValueUOM::MINUTES) { - return (Helpers::translated_word(FL_(minutes))); - } - if (uom == DeviceValueUOM::SECONDS) { - return (Helpers::translated_word(FL_(seconds))); - } - */ - return (DeviceValue::DeviceValueUOM_s[uom]); } std::string EMSdevice::brand_to_string() const { diff --git a/src/emsdevicevalue.cpp b/src/emsdevicevalue.cpp index 8ce9abe53..33bfe113e 100644 --- a/src/emsdevicevalue.cpp +++ b/src/emsdevicevalue.cpp @@ -112,14 +112,14 @@ const char * DeviceValue::DeviceValueUOM_s[] = { F_(uom_lmin), F_(uom_kwh), F_(uom_wh), - F_(uom_hours), - F_(uom_minutes), + FL_(hours)[0], + FL_(minutes)[0], F_(uom_ua), F_(uom_bar), F_(uom_kw), F_(uom_w), F_(uom_kb), - F_(uom_seconds), + FL_(seconds)[0], F_(uom_dbm), F_(uom_fahrenheit), F_(uom_mv), diff --git a/src/locale_common.h b/src/locale_common.h index dfa4304fa..3be006d96 100644 --- a/src/locale_common.h +++ b/src/locale_common.h @@ -197,13 +197,10 @@ MAKE_PSTR_LIST(tpl_input, "Format: [[]") // Unit Of Measurement mapping - maps to DeviceValueUOM_s in emsdevice.cpp -// These don't need translating, it will mess up HA and the API +// Translating hours/minute/seconds in emsdevice.cpp MAKE_PSTR(uom_blank, " ") MAKE_PSTR(uom_percent, "%") MAKE_PSTR(uom_degrees, "°C") -MAKE_PSTR(uom_hours, "hours") -MAKE_PSTR(uom_minutes, "minutes") -MAKE_PSTR(uom_seconds, "seconds") MAKE_PSTR(uom_kwh, "kWh") MAKE_PSTR(uom_wh, "Wh") MAKE_PSTR(uom_bar, "bar")