Compare commits

...

5 Commits

Author SHA1 Message Date
8d6a6a509b Bump version 2023-07-19 19:59:40 +02:00
49ab7f605b Add compatibility documentation 2023-07-14 00:21:21 +02:00
79e901d34c Bump version 2023-07-12 00:23:28 +02:00
fb09c2e559 Improve hood controls 2023-07-12 00:20:35 +02:00
f3325f0ff5 Improve icons/translations of air purifier #72 2023-07-12 00:18:44 +02:00
29 changed files with 375 additions and 38 deletions

View File

@ -45,12 +45,12 @@ Support has been confirmed for these models, but many more will work. Please add
| **Washer Dryer** | HWD100-B14979 | HDQ 496AMBS/1-S <br/> HWPS4954DAMR-11 | RPW41066BWMR/1-S | | **Washer Dryer** | HWD100-B14979 | HDQ 496AMBS/1-S <br/> HWPS4954DAMR-11 | RPW41066BWMR/1-S |
| **Oven** | HWO60SM2F3XH | HSOT3161WG | | | **Oven** | HWO60SM2F3XH | HSOT3161WG | |
| **Dish Washer** | XIB 3B2SFS-80 <br/> XIB 6B2D3FB | HFB 6B2S3FX | | | **Dish Washer** | XIB 3B2SFS-80 <br/> XIB 6B2D3FB | HFB 6B2S3FX | |
| **Air Conditioner** | AD105S2SM3FA <br/> AS09TS4HRA-M <br/> AS20HPL1HRA <br/> AS25PBAHRA <br/> AS25S2SF1FA-WH <br/> AS25TADHRA-2 <br/> AS35PBAHRA <br/> AS35S2SF1FA-WH <br/> AS35S2SF2FA-3 <br/> AS35TADHRA-2 <br/> AS35TAMHRA-C | | | | **Air Conditioner** | AD105S2SM3FA <br/> AS09TS4HRA-M <br/> AS20HPL1HRA <br/> AS25PBAHRA <br/> AS25S2SF1FA-WH <br/> AS25TADHRA-2 <br/> AS35PBAHRA <br/> AS35S2SF1FA-WH <br/> AS35S2SF2FA-3 <br/> AS35TADHRA-2 <br/> AS35TAMHRA-C | | CY-12TAIN |
| **Fridge** | HFW7720ENMB | | CCE4T620EWU | | **Fridge** | HFW7720ENMB | | CCE4T620EWU |
| **Hob** | HA2MTSJ68MC | | CIS633SCTTWIFI | | **Hob** | HA2MTSJ68MC | | CIS633SCTTWIFI |
| **Hood** | HADG6DS46BWIFI | | | | **Hood** | HADG6DS46BWIFI | | |
| **Wine Cellar** | HWS247FDU1 | | | | **Wine Cellar** | HWS247FDU1 | | |
| **Air Purifier** | | HHP50CA001 | | | **Air Purifier** | | HHP30C011 <br/> HHP50CA001 <br/> HHP50CA011 | |
| Please add your appliances data to our [hon-test-data collection](https://github.com/Andre0512/hon-test-data). <br/>This helps us to develop new features and not to break compatibility in newer versions. | | Please add your appliances data to our [hon-test-data collection](https://github.com/Andre0512/hon-test-data). <br/>This helps us to develop new features and not to break compatibility in newer versions. |
@ -78,6 +78,19 @@ Translation of internal names like programs are available for all languages whic
* 🇪🇸 Spanish * 🇪🇸 Spanish
* 🇹🇷 Turkish * 🇹🇷 Turkish
## Compatiblity
Haier offers different apps for different markets. Some appliances are compatible with more than one app. This integration only supports appliances that can be controlled via hOn. Please download the hOn app and check compatibilty before you open an issue.
The apps on this (incomplete) list have been requested so far:
| App | Main Market | Supported | Alternative |
|-----------------|---------------|-----------------------------------------|---------------------------------------------------------------------------------|
| Haier hOn | Europe | :heavy_check_mark: | |
| Candy simply-Fi | Europe | :grey_question: (only newer appliances) | [ofalvai/home-assistant-candy](https://github.com/ofalvai/home-assistant-candy) |
| Hoover Wizard | Europe | :grey_question: (only newer appliances) | |
| Haier Uhome | China | :x: | [banto6/haier](https://github.com/banto6/haier) |
| Haier U+ | China | :x: | |
| GE SmartHQ | North America | :x: | [simbaja/ha_gehome](https://github.com/simbaja/ha_gehome) |
## Examples ## Examples
### Washing Machine ### Washing Machine
![washing_machine.png](assets/washing_machine.png) ![washing_machine.png](assets/washing_machine.png)
@ -181,7 +194,7 @@ For every device exists a button under diagnostics which can be used to log all
| --- | --- | --- | --- | | --- | --- | --- | --- |
| Aroma Time Off | `scent-off` | `number` | `settings.aromaTimeOff` | | Aroma Time Off | `scent-off` | `number` | `settings.aromaTimeOff` |
| Aroma Time On | `scent` | `number` | `settings.aromaTimeOn` | | Aroma Time On | `scent` | `number` | `settings.aromaTimeOn` |
| Diffuser Level | `air-filter` | `select` | `settings.aromaStatus` | | Diffuser Level | `air-purifier` | `select` | `settings.aromaStatus` |
| Light status | | `light` | `settings.lightStatus` | | Light status | | `light` | `settings.lightStatus` |
| Lock Status | | `lock` | `lockStatus` | | Lock Status | | `lock` | `lockStatus` |
| Mode | `play` | `select` | `settings.machMode` | | Mode | `play` | `select` | `settings.machMode` |
@ -190,19 +203,19 @@ For every device exists a button under diagnostics which can be used to log all
#### Sensors #### Sensors
| Name | Icon | Entity | Key | | Name | Icon | Entity | Key |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| Air Quality | | `sensor` | `airQuality` | | Air Quality | `weather-dust` | `sensor` | `airQuality` |
| CO Level | | `sensor` | `coLevel` | | CO Level | | `sensor` | `coLevel` |
| Error | `math-log` | `sensor` | `errors` | | Error | `math-log` | `sensor` | `errors` |
| Humidity | | `sensor` | `humidityIndoor` | | Humidity | | `sensor` | `humidityIndoor` |
| Main Filter Status | | `sensor` | `mainFilterStatus` | | Main Filter Status | `air-filter` | `sensor` | `mainFilterStatus` |
| On | `power-cycle` | `binary_sensor` | `attributes.parameters.onOffStatus` | | On | `power-cycle` | `binary_sensor` | `attributes.parameters.onOffStatus` |
| PM 10 | | `sensor` | `pm10ValueIndoor` | | PM 10 | | `sensor` | `pm10ValueIndoor` |
| PM 2.5 | | `sensor` | `pm2p5ValueIndoor` | | PM 2.5 | | `sensor` | `pm2p5ValueIndoor` |
| Pre Filter Status | | `sensor` | `preFilterStatus` | | Pre Filter Status | `air-filter` | `sensor` | `preFilterStatus` |
| Temperature | | `sensor` | `temp` | | Temperature | | `sensor` | `temp` |
| Total Work Time | | `sensor` | `totalWorkTime` | | Total Work Time | | `sensor` | `totalWorkTime` |
| VOC | | `sensor` | `vocValueIndoor` | | VOC | | `sensor` | `vocValueIndoor` |
| Wind Speed | | `sensor` | `windSpeed` | | Wind Speed | `fan` | `sensor` | `windSpeed` |
### Dish Washer ### Dish Washer
#### Controls #### Controls
@ -247,9 +260,8 @@ For every device exists a button under diagnostics which can be used to log all
#### Controls #### Controls
| Name | Icon | Entity | Key | | Name | Icon | Entity | Key |
| --- | --- | --- | --- | | --- | --- | --- | --- |
| Light status | | `light` | `startProgram.lightStatus` | | Hood | `hvac` | `switch` | `startProgram` / `stopProgram` |
| Start Program | `hvac` | `button` | `startProgram` | | Light status | | `light` | `settings.lightStatus` |
| Stop Program | `hvac-off` | `button` | `stopProgram` |
| Wind Speed | | `fan` | `settings.windSpeed` | | Wind Speed | | `fan` | `settings.windSpeed` |
#### Sensors #### Sensors
| Name | Icon | Entity | Key | | Name | Icon | Entity | Key |

View File

@ -35,20 +35,6 @@ BUTTONS: dict[str, tuple[ButtonEntityDescription, ...]] = {
translation_key="stop_program", translation_key="stop_program",
), ),
), ),
"HO": (
ButtonEntityDescription(
key="startProgram",
name="Start Program",
icon="mdi:hvac",
translation_key="start_program",
),
ButtonEntityDescription(
key="stopProgram",
name="Stop Program",
icon="mdi:hvac-off",
translation_key="stop_program",
),
),
} }

