From 34cdc8b4e94d1170b825edbad97c00b8893fa624 Mon Sep 17 00:00:00 2001 From: Johannes Date: Sun, 15 May 2022 10:42:29 +0200 Subject: [PATCH] add config for temp unit on climate card --- apps/nspanel-lovelace-ui/luibackend/config.py | 1 + apps/nspanel-lovelace-ui/luibackend/pages.py | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/apps/nspanel-lovelace-ui/luibackend/config.py b/apps/nspanel-lovelace-ui/luibackend/config.py index c8f4f6cb..54edc19d 100644 --- a/apps/nspanel-lovelace-ui/luibackend/config.py +++ b/apps/nspanel-lovelace-ui/luibackend/config.py @@ -95,6 +95,7 @@ class LuiBackendConfig(object): }, { 'type': 'climate', 'entity': 'climate.test_item', + 'temperatureUnit': 'celsius' }], 'screensaver': { 'type': 'screensaver', diff --git a/apps/nspanel-lovelace-ui/luibackend/pages.py b/apps/nspanel-lovelace-ui/luibackend/pages.py index fad07927..e7cd0ab5 100644 --- a/apps/nspanel-lovelace-ui/luibackend/pages.py +++ b/apps/nspanel-lovelace-ui/luibackend/pages.py @@ -198,14 +198,23 @@ class LuiPagesGen(object): command += self.generate_entities_item(item) self._send_mqtt_msg(command) - def generate_thermo_page(self, navigation, entity): + def generate_thermo_page(self, navigation, entity, temp_unit): item = entity.entityId + + if(temp_unit == "celsius"): + temperature_unit_icon = get_icon_id("temperature-celsius") + temperature_unit = "°C" + + else: + temperature_unit_icon = get_icon_id("temperature-celsius") + temperature_unit = "°F" + if not self._ha_api.entity_exists(item): command = f"entityUpd~{heading}~{navigation}~{item}~220~220~Not found~150~300~5" else: entity = self._ha_api.get_entity(item) heading = entity.attributes.friendly_name - current_temp = int(get_attr_safe(entity, "current_temperature", 0)*10) + current_temp = get_attr_safe(entity, "current_temperature", "") dest_temp = int(get_attr_safe(entity, "temperature", 0)*10) status = get_attr_safe(entity, "hvac_action", "") status = get_translation(self._locale,status) @@ -243,9 +252,8 @@ class LuiPagesGen(object): len_hvac_modes = len(hvac_modes) padding_len = 8-len_hvac_modes icon_res = icon_res + "~"*4*padding_len - temperature_unit = get_icon_id("temperature-celsius") - command = f"entityUpd~{heading}~{navigation}~{item}~{current_temp}~{dest_temp}~{status}~{min_temp}~{max_temp}~{step_temp}{icon_res}~Currently~State~Action~{temperature_unit}" + command = f"entityUpd~{heading}~{navigation}~{item}~{current_temp} {temperature_unit}~{dest_temp}~{status}~{min_temp}~{max_temp}~{step_temp}{icon_res}~Currently~State~Action~{temperature_unit_icon}" self._send_mqtt_msg(command) def generate_media_page(self, navigation, entity): @@ -359,7 +367,8 @@ class LuiPagesGen(object): self.generate_entities_page(navigation, card.title, card.entities) return if card.cardType == "cardThermo": - self.generate_thermo_page(navigation, card.entity) + temp_unit = card.raw_config.get("temperatureUnit", "celsius") + self.generate_thermo_page(navigation, card.entity, temp_unit) if card.cardType == "cardMedia": self.generate_media_page(navigation, card.entity) if card.cardType == "cardAlarm":