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")