Compare commits
	
		
			5 Commits
		
	
	
		
			v0.8.1-bet
			...
			v0.9.0-bet
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| d3503af158 | |||
| d81b1ae712 | |||
| eb5ba43707 | |||
| efcac321b8 | |||
| 79b43b8695 | 
							
								
								
									
										73
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										73
									
								
								README.md
									
									
									
									
									
								
							| @ -16,6 +16,7 @@ Home Assistant integration for [Haier's mobile app hOn](https://hon-smarthome.co | |||||||
| - [Fridge](https://github.com/Andre0512/hon#fridge) | - [Fridge](https://github.com/Andre0512/hon#fridge) | ||||||
| - [Hob](https://github.com/Andre0512/hon#hob) [BETA] | - [Hob](https://github.com/Andre0512/hon#hob) [BETA] | ||||||
| - [Hood](https://github.com/Andre0512/hon#hood) [BETA] | - [Hood](https://github.com/Andre0512/hon#hood) [BETA] | ||||||
|  | - [Wine Cellar](https://github.com/Andre0512/hon#wine-cellar) [BETA] | ||||||
|  |  | ||||||
| ## Installation | ## Installation | ||||||
| **Method 1:** [](https://my.home-assistant.io/redirect/hacs_repository/?owner=Andre0512&repository=hon&category=integration) | **Method 1:** [](https://my.home-assistant.io/redirect/hacs_repository/?owner=Andre0512&repository=hon&category=integration) | ||||||
| @ -61,42 +62,18 @@ Translation of internal names like programs are available for all languages whic | |||||||
|  |  | ||||||
| ## Supported Models | ## 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). | 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 AD105S2SM3FA |  | ||||||
| - Haier AS20HPL1HRA | |                    | **Haier**                                                                                                        | **Hoover**                                                                                                            | **Candy**                                           | | ||||||
| - Haier AS25PBAHRA | |--------------------|------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------| | ||||||
| - Haier AS25S2SF1FA-WH | | **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        | | ||||||
| - Haier AS25TADHRA-2 | | **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 | | ||||||
| - Haier AS35TADHRA-2 | | **Washer Dryer**   | HWD100-B14979                                                                                                    | HWPS4954DAMR-11                                                                                                       | RPW41066BWMR/1-S                                    | | ||||||
| - Haier EG9012B19SU1JD | | **Oven**           | HWO60SM2F3XH                                                                                                     | HSOT3161WG                                                                                                            |                                                     | | ||||||
| - Haier HA2MTSJ68MC | | **Dish Washer**    | XIB 3B2SFS-80 <br/> XIB 6B2D3FB                                                                                  | HFB 6B2S3FX                                                                                                           |                                                     | | ||||||
| - Haier HADG6DS46BWIFI | | **Air conditioner** | AD105S2SM3FA <br/> AS20HPL1HRA <br/> AS25PBAHRA <br/> AS25S2SF1FA-WH <br/> AS25TADHRA-2 <br/> AS35TADHRA-2 <br/> |                                                                                                                       |                                                     | | ||||||
| - Haier HD80-A3959 | | **Fridge**         | HFW7720ENMB                                                                                                                 |                                                                                                                       | CCE4T620EWU                                         | | ||||||
| - Haier HW90-B14TEAM5 | | **Hob**            | HA2MTSJ68MC                                                                                                      |                                                                                                                       | CIS633SCTTWIFI                                      | | ||||||
| - Haier HW100-B14959U1 | | **Hood**           | HADG6DS46BWIFI                                                                                                   |                                                                                                                       |                                                     | | ||||||
| - 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 | ## Contribute | ||||||
| Any kind of contribution is welcome! | Any kind of contribution is welcome! | ||||||
| @ -237,11 +214,11 @@ For every device exists a hidden button which can be used to log all infos of yo | |||||||
| | --- | --- | --- | --- | | | --- | --- | --- | --- | | ||||||
| | Start Program | `hvac` | `button` | `startProgram` | | | Start Program | `hvac` | `button` | `startProgram` | | ||||||
| | Stop Program | `hvac-off` | `button` | `stopProgram` | | | Stop Program | `hvac-off` | `button` | `stopProgram` | | ||||||
|  | | Wind Speed |  | `fan` | `settings.windSpeed` | | ||||||
| #### Configs | #### Configs | ||||||
| | Name | Icon | Entity | Key | | | Name | Icon | Entity | Key | | ||||||
| | --- | --- | --- | --- | | | --- | --- | --- | --- | | ||||||
| | Light status | `lightbulb` | `number` | `startProgram.lightStatus` | | | Light status | `lightbulb` | `number` | `startProgram.lightStatus` | | ||||||
| | Wind speed | `fan` | `number` | `startProgram.windSpeed` | |  | ||||||
| #### Sensors | #### Sensors | ||||||
| | Name | Icon | Entity | Key | | | Name | Icon | Entity | Key | | ||||||
| | --- | --- | --- | --- | | | --- | --- | --- | --- | | ||||||
| @ -257,7 +234,6 @@ For every device exists a hidden button which can be used to log all infos of yo | |||||||
| | Quick Delay Time Status |  | `sensor` | `quickDelayTimeStatus` | | | Quick Delay Time Status |  | `sensor` | `quickDelayTimeStatus` | | ||||||
| | RGB Light Color | `lightbulb` | `sensor` | `rgbLightColors` | | | RGB Light Color | `lightbulb` | `sensor` | `rgbLightColors` | | ||||||
| | RGB Light Status | `lightbulb` | `sensor` | `rgbLightStatus` | | | RGB Light Status | `lightbulb` | `sensor` | `rgbLightStatus` | | ||||||
| | Wind Speed | `fan` | `sensor` | `windSpeed` | |  | ||||||
|  |  | ||||||
| ### Hob | ### Hob | ||||||
| #### Controls | #### Controls | ||||||
| @ -381,6 +357,27 @@ For every device exists a hidden button which can be used to log all infos of yo | |||||||
| | Steam level | `smoke` | `sensor` | `steamLevel` | | | Steam level | `smoke` | `sensor` | `steamLevel` | | ||||||
| | Temperature level | `thermometer` | `sensor` | `tempLevel` | | | 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 | ### Washer dryer | ||||||
| #### Controls | #### Controls | ||||||
| | Name | Icon | Entity | Key | | | Name | Icon | Entity | Key | | ||||||
|  | |||||||
| @ -72,6 +72,22 @@ CLIMATES = { | |||||||
|             translation_key="oven", |             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", | ||||||
|  |         ), | ||||||
|  |     ), | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
| @ -213,7 +229,7 @@ class HonACClimateEntity(HonEntity, ClimateEntity): | |||||||
|  |  | ||||||
|  |  | ||||||
| class HonClimateEntity(HonEntity, ClimateEntity): | class HonClimateEntity(HonEntity, ClimateEntity): | ||||||
|     entity_description = HonClimateEntityDescription |     entity_description: HonClimateEntityDescription | ||||||
|  |  | ||||||
|     def __init__(self, hass, entry, device: HonAppliance, description) -> None: |     def __init__(self, hass, entry, device: HonAppliance, description) -> None: | ||||||
|         super().__init__(hass, entry, device, description) |         super().__init__(hass, entry, device, description) | ||||||
| @ -226,7 +242,7 @@ class HonClimateEntity(HonEntity, ClimateEntity): | |||||||
|         ) |         ) | ||||||
|  |  | ||||||
|         self._attr_hvac_modes = [description.mode] |         self._attr_hvac_modes = [description.mode] | ||||||
|         if device.get("onOffStatus"): |         if "stopProgram" in device.commands: | ||||||
|             self._attr_hvac_modes += [HVACMode.OFF] |             self._attr_hvac_modes += [HVACMode.OFF] | ||||||
|             modes = [] |             modes = [] | ||||||
|         else: |         else: | ||||||
| @ -245,15 +261,15 @@ class HonClimateEntity(HonEntity, ClimateEntity): | |||||||
|         self._handle_coordinator_update(update=False) |         self._handle_coordinator_update(update=False) | ||||||
|  |  | ||||||
|     @property |     @property | ||||||
|     def target_temperature(self) -> int | None: |     def target_temperature(self) -> float | None: | ||||||
|         """Return the temperature we try to reach.""" |         """Return the temperature we try to reach.""" | ||||||
|         return int(self._device.get(self.entity_description.key)) |         return float(self._device.get(self.entity_description.key)) | ||||||
|  |  | ||||||
|     @property |     @property | ||||||
|     def current_temperature(self) -> int | None: |     def current_temperature(self) -> float | None: | ||||||
|         """Return the current temperature.""" |         """Return the current temperature.""" | ||||||
|         temp_key = self.entity_description.key.split(".")[-1].replace("Sel", "") |         temp_key = self.entity_description.key.split(".")[-1].replace("Sel", "") | ||||||
|         return int(self._device.get(temp_key)) |         return float(self._device.get(temp_key)) | ||||||
|  |  | ||||||
|     async def async_set_temperature(self, **kwargs): |     async def async_set_temperature(self, **kwargs): | ||||||
|         if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None: |         if (temperature := kwargs.get(ATTR_TEMPERATURE)) is None: | ||||||
|  | |||||||
| @ -17,6 +17,7 @@ PLATFORMS = [ | |||||||
|     "button", |     "button", | ||||||
|     "binary_sensor", |     "binary_sensor", | ||||||
|     "climate", |     "climate", | ||||||
|  |     "fan", | ||||||
| ] | ] | ||||||
|  |  | ||||||
| HON_HVAC_MODE = { | HON_HVAC_MODE = { | ||||||
| @ -111,6 +112,7 @@ TUMBLE_DRYER_PR_PHASE = { | |||||||
|     "1": "TD_CMD&CTRL.STATUS_PHASE.PHASE_HEAT_STROKE", |     "1": "TD_CMD&CTRL.STATUS_PHASE.PHASE_HEAT_STROKE", | ||||||
|     "2": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE", |     "2": "WASHING_CMD&CTRL.PHASE_DRYING.TITLE", | ||||||
|     "3": "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN", |     "3": "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN", | ||||||
|  |     "8": "unknown", | ||||||
|     "11": "WASHING_CMD&CTRL.PHASE_READY.TITLE", |     "11": "WASHING_CMD&CTRL.PHASE_READY.TITLE", | ||||||
|     "12": "unknown", |     "12": "unknown", | ||||||
|     "13": "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN", |     "13": "TD_CMD&CTRL.STATUS_PHASE.PHASE_COOLDOWN", | ||||||
|  | |||||||
							
								
								
									
										122
									
								
								custom_components/hon/fan.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										122
									
								
								custom_components/hon/fan.py
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,122 @@ | |||||||
|  | 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", |   "iot_class": "cloud_polling", | ||||||
|   "issue_tracker": "https://github.com/Andre0512/hon/issues", |   "issue_tracker": "https://github.com/Andre0512/hon/issues", | ||||||
|   "requirements": [ |   "requirements": [ | ||||||
|     "pyhOn==0.12.2" |     "pyhOn==0.13.0" | ||||||
|   ], |   ], | ||||||
|   "version": "0.8.0" |   "version": "0.9.0-beta.1" | ||||||
| } | } | ||||||
|  | |||||||
| @ -163,12 +163,6 @@ NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = { | |||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
|     "HO": ( |     "HO": ( | ||||||
|         HonNumberEntityDescription( |  | ||||||
|             key="startProgram.windSpeed", |  | ||||||
|             name="Wind speed", |  | ||||||
|             icon="mdi:fan", |  | ||||||
|             entity_category=EntityCategory.CONFIG, |  | ||||||
|         ), |  | ||||||
|         HonNumberEntityDescription( |         HonNumberEntityDescription( | ||||||
|             key="startProgram.lightStatus", |             key="startProgram.lightStatus", | ||||||
|             name="Light status", |             name="Light status", | ||||||
|  | |||||||
| @ -484,6 +484,7 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             state_class=SensorStateClass.MEASUREMENT, |             state_class=SensorStateClass.MEASUREMENT, | ||||||
|             device_class=SensorDeviceClass.TEMPERATURE, |             device_class=SensorDeviceClass.TEMPERATURE, | ||||||
|             native_unit_of_measurement=UnitOfTemperature.CELSIUS, |             native_unit_of_measurement=UnitOfTemperature.CELSIUS, | ||||||
|  |             translation_key="target_temperature", | ||||||
|         ), |         ), | ||||||
|         HonSensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="programName", |             key="programName", | ||||||
| @ -593,10 +594,78 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = { | |||||||
|             name="RGB Light Status", |             name="RGB Light Status", | ||||||
|             icon="mdi:lightbulb", |             icon="mdi:lightbulb", | ||||||
|         ), |         ), | ||||||
|  |     ), | ||||||
|  |     "WC": ( | ||||||
|         HonSensorEntityDescription( |         HonSensorEntityDescription( | ||||||
|             key="windSpeed", |             key="errors", name="Error", icon="mdi:math-log", translation_key="errors" | ||||||
|             name="Wind Speed", |         ), | ||||||
|             icon="mdi:fan", |         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", | ||||||
|         ), |         ), | ||||||
|     ), |     ), | ||||||
| } | } | ||||||
|  | |||||||
| @ -322,6 +322,17 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = { | |||||||
|             translation_key="holiday_mode", |             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"]) | SWITCHES["WD"] = unique_entities(SWITCHES["WD"], SWITCHES["WM"]) | ||||||
|  | |||||||
| @ -877,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "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": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Programm" |                 "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": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Πρόγραμμα" |                 "name": "Πρόγραμμα" | ||||||
|  |             }, | ||||||
|  |             "programs_wc": { | ||||||
|  |                 "state": { | ||||||
|  |                     "iot_champagne": "Σαμπάνια", | ||||||
|  |                     "iot_dessert": "Επιδόρπιο", | ||||||
|  |                     "iot_fortified": "Δομημένο", | ||||||
|  |                     "iot_rose": "Ροζέ", | ||||||
|  |                     "iot_whisky": "Ουίσκι", | ||||||
|  |                     "red": "Κόκκινο", | ||||||
|  |                     "sparkling": "Αφρώδες", | ||||||
|  |                     "white": "Λευκό" | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +944,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "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": { |         "switch": { | ||||||
| @ -2055,6 +2067,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Programa" |                 "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": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Programme" |                 "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": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +444,9 @@ | |||||||
|                     "tea": "Cold drinks or Beverages" |                     "tea": "Cold drinks or Beverages" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "name": "Program" | ||||||
|  |             }, | ||||||
|  |             "programs_wc": { | ||||||
|  |                 "state": {} | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -1064,6 +1067,19 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "wine": { | ||||||
|  |                 "state_attributes": { | ||||||
|  |                     "preset_mode": { | ||||||
|  |                         "name": "Wine Cellar", | ||||||
|  |                         "state": {} | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         }, | ||||||
|  |         "fan": { | ||||||
|  |             "air_extraction": { | ||||||
|  |                 "name": "Air extraction" | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  | |||||||
| @ -877,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "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": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +929,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Programma" |                 "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": { |         "select": { | ||||||
| @ -2030,6 +2042,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Programma" |                 "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": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "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": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Programa" |                 "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": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "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": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Программа" |                 "name": "Программа" | ||||||
|  |             }, | ||||||
|  |             "programs_wc": { | ||||||
|  |                 "state": { | ||||||
|  |                     "iot_champagne": "Шампанское", | ||||||
|  |                     "iot_dessert": "Десертное", | ||||||
|  |                     "iot_fortified": "Структурированное", | ||||||
|  |                     "iot_rose": "Розовое", | ||||||
|  |                     "iot_whisky": "Виски", | ||||||
|  |                     "red": "Красное", | ||||||
|  |                     "sparkling": "Игристое", | ||||||
|  |                     "white": "Белое" | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "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": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "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": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "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": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "Program" |                 "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": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +877,18 @@ | |||||||
|                     "zero_fresh": "0° Fresh" |                     "zero_fresh": "0° Fresh" | ||||||
|                 }, |                 }, | ||||||
|                 "name": "程序" |                 "name": "程序" | ||||||
|  |             }, | ||||||
|  |             "programs_wc": { | ||||||
|  |                 "state": { | ||||||
|  |                     "iot_champagne": "香槟", | ||||||
|  |                     "iot_dessert": "甜点", | ||||||
|  |                     "iot_fortified": "结构化", | ||||||
|  |                     "iot_rose": "桃红", | ||||||
|  |                     "iot_whisky": "威士忌", | ||||||
|  |                     "red": "红", | ||||||
|  |                     "sparkling": "起泡酒", | ||||||
|  |                     "white": "白葡萄酒" | ||||||
|  |                 } | ||||||
|             } |             } | ||||||
|         }, |         }, | ||||||
|         "select": { |         "select": { | ||||||
| @ -1978,6 +1990,28 @@ | |||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|  |             }, | ||||||
|  |             "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,6 +14,7 @@ Support for home appliances of Haier's mobile app hOn. | |||||||
| - [Fridge](https://github.com/Andre0512/hon#fridge) | - [Fridge](https://github.com/Andre0512/hon#fridge) | ||||||
| - [Hob](https://github.com/Andre0512/hon#hob) [BETA] | - [Hob](https://github.com/Andre0512/hon#hob) [BETA] | ||||||
| - [Hood](https://github.com/Andre0512/hon#hood) [BETA] | - [Hood](https://github.com/Andre0512/hon#hood) [BETA] | ||||||
|  | - [Wine Cellar](https://github.com/Andre0512/hon#wine-cellar) [BETA] | ||||||
|  |  | ||||||
| ## Configuration | ## Configuration | ||||||
|  |  | ||||||
| @ -50,42 +51,18 @@ Translation of internal names like programs are available for all languages whic | |||||||
|  |  | ||||||
| ## Supported Models | ## 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). | 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 AD105S2SM3FA |  | ||||||
| - Haier AS20HPL1HRA | |                    | **Haier**                                                                                                        | **Hoover**                                                                                                            | **Candy**                                           | | ||||||
| - Haier AS25PBAHRA | |--------------------|------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------| | ||||||
| - Haier AS25S2SF1FA-WH | | **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        | | ||||||
| - Haier AS25TADHRA-2 | | **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 | | ||||||
| - Haier AS35TADHRA-2 | | **Washer Dryer**   | HWD100-B14979                                                                                                    | HWPS4954DAMR-11                                                                                                       | RPW41066BWMR/1-S                                    | | ||||||
| - Haier EG9012B19SU1JD | | **Oven**           | HWO60SM2F3XH                                                                                                     | HSOT3161WG                                                                                                            |                                                     | | ||||||
| - Haier HA2MTSJ68MC | | **Dish Washer**    | XIB 3B2SFS-80 <br/> XIB 6B2D3FB                                                                                  | HFB 6B2S3FX                                                                                                           |                                                     | | ||||||
| - Haier HADG6DS46BWIFI | | **Air conditioner** | AD105S2SM3FA <br/> AS20HPL1HRA <br/> AS25PBAHRA <br/> AS25S2SF1FA-WH <br/> AS25TADHRA-2 <br/> AS35TADHRA-2 <br/> |                                                                                                                       |                                                     | | ||||||
| - Haier HD80-A3959 | | **Fridge**         | HFW7720ENMB                                                                                                                 |                                                                                                                       | CCE4T620EWU                                         | | ||||||
| - Haier HW90-B14TEAM5 | | **Hob**            | HA2MTSJ68MC                                                                                                      |                                                                                                                       | CIS633SCTTWIFI                                      | | ||||||
| - Haier HW100-B14959U1 | | **Hood**           | HADG6DS46BWIFI                                                                                                   |                                                                                                                       |                                                     | | ||||||
| - 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 | ## Contribute | ||||||
| Want to help us to support more appliances? Or add more sensors? Or help with translating? Or beautify some icons or captions?  | Want to help us to support more appliances? Or add more sensors? Or help with translating? Or beautify some icons or captions?  | ||||||
|  | |||||||
| @ -47,6 +47,7 @@ PROGRAMS = { | |||||||
|         "programs_td": "PROGRAMS.TD", |         "programs_td": "PROGRAMS.TD", | ||||||
|         "programs_wm": "PROGRAMS.WM_WD", |         "programs_wm": "PROGRAMS.WM_WD", | ||||||
|         "programs_ref": "PROGRAMS.REF", |         "programs_ref": "PROGRAMS.REF", | ||||||
|  |         "programs_wc": "PROGRAMS.WC", | ||||||
|     }, |     }, | ||||||
| } | } | ||||||
|  |  | ||||||
| @ -78,6 +79,12 @@ CLIMATE = { | |||||||
|             "state": "PROGRAMS.OV", |             "state": "PROGRAMS.OV", | ||||||
|         } |         } | ||||||
|     }, |     }, | ||||||
|  |     "wine": { | ||||||
|  |         "preset_mode": { | ||||||
|  |             "name": "WC.NAME", | ||||||
|  |             "state": "PROGRAMS.WC", | ||||||
|  |         } | ||||||
|  |     }, | ||||||
| } | } | ||||||
|  |  | ||||||
| NAMES = { | NAMES = { | ||||||
| @ -248,6 +255,7 @@ NAMES = { | |||||||
|         "freezer": "REF.ZONES.FREEZER", |         "freezer": "REF.ZONES.FREEZER", | ||||||
|         "oven": "GLOBALS.APPLIANCES_NAME.OV", |         "oven": "GLOBALS.APPLIANCES_NAME.OV", | ||||||
|     }, |     }, | ||||||
|  |     "fan": {"air_extraction": "HO.DASHBOARD.AIR_EXTRACTION_TITLE"}, | ||||||
| } | } | ||||||
|  |  | ||||||
|  |  | ||||||
|  | |||||||
| @ -14,6 +14,7 @@ from custom_components.hon.climate import CLIMATES | |||||||
| from custom_components.hon.number import NUMBERS | from custom_components.hon.number import NUMBERS | ||||||
| from custom_components.hon.select import SELECTS | from custom_components.hon.select import SELECTS | ||||||
| from custom_components.hon.sensor import SENSORS | from custom_components.hon.sensor import SENSORS | ||||||
|  | from custom_components.hon.fan import FANS | ||||||
| from custom_components.hon.switch import ( | from custom_components.hon.switch import ( | ||||||
|     SWITCHES, |     SWITCHES, | ||||||
|     HonControlSwitchEntityDescription, |     HonControlSwitchEntityDescription, | ||||||
| @ -48,6 +49,7 @@ entities = { | |||||||
|     "sensor": SENSORS, |     "sensor": SENSORS, | ||||||
|     "switch": SWITCHES, |     "switch": SWITCHES, | ||||||
|     "climate": CLIMATES, |     "climate": CLIMATES, | ||||||
|  |     "fan": FANS, | ||||||
| } | } | ||||||
|  |  | ||||||
| result = {} | result = {} | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	