Compare commits
	
		
			3 Commits
		
	
	
		
			v0.9.0-bet
			...
			v0.8
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 4b95accf02 | |||
| 998b691a8e | |||
| 6084e4a034 | 
							
								
								
									
										73
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										73
									
								
								README.md
									
									
									
									
									
								
							| @ -16,7 +16,6 @@ Home Assistant integration for [Haier's mobile app hOn](https://hon-smarthome.co | ||||
| - [Fridge](https://github.com/Andre0512/hon#fridge) | ||||
| - [Hob](https://github.com/Andre0512/hon#hob) [BETA] | ||||
| - [Hood](https://github.com/Andre0512/hon#hood) [BETA] | ||||
| - [Wine Cellar](https://github.com/Andre0512/hon#wine-cellar) [BETA] | ||||
|  | ||||
| ## Installation | ||||
| **Method 1:** [](https://my.home-assistant.io/redirect/hacs_repository/?owner=Andre0512&repository=hon&category=integration) | ||||
| @ -62,18 +61,42 @@ Translation of internal names like programs are available for all languages whic | ||||
|  | ||||
| ## Supported Models | ||||
| Support has been confirmed for these models, but many more will work. Please add already supported devices [with this form to complete the list](https://forms.gle/bTSD8qFotdZFytbf8). | ||||
|  | ||||
| |                    | **Haier**                                                                                                        | **Hoover**                                                                                                            | **Candy**                                           | | ||||
| |--------------------|------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------| | ||||
| | **Washing Machine** | HW90-B14TEAM5 <br/> HW100-B14959U1                                                                               | H-WASH 500 <br/> H7W4 48MBC-S                                                                                         | RO44 1286DWMC4-07 <br/> HW 68AMC/1-80 <br/> HWPD 69AMBC/1-S        | | ||||
| | **Tumble Dryer**   | HD80-A3959                                                                                                       | H-DRY 500 <br/> H9A3TCBEXS-S <br/> HLE C10DCE-80 <br/> NDE H10A2TCE-80 <br/> NDE H9A2TSBEXS-S <br/> NDPHY10A2TCBEXSS  | BCTDH7A1TE <br/> CSOE C10DE-80 <br/> ROE H9A3TCEX-S | | ||||
| | **Washer Dryer**   | HWD100-B14979                                                                                                    | HWPS4954DAMR-11                                                                                                       | RPW41066BWMR/1-S                                    | | ||||
| | **Oven**           | HWO60SM2F3XH                                                                                                     | HSOT3161WG                                                                                                            |                                                     | | ||||
| | **Dish Washer**    | XIB 3B2SFS-80 <br/> XIB 6B2D3FB                                                                                  | HFB 6B2S3FX                                                                                                           |                                                     | | ||||
| | **Air conditioner** | AD105S2SM3FA <br/> AS20HPL1HRA <br/> AS25PBAHRA <br/> AS25S2SF1FA-WH <br/> AS25TADHRA-2 <br/> AS35TADHRA-2 <br/> |                                                                                                                       |                                                     | | ||||
| | **Fridge**         | HFW7720ENMB                                                                                                                 |                                                                                                                       | CCE4T620EWU                                         | | ||||
| | **Hob**            | HA2MTSJ68MC                                                                                                      |                                                                                                                       | CIS633SCTTWIFI                                      | | ||||
| | **Hood**           | HADG6DS46BWIFI                                                                                                   |                                                                                                                       |                                                     | | ||||
| - Haier AD105S2SM3FA | ||||
| - Haier AS20HPL1HRA | ||||
| - Haier AS25PBAHRA | ||||
| - Haier AS25S2SF1FA-WH | ||||
| - Haier AS25TADHRA-2 | ||||
| - Haier AS35TADHRA-2 | ||||
| - Haier EG9012B19SU1JD | ||||
| - Haier HA2MTSJ68MC | ||||
| - Haier HADG6DS46BWIFI | ||||
| - Haier HD80-A3959 | ||||
| - Haier HW90-B14TEAM5 | ||||
| - Haier HW100-B14959U1 | ||||
| - Haier HWD100-B14979 | ||||
| - Haier HWO60SM2F3XH | ||||
| - Haier XIB 3B2SFS-80 | ||||
| - Haier XIB 6B2D3FB | ||||
| - Candy BCTDH7A1TE | ||||
| - Candy CCE4T620EWU | ||||
| - Candy CIS633SCTTWIFI | ||||
| - Candy CSOE C10DE-80 | ||||
| - Candy RO44 1286DWMC4-07 | ||||
| - Candy ROE H9A3TCEX-S | ||||
| - Candy RPW41066BWMR/1-S | ||||
| - Hoover H-WASH 500 | ||||
| - Hoover H-DRY 500 | ||||
| - Hoover H7W4 48MBC-S | ||||
| - Hoover H9A3TCBEXS-S | ||||
| - Hoover HFB 6B2S3FX | ||||
| - Hoover HLE C10DCE-80 | ||||
| - Hoover HSOT3161WG | ||||
| - Hoover HW 68AMC/1-80 | ||||
| - Hoover HWPD 69AMBC/1-S | ||||
| - Hoover HWPS4954DAMR-11 | ||||
| - Hoover NDE H10A2TCE-80 | ||||
| - Hoover NDE H9A2TSBEXS-S | ||||
| - Hoover NDPHY10A2TCBEXSS | ||||
|  | ||||
| ## Contribute | ||||
| Any kind of contribution is welcome! | ||||
| @ -214,11 +237,11 @@ For every device exists a hidden button which can be used to log all infos of yo | ||||
| | --- | --- | --- | --- | | ||||
| | Start Program | `hvac` | `button` | `startProgram` | | ||||
| | Stop Program | `hvac-off` | `button` | `stopProgram` | | ||||
| | Wind Speed |  | `fan` | `settings.windSpeed` | | ||||
| #### Configs | ||||
| | Name | Icon | Entity | Key | | ||||
| | --- | --- | --- | --- | | ||||
| | Light status | `lightbulb` | `number` | `startProgram.lightStatus` | | ||||
| | Wind speed | `fan` | `number` | `startProgram.windSpeed` | | ||||
| #### Sensors | ||||
| | Name | Icon | Entity | Key | | ||||
| | --- | --- | --- | --- | | ||||
| @ -234,6 +257,7 @@ For every device exists a hidden button which can be used to log all infos of yo | ||||
| | Quick Delay Time Status |  | `sensor` | `quickDelayTimeStatus` | | ||||
| | RGB Light Color | `lightbulb` | `sensor` | `rgbLightColors` | | ||||
| | RGB Light Status | `lightbulb` | `sensor` | `rgbLightStatus` | | ||||
| | Wind Speed | `fan` | `sensor` | `windSpeed` | | ||||
|  | ||||
| ### Hob | ||||
| #### Controls | ||||
| @ -357,27 +381,6 @@ For every device exists a hidden button which can be used to log all infos of yo | ||||
| | Steam level | `smoke` | `sensor` | `steamLevel` | | ||||
| | Temperature level | `thermometer` | `sensor` | `tempLevel` | | ||||
|  | ||||
| ### Wine Cellar | ||||
| #### Controls | ||||
| | Name | Icon | Entity | Key | | ||||
| | --- | --- | --- | --- | | ||||
| | Light | `lightbulb` | `switch` | `lightStatus` | | ||||
| | Sabbath Mode | `palm-tree` | `switch` | `sabbathStatus` | | ||||
| | Wine Cellar | `thermometer` | `climate` | `settings.tempSel` | | ||||
| | Wine Cellar | `thermometer` | `climate` | `settings.tempSelZ2` | | ||||
| #### Sensors | ||||
| | Name | Icon | Entity | Key | | ||||
| | --- | --- | --- | --- | | ||||
| | Error | `math-log` | `sensor` | `errors` | | ||||
| | Humidity | `water-percent` | `sensor` | `humidityZ1` | | ||||
| | Humidity 2 | `water-percent` | `sensor` | `humidityZ2` | | ||||
| | Program | `play` | `sensor` | `programName` | | ||||
| | Room Temperature | `home-thermometer-outline` | `sensor` | `tempEnv` | | ||||
| | Selected Temperature | `thermometer` | `sensor` | `tempSel` | | ||||
| | Selected Temperature 2 | `thermometer` | `sensor` | `tempSelZ2` | | ||||
| | Temperature | `thermometer` | `sensor` | `temp` | | ||||
| | Temperature 2 | `thermometer` | `sensor` | `tempZ2` | | ||||
|  | ||||
| ### Washer dryer | ||||
| #### Controls | ||||
| | Name | Icon | Entity | Key | | ||||
|  | ||||
| @ -72,22 +72,6 @@ CLIMATES = { | ||||
|             translation_key="oven", | ||||
|         ), | ||||
|     ), | ||||
|     "WC": ( | ||||
|         HonClimateEntityDescription( | ||||
|             key="settings.tempSel", | ||||
|             mode=HVACMode.COOL, | ||||
|             name="Wine Cellar", | ||||
|             icon="mdi:thermometer", | ||||
|             translation_key="wine", | ||||
|         ), | ||||
|         HonClimateEntityDescription( | ||||
|             key="settings.tempSelZ2", | ||||
|             mode=HVACMode.COOL, | ||||
|             name="Wine Cellar", | ||||
|             icon="mdi:thermometer", | ||||
|             translation_key="wine", | ||||
|         ), | ||||
|     ), | ||||
| } | ||||
|  | ||||
|  | ||||
| @ -229,7 +213,7 @@ class HonACClimateEntity(HonEntity, ClimateEntity): | ||||
|  | ||||
|  | ||||
| class HonClimateEntity(HonEntity, ClimateEntity): | ||||
|     entity_description: HonClimateEntityDescription | ||||
|     entity_description = HonClimateEntityDescription | ||||
|  | ||||
|     def __init__(self, hass, entry, device: HonAppliance, description) -> None: | ||||
|         super().__init__(hass, entry, device, description) | ||||
| @ -242,7 +226,7 @@ class HonClimateEntity(HonEntity, ClimateEntity): | ||||
|         ) | ||||
|  | ||||
|         self._attr_hvac_modes = [description.mode] | ||||
|         if "stopProgram" in device.commands: | ||||
|         if device.get("onOffStatus"): | ||||
|             self._attr_hvac_modes += [HVACMode.OFF] | ||||
|             modes = [] | ||||
|         else: | ||||
| @ -261,15 +245,15 @@ class HonClimateEntity(HonEntity, ClimateEntity): | ||||
|         self._handle_coordinator_update(update=False) | ||||
|  | ||||
|     @property | ||||
|     def target_temperature(self) -> float | None: | ||||
|     def target_temperature(self) -> int | None: | ||||
|         """Return the temperature we try to reach.""" | ||||
|         return float(self._device.get(self.entity_description.key)) | ||||
|         return int(self._device.get(self.entity_description.key)) | ||||
|  | ||||
|     @property | ||||
|     def current_temperature(self) -> float | None: | ||||
|     def current_temperature(self) -> int | None: | ||||
|         """Return the current temperature.""" | ||||
|         temp_key = self.entity_description.key.split(".")[-1].replace("Sel", "") | ||||
|         return float(self._device.get(temp_key)) | ||||
|         return int(self._device.get(temp_key)) | ||||
|  | ||||
|     async def async_set_temperature(self, **kwargs): | ||||
|         if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None: | ||||
|  | ||||
| @ -17,7 +17,6 @@ PLATFORMS = [ | ||||
|     "button", | ||||
|     "binary_sensor", | ||||
|     "climate", | ||||
|     "fan", | ||||
| ] | ||||
|  | ||||
| HON_HVAC_MODE = { | ||||
|  | ||||
| @ -1,122 +0,0 @@ | ||||
| import logging | ||||
| import math | ||||
| from dataclasses import dataclass | ||||
| from typing import Any | ||||
|  | ||||
| from homeassistant.components.fan import ( | ||||
|     FanEntityDescription, | ||||
|     FanEntity, | ||||
|     FanEntityFeature, | ||||
| ) | ||||
| from homeassistant.config_entries import ConfigEntry | ||||
| from homeassistant.core import callback | ||||
| from homeassistant.util.percentage import ( | ||||
|     percentage_to_ranged_value, | ||||
|     ranged_value_to_percentage, | ||||
| ) | ||||
| from pyhon.appliance import HonAppliance | ||||
| from pyhon.parameter.range import HonParameterRange | ||||
|  | ||||
| from .const import DOMAIN | ||||
| from .hon import HonEntity | ||||
|  | ||||
| _LOGGER = logging.getLogger(__name__) | ||||
|  | ||||
|  | ||||
| @dataclass | ||||
| class HonFanEntityDescription(FanEntityDescription): | ||||
|     pass | ||||
|  | ||||
|  | ||||
| FANS = { | ||||
|     "HO": ( | ||||
|         HonFanEntityDescription( | ||||
|             key="settings.windSpeed", | ||||
|             name="Wind Speed", | ||||
|             translation_key="air_extraction", | ||||
|         ), | ||||
|     ), | ||||
| } | ||||
|  | ||||
|  | ||||
| async def async_setup_entry(hass, entry: ConfigEntry, async_add_entities) -> None: | ||||
|     entities = [] | ||||
|     for device in hass.data[DOMAIN][entry.unique_id].appliances: | ||||
|         for description in FANS.get(device.appliance_type, []): | ||||
|             if isinstance(description, HonFanEntityDescription): | ||||
|                 if description.key not in device.available_settings or not device.get( | ||||
|                     description.key.split(".")[-1] | ||||
|                 ): | ||||
|                     continue | ||||
|                 entity = HonFanEntity(hass, entry, device, description) | ||||
|             else: | ||||
|                 continue | ||||
|             await entity.coordinator.async_config_entry_first_refresh() | ||||
|             entities.append(entity) | ||||
|     async_add_entities(entities) | ||||
|  | ||||
|  | ||||
| class HonFanEntity(HonEntity, FanEntity): | ||||
|     entity_description: HonFanEntityDescription | ||||
|  | ||||
|     def __init__(self, hass, entry, device: HonAppliance, description) -> None: | ||||
|         self._attr_supported_features = FanEntityFeature.SET_SPEED | ||||
|         self._wind_speed: HonParameterRange = device.settings.get(description.key) | ||||
|         self._speed_range = ( | ||||
|             int(self._wind_speed.values[1]), | ||||
|             int(self._wind_speed.values[-1]), | ||||
|         ) | ||||
|         self._command, self._parameter = description.key.split(".") | ||||
|  | ||||
|         super().__init__(hass, entry, device, description) | ||||
|         self._handle_coordinator_update(update=False) | ||||
|  | ||||
|     @property | ||||
|     def percentage(self) -> int | None: | ||||
|         """Return the current speed.""" | ||||
|         value = int(self._device.get(self._parameter, "0")) | ||||
|         return ranged_value_to_percentage(self._speed_range, value) | ||||
|  | ||||
|     @property | ||||
|     def speed_count(self) -> int: | ||||
|         """Return the number of speeds the fan supports.""" | ||||
|         return len(self._wind_speed.values[1:]) | ||||
|  | ||||
|     async def async_set_percentage(self, percentage: int) -> None: | ||||
|         """Set the speed percentage of the fan.""" | ||||
|         mode = math.ceil(percentage_to_ranged_value(self._speed_range, percentage)) | ||||
|         self._device.settings[self.entity_description.key].value = mode | ||||
|         await self._device.commands[self._command].send() | ||||
|         self.async_write_ha_state() | ||||
|  | ||||
|     @property | ||||
|     def is_on(self) -> bool | None: | ||||
|         """Return true if device is on.""" | ||||
|         mode = math.ceil(percentage_to_ranged_value(self._speed_range, self.percentage)) | ||||
|         return mode > self._wind_speed.min | ||||
|  | ||||
|     async def async_turn_on( | ||||
|         self, | ||||
|         percentage: int | None = None, | ||||
|         preset_mode: str | None = None, | ||||
|         **kwargs: Any, | ||||
|     ) -> None: | ||||
|         """Turn the entity on.""" | ||||
|         if percentage is None: | ||||
|             percentage = ranged_value_to_percentage( | ||||
|                 self._speed_range, int(self._wind_speed.values[1]) | ||||
|             ) | ||||
|         await self.async_set_percentage(percentage) | ||||
|  | ||||
|     async def async_turn_off(self, **kwargs: Any) -> None: | ||||
|         """Turn the entity off.""" | ||||
|         self._device.settings[self.entity_description.key].value = 0 | ||||
|         await self._device.commands[self._command].send() | ||||
|         self.async_write_ha_state() | ||||
|  | ||||
|     @callback | ||||
|     def _handle_coordinator_update(self, update=True) -> None: | ||||
|         self._wind_speed = self._device.settings.get(self.entity_description.key) | ||||
|         self._attr_percentage = self.percentage | ||||
|         if update: | ||||
|             self.async_write_ha_state() | ||||
| @ -9,7 +9,7 @@ | ||||
|   "iot_class": "cloud_polling", | ||||
|   "issue_tracker": "https://github.com/Andre0512/hon/issues", | ||||
|   "requirements": [ | ||||
|     "pyhOn==0.13.0" | ||||
|     "pyhOn==0.12.4" | ||||
|   ], | ||||
|   "version": "0.9.0-beta.1" | ||||
|   "version": "0.8.1" | ||||
| } | ||||
|  | ||||
| @ -163,6 +163,12 @@ NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = { | ||||
|         ), | ||||
|     ), | ||||
|     "HO": ( | ||||
|         HonNumberEntityDescription( | ||||
|             key="startProgram.windSpeed", | ||||
|             name="Wind speed", | ||||
|             icon="mdi:fan", | ||||
|             entity_category=EntityCategory.CONFIG, | ||||
|         ), | ||||
|         HonNumberEntityDescription( | ||||
|             key="startProgram.lightStatus", | ||||
|             name="Light status", | ||||
|  | ||||
| @ -484,7 +484,6 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             device_class=SensorDeviceClass.TEMPERATURE, | ||||
|             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||
|             translation_key="target_temperature", | ||||
|         ), | ||||
|         HonSensorEntityDescription( | ||||
|             key="programName", | ||||
| @ -594,78 +593,10 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | ||||
|             name="RGB Light Status", | ||||
|             icon="mdi:lightbulb", | ||||
|         ), | ||||
|     ), | ||||
|     "WC": ( | ||||
|         HonSensorEntityDescription( | ||||
|             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" | ||||
|         ), | ||||
|         HonSensorEntityDescription( | ||||
|             key="humidityZ1", | ||||
|             name="Humidity", | ||||
|             icon="mdi:water-percent", | ||||
|             device_class=SensorDeviceClass.HUMIDITY, | ||||
|             native_unit_of_measurement=PERCENTAGE, | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             translation_key="humidity", | ||||
|         ), | ||||
|         HonSensorEntityDescription( | ||||
|             key="humidityZ2", | ||||
|             name="Humidity 2", | ||||
|             icon="mdi:water-percent", | ||||
|             device_class=SensorDeviceClass.HUMIDITY, | ||||
|             native_unit_of_measurement=PERCENTAGE, | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             translation_key="humidity", | ||||
|         ), | ||||
|         HonSensorEntityDescription( | ||||
|             key="temp", | ||||
|             name="Temperature", | ||||
|             icon="mdi:thermometer", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||
|             translation_key="temperature", | ||||
|         ), | ||||
|         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="tempSel", | ||||
|             name="Selected Temperature", | ||||
|             icon="mdi:thermometer", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             device_class=SensorDeviceClass.TEMPERATURE, | ||||
|             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||
|             translation_key="target_temperature", | ||||
|         ), | ||||
|         HonSensorEntityDescription( | ||||
|             key="tempSelZ2", | ||||
|             name="Selected Temperature 2", | ||||
|             icon="mdi:thermometer", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             device_class=SensorDeviceClass.TEMPERATURE, | ||||
|             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||
|             translation_key="target_temperature", | ||||
|         ), | ||||
|         HonSensorEntityDescription( | ||||
|             key="tempZ2", | ||||
|             name="Temperature 2", | ||||
|             icon="mdi:thermometer", | ||||
|             state_class=SensorStateClass.MEASUREMENT, | ||||
|             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||
|             translation_key="temperature", | ||||
|         ), | ||||
|         HonSensorEntityDescription( | ||||
|             key="programName", | ||||
|             name="Program", | ||||
|             icon="mdi:play", | ||||
|             device_class=SensorDeviceClass.ENUM, | ||||
|             translation_key="programs_wc", | ||||
|             key="windSpeed", | ||||
|             name="Wind Speed", | ||||
|             icon="mdi:fan", | ||||
|         ), | ||||
|     ), | ||||
| } | ||||
|  | ||||
| @ -322,17 +322,6 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | ||||
|             translation_key="holiday_mode", | ||||
|         ), | ||||
|     ), | ||||
|     "WC": ( | ||||
|         HonSwitchEntityDescription( | ||||
|             key="sabbathStatus", | ||||
|             name="Sabbath Mode", | ||||
|             icon="mdi:palm-tree", | ||||
|             translation_key="holiday_mode", | ||||
|         ), | ||||
|         HonSwitchEntityDescription( | ||||
|             key="lightStatus", name="Light", icon="mdi:lightbulb" | ||||
|         ), | ||||
|     ), | ||||
| } | ||||
|  | ||||
| SWITCHES["WD"] = unique_entities(SWITCHES["WD"], SWITCHES["WM"]) | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Šampaňské", | ||||
|                     "iot_dessert": "Dezertní", | ||||
|                     "iot_fortified": "Strukturované", | ||||
|                     "iot_rose": "Růžové", | ||||
|                     "iot_whisky": "Whisky", | ||||
|                     "red": "Červené", | ||||
|                     "sparkling": "Šumivé", | ||||
|                     "white": "Bílé" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Vinný sklípek", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Šampaňské", | ||||
|                             "iot_dessert": "Dezertní", | ||||
|                             "iot_fortified": "Strukturované", | ||||
|                             "iot_rose": "Růžové", | ||||
|                             "iot_whisky": "Whisky", | ||||
|                             "red": "Červené", | ||||
|                             "sparkling": "Šumivé", | ||||
|                             "white": "Bílé" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Odsávání vzduchu" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Programm" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Champagner", | ||||
|                     "iot_dessert": "Dessert", | ||||
|                     "iot_fortified": "Strukturiert", | ||||
|                     "iot_rose": "Rosé", | ||||
|                     "iot_whisky": "Whisky", | ||||
|                     "red": "Rot", | ||||
|                     "sparkling": "Sekt", | ||||
|                     "white": "Weiß" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Weinklimaschrank", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Champagner", | ||||
|                             "iot_dessert": "Dessert", | ||||
|                             "iot_fortified": "Strukturiert", | ||||
|                             "iot_rose": "Rosé", | ||||
|                             "iot_whisky": "Whisky", | ||||
|                             "red": "Rot", | ||||
|                             "sparkling": "Sekt", | ||||
|                             "white": "Weiß" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Dunstabzug" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Πρόγραμμα" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Σαμπάνια", | ||||
|                     "iot_dessert": "Επιδόρπιο", | ||||
|                     "iot_fortified": "Δομημένο", | ||||
|                     "iot_rose": "Ροζέ", | ||||
|                     "iot_whisky": "Ουίσκι", | ||||
|                     "red": "Κόκκινο", | ||||
|                     "sparkling": "Αφρώδες", | ||||
|                     "white": "Λευκό" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Κάβα", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Σαμπάνια", | ||||
|                             "iot_dessert": "Επιδόρπιο", | ||||
|                             "iot_fortified": "Δομημένο", | ||||
|                             "iot_rose": "Ροζέ", | ||||
|                             "iot_whisky": "Ουίσκι", | ||||
|                             "red": "Κόκκινο", | ||||
|                             "sparkling": "Αφρώδες", | ||||
|                             "white": "Λευκό" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Εξαγωγή αέρα" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -944,18 +944,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Champagne", | ||||
|                     "iot_dessert": "Dessert", | ||||
|                     "iot_fortified": "Fortified", | ||||
|                     "iot_rose": "Rosé", | ||||
|                     "iot_whisky": "Whisky", | ||||
|                     "red": "Red", | ||||
|                     "sparkling": "Sparkling", | ||||
|                     "white": "White" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "switch": { | ||||
| @ -2067,28 +2055,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Wine Cellar", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Champagne", | ||||
|                             "iot_dessert": "Dessert", | ||||
|                             "iot_fortified": "Fortified", | ||||
|                             "iot_rose": "Rosé", | ||||
|                             "iot_whisky": "Whisky", | ||||
|                             "red": "Red", | ||||
|                             "sparkling": "Sparkling", | ||||
|                             "white": "White" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Air extraction" | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Programa" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Champán", | ||||
|                     "iot_dessert": "Postre", | ||||
|                     "iot_fortified": "Estructurado", | ||||
|                     "iot_rose": "Rosado", | ||||
|                     "iot_whisky": "Whisky", | ||||
|                     "red": "Tinto", | ||||
|                     "sparkling": "Espumoso", | ||||
|                     "white": "Blanco" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Cámara de vino", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Champán", | ||||
|                             "iot_dessert": "Postre", | ||||
|                             "iot_fortified": "Estructurado", | ||||
|                             "iot_rose": "Rosado", | ||||
|                             "iot_whisky": "Whisky", | ||||
|                             "red": "Tinto", | ||||
|                             "sparkling": "Espumoso", | ||||
|                             "white": "Blanco" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Extracción de aire" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Programme" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Champagne", | ||||
|                     "iot_dessert": "Dessert", | ||||
|                     "iot_fortified": "Corsé", | ||||
|                     "iot_rose": "Rosé", | ||||
|                     "iot_whisky": "Whisky", | ||||
|                     "red": "Rouge", | ||||
|                     "sparkling": "Pétillant", | ||||
|                     "white": "Blanc" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Cave à vin", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Champagne", | ||||
|                             "iot_dessert": "Dessert", | ||||
|                             "iot_fortified": "Corsé", | ||||
|                             "iot_rose": "Rosé", | ||||
|                             "iot_whisky": "Whisky", | ||||
|                             "red": "Rouge", | ||||
|                             "sparkling": "Pétillant", | ||||
|                             "white": "Blanc" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Extraction de l'air" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -444,9 +444,6 @@ | ||||
|                     "tea": "Cold drinks or Beverages" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": {} | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1067,19 +1064,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Wine Cellar", | ||||
|                         "state": {} | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Air extraction" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Šampanjac", | ||||
|                     "iot_dessert": "Desertno", | ||||
|                     "iot_fortified": "Strukturirano", | ||||
|                     "iot_rose": "Rosé", | ||||
|                     "iot_whisky": "Viski", | ||||
|                     "red": "Crno", | ||||
|                     "sparkling": "Pjenušavo vino", | ||||
|                     "white": "Bijelo vino" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Vinski hladnjak", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Šampanjac", | ||||
|                             "iot_dessert": "Desertno", | ||||
|                             "iot_fortified": "Strukturirano", | ||||
|                             "iot_rose": "Rosé", | ||||
|                             "iot_whisky": "Viski", | ||||
|                             "red": "Crno", | ||||
|                             "sparkling": "Pjenušavo vino", | ||||
|                             "white": "Bijelo vino" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Odvođenje zraka" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -929,18 +929,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Programma" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Champagne", | ||||
|                     "iot_dessert": "Dolce", | ||||
|                     "iot_fortified": "Strutturato", | ||||
|                     "iot_rose": "Rosé", | ||||
|                     "iot_whisky": "Whisky", | ||||
|                     "red": "Rosso", | ||||
|                     "sparkling": "Bollicine", | ||||
|                     "white": "Bianco" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -2042,28 +2030,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Cantinetta", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Champagne", | ||||
|                             "iot_dessert": "Dolce", | ||||
|                             "iot_fortified": "Strutturato", | ||||
|                             "iot_rose": "Rosé", | ||||
|                             "iot_whisky": "Whisky", | ||||
|                             "red": "Rosso", | ||||
|                             "sparkling": "Bollicine", | ||||
|                             "white": "Bianco" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Aspirazione aria" | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Programma" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Champagne", | ||||
|                     "iot_dessert": "Dessert", | ||||
|                     "iot_fortified": "Gestructureerd", | ||||
|                     "iot_rose": "Rosé", | ||||
|                     "iot_whisky": "Whisky", | ||||
|                     "red": "Rood", | ||||
|                     "sparkling": "Mousserend", | ||||
|                     "white": "Wit" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Wijnkelder", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Champagne", | ||||
|                             "iot_dessert": "Dessert", | ||||
|                             "iot_fortified": "Gestructureerd", | ||||
|                             "iot_rose": "Rosé", | ||||
|                             "iot_whisky": "Whisky", | ||||
|                             "red": "Rood", | ||||
|                             "sparkling": "Mousserend", | ||||
|                             "white": "Wit" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Luchtafvoer" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Szampan", | ||||
|                     "iot_dessert": "Deser", | ||||
|                     "iot_fortified": "Struktura", | ||||
|                     "iot_rose": "Różowe", | ||||
|                     "iot_whisky": "Whisky", | ||||
|                     "red": "Czerwony", | ||||
|                     "sparkling": "Musujące", | ||||
|                     "white": "Białe" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Piwniczka z winami", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Szampan", | ||||
|                             "iot_dessert": "Deser", | ||||
|                             "iot_fortified": "Struktura", | ||||
|                             "iot_rose": "Różowe", | ||||
|                             "iot_whisky": "Whisky", | ||||
|                             "red": "Czerwony", | ||||
|                             "sparkling": "Musujące", | ||||
|                             "white": "Białe" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Wyciąg powietrza" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Programa" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Champanhe", | ||||
|                     "iot_dessert": "Digestivo", | ||||
|                     "iot_fortified": "Encorpado", | ||||
|                     "iot_rose": "Rosé", | ||||
|                     "iot_whisky": "Whisky", | ||||
|                     "red": "Vermelho", | ||||
|                     "sparkling": "Espumante", | ||||
|                     "white": "Branco" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Garrafeira", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Champanhe", | ||||
|                             "iot_dessert": "Digestivo", | ||||
|                             "iot_fortified": "Encorpado", | ||||
|                             "iot_rose": "Rosé", | ||||
|                             "iot_whisky": "Whisky", | ||||
|                             "red": "Vermelho", | ||||
|                             "sparkling": "Espumante", | ||||
|                             "white": "Branco" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Extração de ar" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Șampanie", | ||||
|                     "iot_dessert": "Desert", | ||||
|                     "iot_fortified": "Structurat", | ||||
|                     "iot_rose": "Roze", | ||||
|                     "iot_whisky": "Whisky", | ||||
|                     "red": "Roșu", | ||||
|                     "sparkling": "Spumant", | ||||
|                     "white": "Alb" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Cramă", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Șampanie", | ||||
|                             "iot_dessert": "Desert", | ||||
|                             "iot_fortified": "Structurat", | ||||
|                             "iot_rose": "Roze", | ||||
|                             "iot_whisky": "Whisky", | ||||
|                             "red": "Roșu", | ||||
|                             "sparkling": "Spumant", | ||||
|                             "white": "Alb" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Extracția aerului" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Программа" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Шампанское", | ||||
|                     "iot_dessert": "Десертное", | ||||
|                     "iot_fortified": "Структурированное", | ||||
|                     "iot_rose": "Розовое", | ||||
|                     "iot_whisky": "Виски", | ||||
|                     "red": "Красное", | ||||
|                     "sparkling": "Игристое", | ||||
|                     "white": "Белое" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Винный шкаф", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Шампанское", | ||||
|                             "iot_dessert": "Десертное", | ||||
|                             "iot_fortified": "Структурированное", | ||||
|                             "iot_rose": "Розовое", | ||||
|                             "iot_whisky": "Виски", | ||||
|                             "red": "Красное", | ||||
|                             "sparkling": "Игристое", | ||||
|                             "white": "Белое" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Отвод воздуха" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Šampanské", | ||||
|                     "iot_dessert": "Dezertné", | ||||
|                     "iot_fortified": "Štruktúrované", | ||||
|                     "iot_rose": "Ružové", | ||||
|                     "iot_whisky": "Whisky", | ||||
|                     "red": "Červené", | ||||
|                     "sparkling": "Šumivé", | ||||
|                     "white": "Biele" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Vinotéka", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Šampanské", | ||||
|                             "iot_dessert": "Dezertné", | ||||
|                             "iot_fortified": "Štruktúrované", | ||||
|                             "iot_rose": "Ružové", | ||||
|                             "iot_whisky": "Whisky", | ||||
|                             "red": "Červené", | ||||
|                             "sparkling": "Šumivé", | ||||
|                             "white": "Biele" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Odsávanie vzduchu" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Šampanjec", | ||||
|                     "iot_dessert": "Sladica", | ||||
|                     "iot_fortified": "Strukturirano", | ||||
|                     "iot_rose": "Rose", | ||||
|                     "iot_whisky": "Viski", | ||||
|                     "red": "Rdeče", | ||||
|                     "sparkling": "Peneče vino", | ||||
|                     "white": "Belo" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Vinska klet", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Šampanjec", | ||||
|                             "iot_dessert": "Sladica", | ||||
|                             "iot_fortified": "Strukturirano", | ||||
|                             "iot_rose": "Rose", | ||||
|                             "iot_whisky": "Viski", | ||||
|                             "red": "Rdeče", | ||||
|                             "sparkling": "Peneče vino", | ||||
|                             "white": "Belo" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Odvajanje zraka" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Šampanjac", | ||||
|                     "iot_dessert": "Desert", | ||||
|                     "iot_fortified": "Strukturisano", | ||||
|                     "iot_rose": "Rosé", | ||||
|                     "iot_whisky": "Viski", | ||||
|                     "red": "Crvena", | ||||
|                     "sparkling": "Penušavo", | ||||
|                     "white": "Belo" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Vinska vitrina", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Šampanjac", | ||||
|                             "iot_dessert": "Desert", | ||||
|                             "iot_fortified": "Strukturisano", | ||||
|                             "iot_rose": "Rosé", | ||||
|                             "iot_whisky": "Viski", | ||||
|                             "red": "Crvena", | ||||
|                             "sparkling": "Penušavo", | ||||
|                             "white": "Belo" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Usisavanje vazduha" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "Program" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "Şampanya", | ||||
|                     "iot_dessert": "Tatlı", | ||||
|                     "iot_fortified": "Gövdeli", | ||||
|                     "iot_rose": "Roze", | ||||
|                     "iot_whisky": "Viski", | ||||
|                     "red": "Kırmızı", | ||||
|                     "sparkling": "Köpüklü", | ||||
|                     "white": "Beyaz" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "Şarap Mahzeni", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "Şampanya", | ||||
|                             "iot_dessert": "Tatlı", | ||||
|                             "iot_fortified": "Gövdeli", | ||||
|                             "iot_rose": "Roze", | ||||
|                             "iot_whisky": "Viski", | ||||
|                             "red": "Kırmızı", | ||||
|                             "sparkling": "Köpüklü", | ||||
|                             "white": "Beyaz" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "Hava tahliyesi" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
| @ -877,18 +877,6 @@ | ||||
|                     "zero_fresh": "0° Fresh" | ||||
|                 }, | ||||
|                 "name": "程序" | ||||
|             }, | ||||
|             "programs_wc": { | ||||
|                 "state": { | ||||
|                     "iot_champagne": "香槟", | ||||
|                     "iot_dessert": "甜点", | ||||
|                     "iot_fortified": "结构化", | ||||
|                     "iot_rose": "桃红", | ||||
|                     "iot_whisky": "威士忌", | ||||
|                     "red": "红", | ||||
|                     "sparkling": "起泡酒", | ||||
|                     "white": "白葡萄酒" | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "select": { | ||||
| @ -1990,28 +1978,6 @@ | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             }, | ||||
|             "wine": { | ||||
|                 "state_attributes": { | ||||
|                     "preset_mode": { | ||||
|                         "name": "酒窖", | ||||
|                         "state": { | ||||
|                             "iot_champagne": "香槟", | ||||
|                             "iot_dessert": "甜点", | ||||
|                             "iot_fortified": "结构化", | ||||
|                             "iot_rose": "桃红", | ||||
|                             "iot_whisky": "威士忌", | ||||
|                             "red": "红", | ||||
|                             "sparkling": "起泡酒", | ||||
|                             "white": "白葡萄酒" | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         "fan": { | ||||
|             "air_extraction": { | ||||
|                 "name": "抽气" | ||||
|             } | ||||
|         } | ||||
|     }, | ||||
|  | ||||
							
								
								
									
										49
									
								
								info.md
									
									
									
									
									
								
							
							
						
						
									
										49
									
								
								info.md
									
									
									
									
									
								
							| @ -14,7 +14,6 @@ Support for home appliances of Haier's mobile app hOn. | ||||
| - [Fridge](https://github.com/Andre0512/hon#fridge) | ||||
| - [Hob](https://github.com/Andre0512/hon#hob) [BETA] | ||||
| - [Hood](https://github.com/Andre0512/hon#hood) [BETA] | ||||
| - [Wine Cellar](https://github.com/Andre0512/hon#wine-cellar) [BETA] | ||||
|  | ||||
| ## Configuration | ||||
|  | ||||
| @ -51,18 +50,42 @@ Translation of internal names like programs are available for all languages whic | ||||
|  | ||||
| ## Supported Models | ||||
| Support has been confirmed for these models, but many more will work. Please add already supported devices [with this form to complete the list](https://forms.gle/bTSD8qFotdZFytbf8). | ||||
|  | ||||
| |                    | **Haier**                                                                                                        | **Hoover**                                                                                                            | **Candy**                                           | | ||||
| |--------------------|------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------| | ||||
| | **Washing Machine** | HW90-B14TEAM5 <br/> HW100-B14959U1                                                                               | H-WASH 500 <br/> H7W4 48MBC-S                                                                                         | RO44 1286DWMC4-07 <br/> HW 68AMC/1-80 <br/> HWPD 69AMBC/1-S        | | ||||
| | **Tumble Dryer**   | HD80-A3959                                                                                                       | H-DRY 500 <br/> H9A3TCBEXS-S <br/> HLE C10DCE-80 <br/> NDE H10A2TCE-80 <br/> NDE H9A2TSBEXS-S <br/> NDPHY10A2TCBEXSS  | BCTDH7A1TE <br/> CSOE C10DE-80 <br/> ROE H9A3TCEX-S | | ||||
| | **Washer Dryer**   | HWD100-B14979                                                                                                    | HWPS4954DAMR-11                                                                                                       | RPW41066BWMR/1-S                                    | | ||||
| | **Oven**           | HWO60SM2F3XH                                                                                                     | HSOT3161WG                                                                                                            |                                                     | | ||||
| | **Dish Washer**    | XIB 3B2SFS-80 <br/> XIB 6B2D3FB                                                                                  | HFB 6B2S3FX                                                                                                           |                                                     | | ||||
| | **Air conditioner** | AD105S2SM3FA <br/> AS20HPL1HRA <br/> AS25PBAHRA <br/> AS25S2SF1FA-WH <br/> AS25TADHRA-2 <br/> AS35TADHRA-2 <br/> |                                                                                                                       |                                                     | | ||||
| | **Fridge**         | HFW7720ENMB                                                                                                                 |                                                                                                                       | CCE4T620EWU                                         | | ||||
| | **Hob**            | HA2MTSJ68MC                                                                                                      |                                                                                                                       | CIS633SCTTWIFI                                      | | ||||
| | **Hood**           | HADG6DS46BWIFI                                                                                                   |                                                                                                                       |                                                     | | ||||
| - Haier AD105S2SM3FA | ||||
| - Haier AS20HPL1HRA | ||||
| - Haier AS25PBAHRA | ||||
| - Haier AS25S2SF1FA-WH | ||||
| - Haier AS25TADHRA-2 | ||||
| - Haier AS35TADHRA-2 | ||||
| - Haier EG9012B19SU1JD | ||||
| - Haier HA2MTSJ68MC | ||||
| - Haier HADG6DS46BWIFI | ||||
| - Haier HD80-A3959 | ||||
| - Haier HW90-B14TEAM5 | ||||
| - Haier HW100-B14959U1 | ||||
| - Haier HWD100-B14979 | ||||
| - Haier HWO60SM2F3XH | ||||
| - Haier XIB 3B2SFS-80 | ||||
| - Haier XIB 6B2D3FB | ||||
| - Candy BCTDH7A1TE | ||||
| - Candy CCE4T620EWU | ||||
| - Candy CIS633SCTTWIFI | ||||
| - Candy CSOE C10DE-80 | ||||
| - Candy RO44 1286DWMC4-07 | ||||
| - Candy ROE H9A3TCEX-S | ||||
| - Candy RPW41066BWMR/1-S | ||||
| - Hoover H-WASH 500 | ||||
| - Hoover H-DRY 500 | ||||
| - Hoover H7W4 48MBC-S | ||||
| - Hoover H9A3TCBEXS-S | ||||
| - Hoover HFB 6B2S3FX | ||||
| - Hoover HLE C10DCE-80 | ||||
| - Hoover HSOT3161WG | ||||
| - Hoover HW 68AMC/1-80 | ||||
| - Hoover HWPD 69AMBC/1-S | ||||
| - Hoover HWPS4954DAMR-11 | ||||
| - Hoover NDE H10A2TCE-80 | ||||
| - Hoover NDE H9A2TSBEXS-S | ||||
| - Hoover NDPHY10A2TCBEXSS | ||||
|  | ||||
| ## Contribute | ||||
| Want to help us to support more appliances? Or add more sensors? Or help with translating? Or beautify some icons or captions?  | ||||
|  | ||||
| @ -47,7 +47,6 @@ PROGRAMS = { | ||||
|         "programs_td": "PROGRAMS.TD", | ||||
|         "programs_wm": "PROGRAMS.WM_WD", | ||||
|         "programs_ref": "PROGRAMS.REF", | ||||
|         "programs_wc": "PROGRAMS.WC", | ||||
|     }, | ||||
| } | ||||
|  | ||||
| @ -79,12 +78,6 @@ CLIMATE = { | ||||
|             "state": "PROGRAMS.OV", | ||||
|         } | ||||
|     }, | ||||
|     "wine": { | ||||
|         "preset_mode": { | ||||
|             "name": "WC.NAME", | ||||
|             "state": "PROGRAMS.WC", | ||||
|         } | ||||
|     }, | ||||
| } | ||||
|  | ||||
| NAMES = { | ||||
| @ -255,7 +248,6 @@ NAMES = { | ||||
|         "freezer": "REF.ZONES.FREEZER", | ||||
|         "oven": "GLOBALS.APPLIANCES_NAME.OV", | ||||
|     }, | ||||
|     "fan": {"air_extraction": "HO.DASHBOARD.AIR_EXTRACTION_TITLE"}, | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| @ -14,7 +14,6 @@ from custom_components.hon.climate import CLIMATES | ||||
| from custom_components.hon.number import NUMBERS | ||||
| from custom_components.hon.select import SELECTS | ||||
| from custom_components.hon.sensor import SENSORS | ||||
| from custom_components.hon.fan import FANS | ||||
| from custom_components.hon.switch import ( | ||||
|     SWITCHES, | ||||
|     HonControlSwitchEntityDescription, | ||||
| @ -49,7 +48,6 @@ entities = { | ||||
|     "sensor": SENSORS, | ||||
|     "switch": SWITCHES, | ||||
|     "climate": CLIMATES, | ||||
|     "fan": FANS, | ||||
| } | ||||
|  | ||||
| result = {} | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	