From 6e8576c7bdfc4a44adf2535caf10accf2fc87464 Mon Sep 17 00:00:00 2001 From: Andre Basche Date: Sun, 17 Mar 2024 23:54:50 +0100 Subject: [PATCH] Add FRE appliances, #177 --- custom_components/hon/binary_sensor.py | 26 ++++++++++++++++++++++++++ custom_components/hon/button.py | 14 ++++++++++++++ custom_components/hon/const.py | 10 ++++++++++ custom_components/hon/select.py | 20 ++++++++++++++++++++ custom_components/hon/sensor.py | 23 +++++++++++++++++++++++ custom_components/hon/switch.py | 14 ++++++++++++++ 6 files changed, 107 insertions(+) diff --git a/custom_components/hon/binary_sensor.py b/custom_components/hon/binary_sensor.py index f304c3f..45774c1 100644 --- a/custom_components/hon/binary_sensor.py +++ b/custom_components/hon/binary_sensor.py @@ -284,6 +284,32 @@ BINARY_SENSORS: dict[str, tuple[HonBinarySensorEntityDescription, ...]] = { translation_key="on", ), ), + "FRE": ( + HonBinarySensorEntityDescription( + key="quickModeZ1", + name="Super Cool", + icon="mdi:snowflake", + device_class=BinarySensorDeviceClass.RUNNING, + on_value=1, + translation_key="super_cool", + ), + HonBinarySensorEntityDescription( + key="quickModeZ2", + name="Super Freeze", + icon="mdi:snowflake-variant", + device_class=BinarySensorDeviceClass.RUNNING, + on_value=1, + translation_key="super_freeze", + ), + HonBinarySensorEntityDescription( + key="doorStatusZ2", + name="Door Status", + icon="mdi:fridge", + device_class=BinarySensorDeviceClass.DOOR, + on_value=1, + translation_key="door_open", + ), + ), } BINARY_SENSORS["WD"] = unique_entities(BINARY_SENSORS["WM"], BINARY_SENSORS["TD"]) diff --git a/custom_components/hon/button.py b/custom_components/hon/button.py index 4eb7d10..7a5cf24 100644 --- a/custom_components/hon/button.py +++ b/custom_components/hon/button.py @@ -38,6 +38,20 @@ BUTTONS: dict[str, tuple[ButtonEntityDescription, ...]] = { translation_key="stop_program", ), ), + "FRE": ( + ButtonEntityDescription( + key="startProgram", + name="Program Start", + icon="mdi:play", + translation_key="start_program", + ), + ButtonEntityDescription( + key="stopProgram", + name="Program Stop", + icon="mdi:stop", + translation_key="stop_program", + ), + ), } diff --git a/custom_components/hon/const.py b/custom_components/hon/const.py index d5573a7..8ca9b07 100644 --- a/custom_components/hon/const.py +++ b/custom_components/hon/const.py @@ -29,6 +29,7 @@ APPLIANCES: dict[str, str] = { "AP": "Air Purifier", "AS": "Air Scanner", "DW": "Dish Washer", + "FRE": "Freezer", "HO": "Hood", "IH": "Induction Hob", "MW": "Microwave", @@ -70,16 +71,23 @@ HON_FAN: dict[int, str] = { # These languages are official supported by hOn LANGUAGES: list[str] = [ + "ar", # Arabic + "bg", # Bulgarian "cs", # Czech + "da", # Danish "de", # German "el", # Greek "en", # English "es", # Spanish + "fi", # Finnish "fr", # French "he", # Hebrew "hr", # Croatian + "hu", # Hungarian "it", # Italian + "nb", # Norwegian "nl", # Dutch + "nr", # Southern Ndebele "pl", # Polish "pt", # Portuguese "ro", # Romanian @@ -87,7 +95,9 @@ LANGUAGES: list[str] = [ "sk", # Slovak "sl", # Slovenian "sr", # Serbian + "sv", # Swedish "tr", # Turkish + "uk", # Ukrainian "zh", # Chinese ] diff --git a/custom_components/hon/select.py b/custom_components/hon/select.py index c55e0c5..901ee15 100644 --- a/custom_components/hon/select.py +++ b/custom_components/hon/select.py @@ -184,6 +184,26 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = { translation_key="mode", ), ), + "FRE": ( + HonConfigSelectEntityDescription( + key="startProgram.program", + name="Program", + translation_key="programs_ref", + ), + HonConfigSelectEntityDescription( + key="startProgram.zone", + name="Zone", + icon="mdi:radiobox-marked", + translation_key="ref_zones", + ), + HonSelectEntityDescription( + key="settings.tempSelZ3", + name="Temperature", + icon="mdi:thermometer", + unit_of_measurement=UnitOfTemperature.CELSIUS, + translation_key="temperature", + ), + ), } SELECTS["WD"] = unique_entities(SELECTS["WM"], SELECTS["TD"]) diff --git a/custom_components/hon/sensor.py b/custom_components/hon/sensor.py index 4c8af97..6d3ed76 100644 --- a/custom_components/hon/sensor.py +++ b/custom_components/hon/sensor.py @@ -780,6 +780,29 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { translation_key="air_quality", ), ), + "FRE": ( + HonSensorEntityDescription( + key="tempEnv", + name="Room Temperature", + icon="mdi:home-thermometer-outline", + state_class=SensorStateClass.MEASUREMENT, + device_class=SensorDeviceClass.TEMPERATURE, + native_unit_of_measurement=UnitOfTemperature.CELSIUS, + translation_key="room_temperature", + ), + HonSensorEntityDescription( + key="tempSelZ3", + name="Temperature", + icon="mdi:snowflake-thermometer", + state_class=SensorStateClass.MEASUREMENT, + device_class=SensorDeviceClass.TEMPERATURE, + native_unit_of_measurement=UnitOfTemperature.CELSIUS, + translation_key="temperature", + ), + HonSensorEntityDescription( + key="errors", name="Error", icon="mdi:math-log", translation_key="errors" + ), + ), } SENSORS["WD"] = unique_entities(SENSORS["WM"], SENSORS["TD"]) diff --git a/custom_components/hon/switch.py b/custom_components/hon/switch.py index 6bc1d2f..54931a3 100644 --- a/custom_components/hon/switch.py +++ b/custom_components/hon/switch.py @@ -375,6 +375,20 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = { translation_key="touch_tone", ), ), + "FRE": ( + HonSwitchEntityDescription( + key="quickModeZ2", + name="Super Freeze", + icon="mdi:snowflake-variant", + translation_key="super_freeze", + ), + HonSwitchEntityDescription( + key="quickModeZ1", + name="Super Cool", + icon="mdi:snowflake", + translation_key="super_cool", + ), + ), } SWITCHES["WD"] = unique_entities(SWITCHES["WD"], SWITCHES["WM"])