View File

@ -63,10 +63,6 @@ class HonFanEntity(HonEntity, FanEntity):
def __init__(self, hass, entry, device: HonAppliance, description) -> None: def __init__(self, hass, entry, device: HonAppliance, description) -> None:
self._attr_supported_features = FanEntityFeature.SET_SPEED self._attr_supported_features = FanEntityFeature.SET_SPEED
self._wind_speed: HonParameterRange = device.settings.get(description.key) 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(".") self._command, self._parameter = description.key.split(".")
super().__init__(hass, entry, device, description) super().__init__(hass, entry, device, description)
@ -118,6 +114,15 @@ class HonFanEntity(HonEntity, FanEntity):
@callback @callback
def _handle_coordinator_update(self, update=True) -> None: def _handle_coordinator_update(self, update=True) -> None:
self._wind_speed = self._device.settings.get(self.entity_description.key) self._wind_speed = self._device.settings.get(self.entity_description.key)
self._attr_percentage = self.percentage if len(self._wind_speed.values) > 1:
self._speed_range = (
int(self._wind_speed.values[1]),
int(self._wind_speed.values[-1]),
)
self._attr_percentage = self.percentage
if update: if update:
self.async_write_ha_state() self.async_write_ha_state()
@property
def available(self) -> bool:
return super().available and len(self._wind_speed.values) > 1

