From 191bcedaa220db5ab6d0fdb30726c522e1cd4a9e Mon Sep 17 00:00:00 2001 From: Vadym Melnychuk Date: Sun, 3 Dec 2023 18:13:45 +0200 Subject: [PATCH] Water Heater --- custom_components/hon/binary_sensor.py | 10 ++++ custom_components/hon/const.py | 6 +++ custom_components/hon/number.py | 23 +++++++-- custom_components/hon/select.py | 29 ++++++++++- custom_components/hon/sensor.py | 57 ++++++++++++++++++++++ custom_components/hon/switch.py | 38 ++++++++++++--- custom_components/hon/translations/bg.json | 19 ++++++++ custom_components/hon/translations/cs.json | 17 +++++++ custom_components/hon/translations/de.json | 17 +++++++ custom_components/hon/translations/el.json | 17 +++++++ custom_components/hon/translations/en.json | 17 +++++++ custom_components/hon/translations/es.json | 17 +++++++ custom_components/hon/translations/fr.json | 17 +++++++ custom_components/hon/translations/he.json | 17 +++++++ custom_components/hon/translations/hr.json | 17 +++++++ custom_components/hon/translations/it.json | 17 +++++++ custom_components/hon/translations/nl.json | 17 +++++++ custom_components/hon/translations/pl.json | 17 +++++++ custom_components/hon/translations/pt.json | 17 +++++++ custom_components/hon/translations/ro.json | 17 +++++++ custom_components/hon/translations/ru.json | 17 +++++++ custom_components/hon/translations/sk.json | 17 +++++++ custom_components/hon/translations/sl.json | 17 +++++++ custom_components/hon/translations/sr.json | 17 +++++++ custom_components/hon/translations/tr.json | 17 +++++++ custom_components/hon/translations/zh.json | 17 +++++++ 26 files changed, 493 insertions(+), 12 deletions(-) diff --git a/custom_components/hon/binary_sensor.py b/custom_components/hon/binary_sensor.py index d33d689..0dd7902 100644 --- a/custom_components/hon/binary_sensor.py +++ b/custom_components/hon/binary_sensor.py @@ -284,6 +284,16 @@ BINARY_SENSORS: dict[str, tuple[HonBinarySensorEntityDescription, ...]] = { translation_key="on", ), ), + "WH": ( + HonBinarySensorEntityDescription( + key="onOffStatus", + name="Power State", + icon="mdi:power-standby", + device_class=BinarySensorDeviceClass.POWER, + on_value=1, + translation_key="power-state", + ), + ), } BINARY_SENSORS["WD"] = unique_entities(BINARY_SENSORS["WM"], BINARY_SENSORS["TD"]) diff --git a/custom_components/hon/const.py b/custom_components/hon/const.py index 69bc540..1d82148 100644 --- a/custom_components/hon/const.py +++ b/custom_components/hon/const.py @@ -282,3 +282,9 @@ AC_POSITION_VERTICAL = { 7: "position_5", 8: "swing", } + +WH_MACH_MODE: dict[int, str] = { + 1: "eco", + 2: "max", + 3: "bps", +} diff --git a/custom_components/hon/number.py b/custom_components/hon/number.py index 7c0e504..5b4fbd3 100644 --- a/custom_components/hon/number.py +++ b/custom_components/hon/number.py @@ -5,6 +5,7 @@ from dataclasses import dataclass from homeassistant.components.number import ( NumberEntity, NumberEntityDescription, + NumberDeviceClass, ) from homeassistant.config_entries import ConfigEntry from homeassistant.const import UnitOfTime, UnitOfTemperature @@ -26,7 +27,7 @@ class HonConfigNumberEntityDescription(NumberEntityDescription): @dataclass class HonNumberEntityDescription(NumberEntityDescription): - pass + send_key_only: bool = False NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = { @@ -194,6 +195,18 @@ NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = { translation_key="pollen_level", ), ), + "WH": ( + HonNumberEntityDescription( + key="settings.tempSel", + name="Target Temperature", + icon="mdi:thermometer", + mode="slider", + device_class=NumberDeviceClass.TEMPERATURE, + native_unit_of_measurement=UnitOfTemperature.CELSIUS, + translation_key="target_temperature", + send_key_only=True, + ), + ), } NUMBERS["WD"] = unique_entities(NUMBERS["WM"], NUMBERS["TD"]) @@ -247,8 +260,12 @@ class HonNumberEntity(HonEntity, NumberEntity): setting = self._device.settings[self.entity_description.key] if isinstance(setting, HonParameterRange): setting.value = value - command = self.entity_description.key.split(".")[0] - await self._device.commands[command].send() + key_parts = self.entity_description.key.split(".") + command = key_parts[0] + if self.entity_description.send_key_only: + await self._device.commands[command].send_specific([key_parts[1]]) + else: + await self._device.commands[command].send() if command != "settings": self._device.sync_command(command, "settings") await self.coordinator.async_refresh() diff --git a/custom_components/hon/select.py b/custom_components/hon/select.py index 60bb071..2d78715 100644 --- a/custom_components/hon/select.py +++ b/custom_components/hon/select.py @@ -21,6 +21,7 @@ _LOGGER = logging.getLogger(__name__) @dataclass class HonSelectEntityDescription(SelectEntityDescription): option_list: dict[int, str] | None = None + send_key_only: bool = False @dataclass @@ -184,6 +185,24 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = { translation_key="mode", ), ), + "WH": ( + HonSelectEntityDescription( + key="settings.tempSel", + name="Target Temperature", + icon="mdi:thermometer", + unit_of_measurement=UnitOfTemperature.CELSIUS, + translation_key="target_temperature", + send_key_only=True, + ), + HonSelectEntityDescription( + key="settings.machMode", + name="Mode", + send_key_only=True, + icon="mdi:information", + option_list=const.WH_MACH_MODE, + translation_key="mach_modes_wh", + ), + ), } SELECTS["WD"] = unique_entities(SELECTS["WM"], SELECTS["TD"]) @@ -293,8 +312,14 @@ class HonSelectEntity(HonEntity, SelectEntity): async def async_select_option(self, option: str) -> None: setting = self._device.settings[self.entity_description.key] setting.value = self._option_to_number(option, setting.values) - command = self.entity_description.key.split(".")[0] - await self._device.commands[command].send() + key_parts = self.entity_description.key.split(".") + command = key_parts[0] + + if (self.entity_description.send_key_only): + await self._device.commands[command].send_specific(key_parts[1]) + else: + await self._device.commands[command].send() + if command != "settings": self._device.sync_command(command, "settings") await self.coordinator.async_refresh() diff --git a/custom_components/hon/sensor.py b/custom_components/hon/sensor.py index db88b17..bb76f7a 100644 --- a/custom_components/hon/sensor.py +++ b/custom_components/hon/sensor.py @@ -780,6 +780,63 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { translation_key="air_quality", ), ), + "WH": ( + HonSensorEntityDescription( + key="temp", + name="Temperature", + state_class=SensorStateClass.MEASUREMENT, + device_class=SensorDeviceClass.TEMPERATURE, + native_unit_of_measurement=UnitOfTemperature.CELSIUS, + translation_key="temperature", + ), + HonSensorEntityDescription( + key="tempZ1", + name="Temp Z1", + state_class=SensorStateClass.MEASUREMENT, + device_class=SensorDeviceClass.TEMPERATURE, + native_unit_of_measurement=UnitOfTemperature.CELSIUS, + ), + HonSensorEntityDescription( + key="tempZ2", + name="Temp Z2", + state_class=SensorStateClass.MEASUREMENT, + device_class=SensorDeviceClass.TEMPERATURE, + native_unit_of_measurement=UnitOfTemperature.CELSIUS, + ), + HonSensorEntityDescription( + key="tempSel", + name="Target Temperature", + icon="mdi:thermometer", + state_class=SensorStateClass.MEASUREMENT, + device_class=SensorDeviceClass.TEMPERATURE, + native_unit_of_measurement=UnitOfTemperature.CELSIUS, + translation_key="target_temperature", + ), + HonSensorEntityDescription( + key="machMode", + name="Mode", + icon="mdi:information", + device_class=SensorDeviceClass.ENUM, + option_list=const.WH_MACH_MODE, + translation_key="mach_modes_wh", + ), + HonSensorEntityDescription( + key="smartTestStatus", + name="Smart Test Status", + ), + HonSensorEntityDescription( + key="anodeMaintenanceStatus", + name="Anode Maintenance Status", + ), + HonSensorEntityDescription( + key="tankMaintenanceStatus", + name="Tank Maintenance Status", + ), + HonSensorEntityDescription( + key="heatingStatus", + name="Heating Status", + ), + ), } SENSORS["WD"] = unique_entities(SENSORS["WM"], SENSORS["TD"]) diff --git a/custom_components/hon/switch.py b/custom_components/hon/switch.py index 8c32ccd..ee11321 100644 --- a/custom_components/hon/switch.py +++ b/custom_components/hon/switch.py @@ -22,6 +22,10 @@ _LOGGER = logging.getLogger(__name__) class HonControlSwitchEntityDescription(SwitchEntityDescription): turn_on_key: str = "" turn_off_key: str = "" + only_mandatory_parameters: bool = False + on_value: bool | float = True + off_value: bool | float = False + to_sync: bool = False class HonSwitchEntityDescription(SwitchEntityDescription): @@ -374,6 +378,20 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = { translation_key="touch_tone", ), ), + "WH": ( + HonControlSwitchEntityDescription( + key="onOffStatus", + name="Power", + icon="mdi:power-standby", + turn_on_key="startProgram", + turn_off_key="stopProgram", + translation_key="power", + only_mandatory_parameters=True, + on_value=1, + off_value=0, + to_sync=True, + ), + ), } SWITCHES["WD"] = unique_entities(SWITCHES["WD"], SWITCHES["WM"]) @@ -464,20 +482,26 @@ class HonControlSwitchEntity(HonEntity, SwitchEntity): @property def is_on(self) -> bool | None: """Return True if entity is on.""" - return self._device.get(self.entity_description.key, False) + on_value = self.entity_description.on_value + off_value = self.entity_description.off_value + return self._device.get(self.entity_description.key, off_value) == on_value async def async_turn_on(self, **kwargs: Any) -> None: - self._device.sync_command(self.entity_description.turn_on_key, "settings") + desc = self.entity_description + self._device.sync_command(desc.turn_on_key, "settings", desc.to_sync) await self.coordinator.async_refresh() - await self._device.commands[self.entity_description.turn_on_key].send() - self._device.attributes[self.entity_description.key] = True + command = self._device.commands[desc.turn_on_key] + await command.send(desc.only_mandatory_parameters) + self._device.attributes[desc.key] = desc.on_value self.async_write_ha_state() async def async_turn_off(self, **kwargs: Any) -> None: - self._device.sync_command(self.entity_description.turn_off_key, "settings") + desc = self.entity_description + self._device.sync_command(desc.turn_off_key, "settings", desc.to_sync) await self.coordinator.async_refresh() - await self._device.commands[self.entity_description.turn_off_key].send() - self._device.attributes[self.entity_description.key] = False + command = self._device.commands[desc.turn_off_key] + await command.send(desc.only_mandatory_parameters) + self._device.attributes[desc.key] = desc.off_value self.async_write_ha_state() @property diff --git a/custom_components/hon/translations/bg.json b/custom_components/hon/translations/bg.json index b457373..b371441 100644 --- a/custom_components/hon/translations/bg.json +++ b/custom_components/hon/translations/bg.json @@ -72,6 +72,13 @@ "13": "Готови за съхранение H-2", "14": "Екстра сухо H-3" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -82,6 +89,18 @@ "13": "Готови за съхранение H-2", "14": "Екстра сухо H-3" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } + } + }, + "binary_sensor": { + "power-state": { + "name": "Power State" } } } diff --git a/custom_components/hon/translations/cs.json b/custom_components/hon/translations/cs.json index 3ecf296..fd408a5 100644 --- a/custom_components/hon/translations/cs.json +++ b/custom_components/hon/translations/cs.json @@ -917,6 +917,13 @@ "high": "Vysoká" }, "name": "Úroveň vlhkosti" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1788,6 +1795,13 @@ "position_5": "Pevný - Poloha 5", "swing": "Pohyb lamel" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1987,6 +2001,9 @@ }, "filter_replacement": { "name": "Výměna filtru" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/de.json b/custom_components/hon/translations/de.json index 71b8e72..80913b5 100644 --- a/custom_components/hon/translations/de.json +++ b/custom_components/hon/translations/de.json @@ -917,6 +917,13 @@ "high": "Hoch" }, "name": "Grad der Luftfeuchtigkeit" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1788,6 +1795,13 @@ "position_5": "Fest - Position 5", "swing": "Schwenkbewegung" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1987,6 +2001,9 @@ }, "filter_replacement": { "name": "Filteraustausch" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/el.json b/custom_components/hon/translations/el.json index cb46299..cfadf47 100644 --- a/custom_components/hon/translations/el.json +++ b/custom_components/hon/translations/el.json @@ -917,6 +917,13 @@ "high": "Υψηλός" }, "name": "Επίπεδο υγρασίας" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1788,6 +1795,13 @@ "position_5": "Σταθερός - Θέση 5", "swing": "Ταλάντευση" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1987,6 +2001,9 @@ }, "filter_replacement": { "name": "Αντικατάσταση φίλτρου" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/en.json b/custom_components/hon/translations/en.json index 1374407..23296fb 100644 --- a/custom_components/hon/translations/en.json +++ b/custom_components/hon/translations/en.json @@ -937,6 +937,13 @@ "high": "High" }, "name": "Humidity level" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1815,6 +1822,13 @@ "position_5": "Fixed - Position 5", "swing": "Swing" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -2014,6 +2028,9 @@ }, "filter_replacement": { "name": "Filter replacement" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/es.json b/custom_components/hon/translations/es.json index 437885b..e8d62a7 100644 --- a/custom_components/hon/translations/es.json +++ b/custom_components/hon/translations/es.json @@ -917,6 +917,13 @@ "high": "Alto" }, "name": "Nivel de humedad" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1788,6 +1795,13 @@ "position_5": "Fijo - Posición 5", "swing": "Oscilar" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1987,6 +2001,9 @@ }, "filter_replacement": { "name": "Sustitución del filtro" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/fr.json b/custom_components/hon/translations/fr.json index c84f4c5..8ae2b4b 100644 --- a/custom_components/hon/translations/fr.json +++ b/custom_components/hon/translations/fr.json @@ -917,6 +917,13 @@ "high": "Élevé" }, "name": "Niveau d’humidité" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1788,6 +1795,13 @@ "position_5": "Fixe - Position 5", "swing": "Oscillation" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1987,6 +2001,9 @@ }, "filter_replacement": { "name": "Remplacement du filtre" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/he.json b/custom_components/hon/translations/he.json index f2841b3..a0ced54 100644 --- a/custom_components/hon/translations/he.json +++ b/custom_components/hon/translations/he.json @@ -445,6 +445,13 @@ "high": "גָבוֹהַ" }, "name": "Humidity level" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -853,6 +860,13 @@ "position_5": "Fixed - Position 5", "swing": "Swing" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1052,6 +1066,9 @@ }, "filter_replacement": { "name": "Filter replacement" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/hr.json b/custom_components/hon/translations/hr.json index 1bc65a1..6ab87e5 100644 --- a/custom_components/hon/translations/hr.json +++ b/custom_components/hon/translations/hr.json @@ -917,6 +917,13 @@ "high": "Visoko" }, "name": "Razina vlažnosti" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1788,6 +1795,13 @@ "position_5": "Fiksno - Položaj 5", "swing": "Njihanje" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1987,6 +2001,9 @@ }, "filter_replacement": { "name": "Zamjena filtra" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/it.json b/custom_components/hon/translations/it.json index 004b8c5..0c044a6 100644 --- a/custom_components/hon/translations/it.json +++ b/custom_components/hon/translations/it.json @@ -924,6 +924,13 @@ "high": "Alto" }, "name": "Livello di umidità" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1797,6 +1804,13 @@ "position_5": "Fissa - Posizione 5", "swing": "Swing" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1996,6 +2010,9 @@ }, "filter_replacement": { "name": "Sostituzione filtro" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/nl.json b/custom_components/hon/translations/nl.json index 961cb7a..97d4117 100644 --- a/custom_components/hon/translations/nl.json +++ b/custom_components/hon/translations/nl.json @@ -917,6 +917,13 @@ "high": "Hoog" }, "name": "Vochtigheidsniveau" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1788,6 +1795,13 @@ "position_5": "Vast - Positie 5", "swing": "Draaiend" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1987,6 +2001,9 @@ }, "filter_replacement": { "name": "Filter vervangen" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/pl.json b/custom_components/hon/translations/pl.json index b59b87a..04d1870 100644 --- a/custom_components/hon/translations/pl.json +++ b/custom_components/hon/translations/pl.json @@ -917,6 +917,13 @@ "high": "Wysokie" }, "name": "Poziom wilgotności" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1788,6 +1795,13 @@ "position_5": "Stały - Pozycja 5", "swing": "Swing" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1987,6 +2001,9 @@ }, "filter_replacement": { "name": "Wymiana filtra" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/pt.json b/custom_components/hon/translations/pt.json index abeb471..e1fa9ad 100644 --- a/custom_components/hon/translations/pt.json +++ b/custom_components/hon/translations/pt.json @@ -917,6 +917,13 @@ "high": "Alta" }, "name": "Nível de humidade" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1788,6 +1795,13 @@ "position_5": "Fixa - Posição 5", "swing": "Oscilação" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1987,6 +2001,9 @@ }, "filter_replacement": { "name": "Substituição do filtro" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/ro.json b/custom_components/hon/translations/ro.json index 2fc4e21..9437b82 100644 --- a/custom_components/hon/translations/ro.json +++ b/custom_components/hon/translations/ro.json @@ -917,6 +917,13 @@ "high": "Crescută" }, "name": "Nivelul de umiditate" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1788,6 +1795,13 @@ "position_5": "Fix - Poziție 5", "swing": "Baleiere" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1987,6 +2001,9 @@ }, "filter_replacement": { "name": "Înlocuirea filtrului" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/ru.json b/custom_components/hon/translations/ru.json index 162fb93..eccdbf6 100644 --- a/custom_components/hon/translations/ru.json +++ b/custom_components/hon/translations/ru.json @@ -917,6 +917,13 @@ "high": "Высок." }, "name": "Уровень влажности" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1788,6 +1795,13 @@ "position_5": "Фиксированное - Позиция 5", "swing": "Качание" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1987,6 +2001,9 @@ }, "filter_replacement": { "name": "Замена фильтра" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/sk.json b/custom_components/hon/translations/sk.json index b0fb17f..16be24e 100644 --- a/custom_components/hon/translations/sk.json +++ b/custom_components/hon/translations/sk.json @@ -917,6 +917,13 @@ "high": "Vysoké" }, "name": "Úroveň vlhkosti" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1788,6 +1795,13 @@ "position_5": "Pevný - Poloha 5", "swing": "Otáčanie" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1987,6 +2001,9 @@ }, "filter_replacement": { "name": "Výmena filtra" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/sl.json b/custom_components/hon/translations/sl.json index 8eda7ec..9535fc2 100644 --- a/custom_components/hon/translations/sl.json +++ b/custom_components/hon/translations/sl.json @@ -917,6 +917,13 @@ "high": "High" }, "name": "Nivo vlažnosti" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1788,6 +1795,13 @@ "position_5": "Fiksno - Položaj 5", "swing": "Nihanje" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1987,6 +2001,9 @@ }, "filter_replacement": { "name": "Menjava filtra" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/sr.json b/custom_components/hon/translations/sr.json index ab581d1..798a79b 100644 --- a/custom_components/hon/translations/sr.json +++ b/custom_components/hon/translations/sr.json @@ -917,6 +917,13 @@ "high": "Visoka" }, "name": "Nivo vlage" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1788,6 +1795,13 @@ "position_5": "Fiksiran - Položaj 5", "swing": "Njihanje" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1987,6 +2001,9 @@ }, "filter_replacement": { "name": "Zamena filtera" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/tr.json b/custom_components/hon/translations/tr.json index ad348f0..9c2802a 100644 --- a/custom_components/hon/translations/tr.json +++ b/custom_components/hon/translations/tr.json @@ -917,6 +917,13 @@ "high": "Yüksek" }, "name": "Nem seviyesi" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1788,6 +1795,13 @@ "position_5": "Sabit - Pozisyon 5", "swing": "Salınım" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1987,6 +2001,9 @@ }, "filter_replacement": { "name": "Filtre değişimi" + }, + "power-state": { + "name": "Power State" } }, "button": { diff --git a/custom_components/hon/translations/zh.json b/custom_components/hon/translations/zh.json index d1e0fef..ad0d3fa 100644 --- a/custom_components/hon/translations/zh.json +++ b/custom_components/hon/translations/zh.json @@ -910,6 +910,13 @@ "high": "高" }, "name": "湿度水平" + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "select": { @@ -1774,6 +1781,13 @@ "position_5": "固定 - 位置 5", "swing": "摆动" } + }, + "mach_modes_wh": { + "state": { + "eco": "Eco", + "max": "Max", + "bps": "BPS" + } } }, "switch": { @@ -1973,6 +1987,9 @@ }, "filter_replacement": { "name": "更换过滤器" + }, + "power-state": { + "name": "Power State" } }, "button": {