View File

@ -28,7 +28,7 @@ LIGHTS = {
), ),
"HO": ( "HO": (
LightEntityDescription( LightEntityDescription(
key="startProgram.lightStatus", key="settings.lightStatus",
name="Light status", name="Light status",
translation_key="light", translation_key="light",
), ),
@ -76,8 +76,7 @@ class HonLightEntity(HonEntity, LightEntity):
@property @property
def is_on(self) -> bool: def is_on(self) -> bool:
"""Return true if light is on.""" """Return true if light is on."""
light = self._device.settings.get(self.entity_description.key) return self._device.get(self.entity_description.key.split(".")[-1]) > 0
return light.value != light.min
async def async_turn_on(self, **kwargs: Any) -> None: async def async_turn_on(self, **kwargs: Any) -> None:
"""Turn on or control the light.""" """Turn on or control the light."""
@ -120,3 +119,10 @@ class HonLightEntity(HonEntity, LightEntity):
self._attr_brightness = self.brightness self._attr_brightness = self.brightness
if update: if update:
self.async_write_ha_state() self.async_write_ha_state()
@property
def available(self) -> bool:
return (
super().available
and len(self._device.settings.get(self.entity_description.key).values) > 1
)

View File

@ -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.14.9" "pyhOn==0.14.10"
], ],
"version": "0.9.0-beta.10" "version": "0.9.1-beta.1"
} }

View File

@ -153,7 +153,7 @@ SELECTS = {
name="Diffuser Level", name="Diffuser Level",
option_list=const.AP_DIFFUSER_LEVEL, option_list=const.AP_DIFFUSER_LEVEL,
translation_key="diffuser", translation_key="diffuser",
icon="mdi:air-filter", icon="mdi:air-purifier",
), ),
HonSelectEntityDescription( HonSelectEntityDescription(
key="settings.machMode", key="settings.machMode",

View File

@ -688,11 +688,15 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
HonSensorEntityDescription( HonSensorEntityDescription(
key="mainFilterStatus", key="mainFilterStatus",
name="Main Filter Status", name="Main Filter Status",
icon="mdi:air-filter",
translation_key="filter_life",
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
), ),
HonSensorEntityDescription( HonSensorEntityDescription(
key="preFilterStatus", key="preFilterStatus",
name="Pre Filter Status", name="Pre Filter Status",
icon="mdi:air-filter",
translation_key="filter_cleaning",
native_unit_of_measurement=PERCENTAGE, native_unit_of_measurement=PERCENTAGE,
), ),
HonSensorEntityDescription( HonSensorEntityDescription(
@ -746,10 +750,17 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
native_unit_of_measurement=UnitOfTemperature.CELSIUS, native_unit_of_measurement=UnitOfTemperature.CELSIUS,
translation_key="temperature", translation_key="temperature",
), ),
HonSensorEntityDescription(key="windSpeed", name="Wind Speed"), HonSensorEntityDescription(
key="windSpeed",
name="Wind Speed",
icon="mdi:fan",
translation_key="fan_speed",
),
HonSensorEntityDescription( HonSensorEntityDescription(
key="airQuality", key="airQuality",
name="Air Quality", name="Air Quality",
icon="mdi:weather-dust",
translation_key="air_quality",
), ),
), ),
} }

View File

@ -337,6 +337,16 @@ SWITCHES: dict[str, tuple[HonSwitchEntityDescription, ...]] = {
translation_key="holiday_mode", translation_key="holiday_mode",
), ),
), ),
"HO": (
HonControlSwitchEntityDescription(
key="onOffStatus",
name="Hood",
icon="mdi:hvac",
turn_on_key="startProgram",
turn_off_key="stopProgram",
translation_key="hood",
),
),
"AP": ( "AP": (
HonSwitchEntityDescription( HonSwitchEntityDescription(
key="touchToneStatus", key="touchToneStatus",
@ -438,11 +448,15 @@ class HonControlSwitchEntity(HonEntity, SwitchEntity):
return self._device.get(self.entity_description.key, False) return self._device.get(self.entity_description.key, False)
async def async_turn_on(self, **kwargs: Any) -> None: async def async_turn_on(self, **kwargs: Any) -> None:
self._device.sync_command(self.entity_description.turn_on_key, "settings")
await self.coordinator.async_refresh()
await self._device.commands[self.entity_description.turn_on_key].send() await self._device.commands[self.entity_description.turn_on_key].send()
self._device.attributes[self.entity_description.key] = True self._device.attributes[self.entity_description.key] = True
self.async_write_ha_state() self.async_write_ha_state()
async def async_turn_off(self, **kwargs: Any) -> None: async def async_turn_off(self, **kwargs: Any) -> None:
self._device.sync_command(self.entity_description.turn_off_key, "settings")
await self.coordinator.async_refresh()
await self._device.commands[self.entity_description.turn_off_key].send() await self._device.commands[self.entity_description.turn_off_key].send()
self._device.attributes[self.entity_description.key] = False self._device.attributes[self.entity_description.key] = False
self.async_write_ha_state() self.async_write_ha_state()

View File

@ -875,6 +875,18 @@
"synthetic": "Synthetic" "synthetic": "Synthetic"
}, },
"name": "Úroveň páry" "name": "Úroveň páry"
},
"filter_cleaning": {
"name": "Čištění filtru"
},
"filter_life": {
"name": "Životnost filtru"
},
"air_quality": {
"name": "Kvalita vzduchu"
},
"fan_speed": {
"name": "Rychlost ventilátoru"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Hygienický plus" "name": "Hygienický plus"
},
"hood": {
"name": "Odsavač par"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -875,6 +875,18 @@
"synthetic": "Synthetik" "synthetic": "Synthetik"
}, },
"name": "Dampfstufe" "name": "Dampfstufe"
},
"filter_cleaning": {
"name": "Reinigung der Filter"
},
"filter_life": {
"name": "Filterlebensdauer"
},
"air_quality": {
"name": "Luftqualität"
},
"fan_speed": {
"name": "Gebläsegeschwindigkeit"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Hygiene plus" "name": "Hygiene plus"
},
"hood": {
"name": "Abzugshaube"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -875,6 +875,18 @@
"synthetic": "Συνθετικά" "synthetic": "Συνθετικά"
}, },
"name": "Επίπεδο ατμού" "name": "Επίπεδο ατμού"
},
"filter_cleaning": {
"name": "Καθαρισμός φίλτρου"
},
"filter_life": {
"name": "Φιλτράρετε τη ζωή"
},
"air_quality": {
"name": "Ποιότητα αέρα"
},
"fan_speed": {
"name": "Ταχύτητα ανεμιστήρα"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Hygiene plus" "name": "Hygiene plus"
},
"hood": {
"name": "Απορροφητήρας"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -895,6 +895,18 @@
"synthetic": "Synthetic" "synthetic": "Synthetic"
}, },
"name": "Steam Level" "name": "Steam Level"
},
"filter_cleaning": {
"name": "Filter cleaning"
},
"filter_life": {
"name": "Filter life"
},
"air_quality": {
"name": "Air Quality"
},
"fan_speed": {
"name": "Fan speed"
} }
}, },
"select": { "select": {
@ -1802,6 +1814,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Hygiene plus" "name": "Hygiene plus"
},
"hood": {
"name": "Hood"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -875,6 +875,18 @@
"synthetic": "Synthetic" "synthetic": "Synthetic"
}, },
"name": "Nivel de vapor" "name": "Nivel de vapor"
},
"filter_cleaning": {
"name": "Limpieza del filtro"
},
"filter_life": {
"name": "Vida del filtro"
},
"air_quality": {
"name": "Calidad del aire"
},
"fan_speed": {
"name": "Velocidad del ventilador"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Higiene extra" "name": "Higiene extra"
},
"hood": {
"name": "Campana extractora"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -875,6 +875,18 @@
"synthetic": "Synthetic" "synthetic": "Synthetic"
}, },
"name": "Niveau de vapeur" "name": "Niveau de vapeur"
},
"filter_cleaning": {
"name": "Nettoyage du filtre"
},
"filter_life": {
"name": "Durée de vie du filtre"
},
"air_quality": {
"name": "Qualité dair"
},
"fan_speed": {
"name": "Vitesse du ventilateur"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Hygiène plus" "name": "Hygiène plus"
},
"hood": {
"name": "Hotte"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -431,6 +431,18 @@
"synthetic": "מְלָאכוּתִי" "synthetic": "מְלָאכוּתִי"
}, },
"name": "מפלס קיטור" "name": "מפלס קיטור"
},
"filter_cleaning": {
"name": "Filter cleaning"
},
"filter_life": {
"name": "Filter life"
},
"air_quality": {
"name": "Air Quality"
},
"fan_speed": {
"name": "Fan speed"
} }
}, },
"select": { "select": {
@ -896,6 +908,9 @@
}, },
"hygiene": { "hygiene": {
"name": "היגיינה פלוס" "name": "היגיינה פלוס"
},
"hood": {
"name": "Hood"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -875,6 +875,18 @@
"synthetic": "Sintetika" "synthetic": "Sintetika"
}, },
"name": "Razina pare" "name": "Razina pare"
},
"filter_cleaning": {
"name": "Čišćenje filtra"
},
"filter_life": {
"name": "Radni vijek filtra"
},
"air_quality": {
"name": "Kvaliteta zraka"
},
"fan_speed": {
"name": "Brzina ventilatora"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Hygiene Plus" "name": "Hygiene Plus"
},
"hood": {
"name": "Napa"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -880,6 +880,18 @@
"synthetic": "Sintetici" "synthetic": "Sintetici"
}, },
"name": "Livello vapore" "name": "Livello vapore"
},
"filter_cleaning": {
"name": "Pulizia del filtro"
},
"filter_life": {
"name": "Durata filtro"
},
"air_quality": {
"name": "Qualità dell'Aria"
},
"fan_speed": {
"name": "Velocità ventole"
} }
}, },
"select": { "select": {
@ -1780,6 +1792,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Hygiene plus" "name": "Hygiene plus"
},
"hood": {
"name": "Cappa"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -875,6 +875,18 @@
"synthetic": "Synthetic" "synthetic": "Synthetic"
}, },
"name": "Stoomniveau" "name": "Stoomniveau"
},
"filter_cleaning": {
"name": "Filterreiniging"
},
"filter_life": {
"name": "Levensduur filter"
},
"air_quality": {
"name": "Luchtkwaliteit"
},
"fan_speed": {
"name": "Ventilatorsnelheid"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Hygiëne plus" "name": "Hygiëne plus"
},
"hood": {
"name": "Afzuigkap"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -875,6 +875,18 @@
"synthetic": "Syntetyczne" "synthetic": "Syntetyczne"
}, },
"name": "Poziom pary" "name": "Poziom pary"
},
"filter_cleaning": {
"name": "Czyszczenie filtra"
},
"filter_life": {
"name": "Żywotność filtra"
},
"air_quality": {
"name": "Jakość powietrza"
},
"fan_speed": {
"name": "Prędkość wentylatora"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Higiena plus" "name": "Higiena plus"
},
"hood": {
"name": "Okap"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -875,6 +875,18 @@
"synthetic": "Sintéticos" "synthetic": "Sintéticos"
}, },
"name": "Nível de vapor" "name": "Nível de vapor"
},
"filter_cleaning": {
"name": "Limpeza do filtro"
},
"filter_life": {
"name": "Vida do filtro"
},
"air_quality": {
"name": "Qualidade do ar"
},
"fan_speed": {
"name": "Velocidade da bomba"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Higiene mais" "name": "Higiene mais"
},
"hood": {
"name": "Exaustor"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -875,6 +875,18 @@
"synthetic": "Synthetic" "synthetic": "Synthetic"
}, },
"name": "Nivel abur" "name": "Nivel abur"
},
"filter_cleaning": {
"name": "Curățarea filtrului"
},
"filter_life": {
"name": "Viața filtrului"
},
"air_quality": {
"name": "Calitatea aerului"
},
"fan_speed": {
"name": "Viteza ventilatorului"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Igienizare plus" "name": "Igienizare plus"
},
"hood": {
"name": "Hotă"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -875,6 +875,18 @@
"synthetic": "Синтетика" "synthetic": "Синтетика"
}, },
"name": "Уровень пара" "name": "Уровень пара"
},
"filter_cleaning": {
"name": "Чистка фильтра"
},
"filter_life": {
"name": "Срок службы фильтра"
},
"air_quality": {
"name": "Качество воздуха"
},
"fan_speed": {
"name": "Скорость вентилятора"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Гигиена плюс" "name": "Гигиена плюс"
},
"hood": {
"name": "Вытяжка"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -875,6 +875,18 @@
"synthetic": "Synthetic" "synthetic": "Synthetic"
}, },
"name": "Úroveň nastavenia pary" "name": "Úroveň nastavenia pary"
},
"filter_cleaning": {
"name": "Čistenie filtra"
},
"filter_life": {
"name": "Životnosť filtra"
},
"air_quality": {
"name": "Kvalita vzduchu"
},
"fan_speed": {
"name": "Rýchlosť ventilátora"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Hygiena plus" "name": "Hygiena plus"
},
"hood": {
"name": "Digestor"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -875,6 +875,18 @@
"synthetic": "Sintetika" "synthetic": "Sintetika"
}, },
"name": "Količina pare" "name": "Količina pare"
},
"filter_cleaning": {
"name": "Čiščenje filtra"
},
"filter_life": {
"name": "Življenjska doba filtra"
},
"air_quality": {
"name": "Kakovost zraka"
},
"fan_speed": {
"name": "Hitrost ventilatorja"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Higiena plus" "name": "Higiena plus"
},
"hood": {
"name": "Kuhinjska napa"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -875,6 +875,18 @@
"synthetic": "Sintetika" "synthetic": "Sintetika"
}, },
"name": "Nivo pare" "name": "Nivo pare"
},
"filter_cleaning": {
"name": "Čišćenje filtera"
},
"filter_life": {
"name": "Trajanje filtera"
},
"air_quality": {
"name": "Kvalitet vazduha"
},
"fan_speed": {
"name": "Brzina ventilatora"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Higijenski plus" "name": "Higijenski plus"
},
"hood": {
"name": "Aspirator"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -875,6 +875,18 @@
"synthetic": "Synthetic" "synthetic": "Synthetic"
}, },
"name": "Buhar Seviyesi" "name": "Buhar Seviyesi"
},
"filter_cleaning": {
"name": "Filtre temizliği"
},
"filter_life": {
"name": "Filtre ömrü"
},
"air_quality": {
"name": "Hava kalitesi"
},
"fan_speed": {
"name": "Fan hızı"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "Hygiene plus" "name": "Hygiene plus"
},
"hood": {
"name": "Davlumbaz"
} }
}, },
"binary_sensor": { "binary_sensor": {

View File

@ -875,6 +875,18 @@
"synthetic": "Synthetic" "synthetic": "Synthetic"
}, },
"name": "蒸汽档位" "name": "蒸汽档位"
},
"filter_cleaning": {
"name": "滤网清洁"
},
"filter_life": {
"name": "过滤器寿命"
},
"air_quality": {
"name": "空气质量"
},
"fan_speed": {
"name": "风扇速度"
} }
}, },
"select": { "select": {
@ -1775,6 +1787,9 @@
}, },
"hygiene": { "hygiene": {
"name": "卫生增强" "name": "卫生增强"
},
"hood": {
"name": "机盖"
} }
}, },
"binary_sensor": { "binary_sensor": {

17
info.md
View File

@ -34,12 +34,12 @@ Support has been confirmed for these models, but many more will work. Please add
| **Washer Dryer** | HWD100-B14979 | HDQ 496AMBS/1-S <br/> HWPS4954DAMR-11 | RPW41066BWMR/1-S | | **Washer Dryer** | HWD100-B14979 | HDQ 496AMBS/1-S <br/> HWPS4954DAMR-11 | RPW41066BWMR/1-S |
| **Oven** | HWO60SM2F3XH | HSOT3161WG | | | **Oven** | HWO60SM2F3XH | HSOT3161WG | |
| **Dish Washer** | XIB 3B2SFS-80 <br/> XIB 6B2D3FB | HFB 6B2S3FX | | | **Dish Washer** | XIB 3B2SFS-80 <br/> XIB 6B2D3FB | HFB 6B2S3FX | |
| **Air Conditioner** | AD105S2SM3FA <br/> AS09TS4HRA-M <br/> AS20HPL1HRA <br/> AS25PBAHRA <br/> AS25S2SF1FA-WH <br/> AS25TADHRA-2 <br/> AS35PBAHRA <br/> AS35S2SF1FA-WH <br/> AS35S2SF2FA-3 <br/> AS35TADHRA-2 <br/> AS35TAMHRA-C | | | | **Air Conditioner** | AD105S2SM3FA <br/> AS09TS4HRA-M <br/> AS20HPL1HRA <br/> AS25PBAHRA <br/> AS25S2SF1FA-WH <br/> AS25TADHRA-2 <br/> AS35PBAHRA <br/> AS35S2SF1FA-WH <br/> AS35S2SF2FA-3 <br/> AS35TADHRA-2 <br/> AS35TAMHRA-C | | CY-12TAIN |
| **Fridge** | HFW7720ENMB | | CCE4T620EWU | | **Fridge** | HFW7720ENMB | | CCE4T620EWU |
| **Hob** | HA2MTSJ68MC | | CIS633SCTTWIFI | | **Hob** | HA2MTSJ68MC | | CIS633SCTTWIFI |
| **Hood** | HADG6DS46BWIFI | | | | **Hood** | HADG6DS46BWIFI | | |
| **Wine Cellar** | HWS247FDU1 | | | | **Wine Cellar** | HWS247FDU1 | | |
| **Air Purifier** | | HHP50CA001 | | | **Air Purifier** | | HHP30C011 <br/> HHP50CA001 <br/> HHP50CA011 | |
| Please add your appliances data to our [hon-test-data collection](https://github.com/Andre0512/hon-test-data). <br/>This helps us to develop new features and not to break compatibility in newer versions. | | Please add your appliances data to our [hon-test-data collection](https://github.com/Andre0512/hon-test-data). <br/>This helps us to develop new features and not to break compatibility in newer versions. |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
@ -66,6 +66,19 @@ Translation of internal names like programs are available for all languages whic
* 🇪🇸 Spanish * 🇪🇸 Spanish
* 🇹🇷 Turkish * 🇹🇷 Turkish
## Compatiblity
Haier offers different apps for different markets. Some appliances are compatible with more than one app. This integration only supports appliances that can be controlled via hOn. Please download the hOn app and check compatibilty before you open an issue.
The apps on this (incomplete) list have been requested so far:
| App | Main Market | Supported | Alternative |
|-----------------|---------------|-----------------------------------------|---------------------------------------------------------------------------------|
| Haier hOn | Europe | :heavy_check_mark: | |
| Candy simply-Fi | Europe | :grey_question: (only newer appliances) | [ofalvai/home-assistant-candy](https://github.com/ofalvai/home-assistant-candy) |
| Hoover Wizard | Europe | :grey_question: (only newer appliances) | |
| Haier Uhome | China | :x: | [banto6/haier](https://github.com/banto6/haier) |
| Haier U+ | China | :x: | |
| GE SmartHQ | North America | :x: | [simbaja/ha_gehome](https://github.com/simbaja/ha_gehome) |
## Examples ## Examples
### Washing Machine ### Washing Machine
![washing_machine.png](assets/washing_machine.png) ![washing_machine.png](assets/washing_machine.png)

View File

@ -241,6 +241,7 @@ NAMES = {
"refrigerator": "REF.NAME", "refrigerator": "REF.NAME",
"touch_tone": "AP.FOOTER_MENU_MORE.TOUCH_TONE_VOLUME", "touch_tone": "AP.FOOTER_MENU_MORE.TOUCH_TONE_VOLUME",
"hygiene": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.HYGIENE", "hygiene": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_OTHER_OPTIONS.HYGIENE",
"hood": "GLOBALS.APPLIANCES_NAME.HO",
}, },
"binary_sensor": { "binary_sensor": {
"door_lock": "WASHING_CMD&CTRL.CHECK_UP_RESULTS.DOOR_LOCK", "door_lock": "WASHING_CMD&CTRL.CHECK_UP_RESULTS.DOOR_LOCK",
@ -350,6 +351,10 @@ NAMES = {
"programs_ac": "WC.SET_PROGRAM.PROGRAM", "programs_ac": "WC.SET_PROGRAM.PROGRAM",
"programs_ref": "WC.SET_PROGRAM.PROGRAM", "programs_ref": "WC.SET_PROGRAM.PROGRAM",
"voc": "HINTS.WHAT_POLLUTES_THE_AIR_IN_OUR_HOMES.GAS_VOC_TITLE", "voc": "HINTS.WHAT_POLLUTES_THE_AIR_IN_OUR_HOMES.GAS_VOC_TITLE",
"filter_cleaning": "AP.MAINTENANCE.FILTER_CLEANING",
"filter_life": "AP.MAINTENANCE.FILTER_LIFE",
"air_quality": "AP.DISCOVER.AIR_QUALITY",
"fan_speed": "AP.TITLES.FAN_SPEED",
}, },
"number": { "number": {
"power_management": "HINTS.COOKING_WITH_INDUCTION.POWER_MANAGEMENT", "power_management": "HINTS.COOKING_WITH_INDUCTION.POWER_MANAGEMENT",