Add first fridge sensors #41

This commit is contained in:
Andre Basche 2023-05-10 18:13:05 +02:00
parent 0afbfe997d
commit 146e710881
32 changed files with 730 additions and 75 deletions

View file

@ -13,6 +13,7 @@ Home Assistant integration for Haier hOn: support for Haier/Candy/Hoover home ap
- [Hob](https://github.com/Andre0512/hon#hob)
- [Dish Washer](https://github.com/Andre0512/hon#dish-washer)
- [Air conditioner](https://github.com/Andre0512/hon#air-conditioner) [BETA]
- [Fridge](https://github.com/Andre0512/hon#fridge) [BETA]
## Installation
**Method 1:** [![Open your Home Assistant instance and open a repository inside the Home Assistant Community Store.](https://my.home-assistant.io/badges/hacs_repository.svg)](https://my.home-assistant.io/redirect/hacs_repository/?owner=Andre0512&repository=hon&category=integration)
@ -32,15 +33,28 @@ _If the integration is not in the list, you need to clear the browser cache._
## Supported Models
Support was confirmed for these models. If a supported model is missing, please [add it with this form](https://forms.gle/bTSD8qFotdZFytbf8).
- Haier WD90-B14TEAM5
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 EG9012B19SU1JD
- Haier HD80-A3959
- Haier HW90-B14TEAM5
- Haier HWD100-B14979
- Haier HWO60SM2F3XH
- Hoover H-WASH 500
- Candy CIS633SCTTWIFI
- Haier XIB 3B2SFS-80
- Haier XIB 6B2D3FB
- Candy CIS633SCTTWIFI
- Candy CSOE C10DE-80
- 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 HWPD 69AMBC/1-S
- Hoover NDE H10A2TCE-80
- Hoover NDPHY10A2TCBEXSS
## Supported Languages
Translation of internal names like programs are available for all languages which are official supported by the hOn app:
@ -136,6 +150,10 @@ I moved the api related stuff into the package [pyhOn](https://github.com/Andre0
## Appliance Features
### Air conditioner
#### Controls
| Name | Icon | Entity | Key |
| --- | --- | --- | --- |
| Air Conditioner | `air-conditioner` | `climate` | `settings` |
#### Configs
| Name | Icon | Entity | Key |
| --- | --- | --- | --- |
@ -235,6 +253,17 @@ I moved the api related stuff into the package [pyhOn](https://github.com/Andre0
| Temperature | `thermometer` | `sensor` | `temp` |
| Temperature Selected | `thermometer` | `sensor` | `tempSel` |
### Fridge
#### Configs
| Name | Icon | Entity | Key |
| --- | --- | --- | --- |
| Program | | `select` | `startProgram.program` |
#### Sensors
| Name | Icon | Entity | Key |
| --- | --- | --- | --- |
| Room Humidity | `water-percent` | `sensor` | `humidityEnv` |
| Room Temperature | `thermometer` | `sensor` | `tempEnv` |
### Tumble dryer
#### Controls
| Name | Icon | Entity | Key |

View file

@ -1,8 +1,6 @@
import logging
from dataclasses import dataclass
from pyhon import Hon
from homeassistant.components.binary_sensor import (
BinarySensorEntityDescription,
BinarySensorDeviceClass,
@ -10,6 +8,8 @@ from homeassistant.components.binary_sensor import (
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import callback
from pyhon import Hon
from .const import DOMAIN
from .hon import HonCoordinator, HonEntity, unique_entities

View file

@ -1,14 +1,12 @@
import logging
import urllib
from urllib.parse import quote
import pkg_resources
from homeassistant.components.button import ButtonEntityDescription, ButtonEntity
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import EntityCategory
from pyhon import Hon
from pyhon.appliance import HonAppliance
from homeassistant.const import EntityCategory
from .const import DOMAIN
from .hon import HonCoordinator, HonEntity

View file

@ -29,7 +29,14 @@ from .hon import HonEntity, HonCoordinator
_LOGGER = logging.getLogger(__name__)
CLIMATES = {
"AC": (ClimateEntityDescription(key="startProgram", icon="mdi:air-conditioner"),),
"AC": (
ClimateEntityDescription(
key="settings",
name="Air Conditioner",
icon="mdi:air-conditioner",
translation_key="air_conditioner",
),
),
}

View file

@ -1,7 +1,6 @@
import logging
import voluptuous as vol
from homeassistant import config_entries
from homeassistant.const import CONF_EMAIL, CONF_PASSWORD

View file

@ -180,50 +180,6 @@ AC_HUMAN_SENSE = {
"2": "AC.PROGRAM_DETAIL.FOLLOW_TOUCH",
}
TUMBLE_DRYER_PROGRAMS = [
"hqd_baby_care"
"hqd_bath_towel"
"hqd_bed_sheets"
"hqd_bulky"
"hqd_casual"
"hqd_cold_wind_30"
"hqd_cold_wind_timing"
"hqd_cotton"
"hqd_curtain"
"hqd_delicate"
"hqd_diaper"
"hqd_duvet"
"hqd_feather"
"hqd_hot_wind_timing"
"hqd_hygienic"
"hqd_i_refresh"
"hqd_i_refresh_pro"
"hqd_jacket"
"hqd_jeans"
"hqd_luxury"
"hqd_mix"
"hqd_night_dry"
"hqd_outdoor"
"hqd_precious_cure"
"hqd_quick_20"
"hqd_quick_30"
"hqd_quick_dry"
"hqd_quilt"
"hqd_refresh"
"hqd_school_uniform"
"hqd_shirt"
"hqd_shoes"
"hqd_silk"
"hqd_sports"
"hqd_synthetics"
"hqd_timer"
"hqd_towel"
"hqd_underwear"
"hqd_warm_up"
"hqd_wool"
"hqd_working_suit"
]
PROGRAMS_TD = [
"active_dry",
"allergy_care",

View file

@ -1,11 +1,10 @@
import logging
from datetime import timedelta
from pyhon.appliance import HonAppliance
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.update_coordinator import CoordinatorEntity
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
from pyhon.appliance import HonAppliance
from .const import DOMAIN

View file

@ -1,10 +1,5 @@
from __future__ import annotations
from pyhon import Hon
from pyhon.parameter.base import HonParameter
from pyhon.parameter.fixed import HonParameterFixed
from pyhon.parameter.range import HonParameterRange
from homeassistant.components.number import (
NumberEntity,
NumberEntityDescription,
@ -13,6 +8,10 @@ from homeassistant.config_entries import ConfigEntry
from homeassistant.const import UnitOfTime, UnitOfTemperature
from homeassistant.core import callback
from homeassistant.helpers.entity import EntityCategory
from pyhon import Hon
from pyhon.parameter.base import HonParameter
from pyhon.parameter.fixed import HonParameterFixed
from pyhon.parameter.range import HonParameterRange
from .const import DOMAIN
from .hon import HonEntity, HonCoordinator, unique_entities

View file

@ -1,17 +1,15 @@
from __future__ import annotations
import logging
import time
from pyhon import Hon
from pyhon.appliance import HonAppliance
from pyhon.parameter.fixed import HonParameterFixed
from homeassistant.components.select import SelectEntity, SelectEntityDescription
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import UnitOfTemperature, UnitOfTime, REVOLUTIONS_PER_MINUTE
from homeassistant.core import callback
from homeassistant.helpers.entity import EntityCategory
from pyhon import Hon
from pyhon.appliance import HonAppliance
from pyhon.parameter.fixed import HonParameterFixed
from .const import DOMAIN
from .hon import HonEntity, HonCoordinator, unique_entities
@ -105,6 +103,14 @@ SELECTS = {
translation_key="eco_pilot",
),
),
"REF": (
SelectEntityDescription(
key="startProgram.program",
name="Program",
entity_category=EntityCategory.CONFIG,
translation_key="programs_ref",
),
),
}
SELECTS["WD"] = unique_entities(SELECTS["WM"], SELECTS["TD"])

View file

@ -1,7 +1,5 @@
import logging
from pyhon import Hon
from homeassistant.components.sensor import (
SensorEntity,
SensorDeviceClass,
@ -9,6 +7,7 @@ from homeassistant.components.sensor import (
SensorEntityDescription,
)
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import PERCENTAGE
from homeassistant.const import (
REVOLUTIONS_PER_MINUTE,
UnitOfEnergy,
@ -21,7 +20,7 @@ from homeassistant.const import (
from homeassistant.core import callback
from homeassistant.helpers.entity import EntityCategory
from homeassistant.helpers.typing import StateType
from homeassistant.const import PERCENTAGE
from pyhon import Hon
from . import const
from .const import DOMAIN
@ -400,6 +399,26 @@ SENSORS: dict[str, tuple[SensorEntityDescription, ...]] = {
options=list(const.DISHWASHER_PR_PHASE),
),
),
"REF": (
SensorEntityDescription(
key="humidityEnv",
name="Room Humidity",
icon="mdi:water-percent",
device_class=SensorDeviceClass.HUMIDITY,
native_unit_of_measurement=PERCENTAGE,
state_class=SensorStateClass.MEASUREMENT,
translation_key="humidity",
),
SensorEntityDescription(
key="tempEnv",
name="Room Temperature",
icon="mdi:thermometer",
state_class=SensorStateClass.MEASUREMENT,
device_class=SensorDeviceClass.TEMPERATURE,
native_unit_of_measurement=UnitOfTemperature.CELSIUS,
translation_key="room_temperature",
),
),
}
SENSORS["WD"] = unique_entities(SENSORS["WM"], SENSORS["TD"])

View file

@ -307,6 +307,12 @@
"xxl_load": "XXL náplň",
"zoom_59": "Zoom 59"
}
},
"room_temperature": {
"name": "Pokojová teplota"
},
"humidity": {
"name": "Vlhkost"
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "UV + ventilátor",
"iot_uv_and_heat": "UV + ohřev"
}
},
"programs_ref": {
"state": {
"auto_set": "AUTOMATICKÉ NASTAVENÍ",
"cheese": "Sýr",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Režim Eco",
"fruits_and_veg": "Fruit&Veg",
"fruit_and_veg": "Fruit & Veg",
"holiday": "DOVOLENÁ",
"keep_fresh": "0° Fresh",
"no_mode_selected": "Není vybrán žádný režim",
"quick_cool": "QUICK COOL",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER CHLAZENÍ",
"super_freeze": "SUPER MRAZENÍ",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "Indukční varná deska"
}
},
"climate": {
"air_conditioner": {
"name": "Klimatizační jednotka"
}
}
},
"config": {

View file

@ -307,6 +307,12 @@
"xxl_load": "XXL-Beladung",
"zoom_59": "Zoom 59"
}
},
"room_temperature": {
"name": "Raumtemperatur"
},
"humidity": {
"name": "Luftfeuchtigkeit"
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "UV + Gebläse",
"iot_uv_and_heat": "UV + Heizen"
}
},
"programs_ref": {
"state": {
"auto_set": "AUTOMATISCHE EINSTELLUNG",
"cheese": "Käse",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Eco-Modus",
"fruits_and_veg": "Obst und Genüse",
"fruit_and_veg": "Fruit & Veg",
"holiday": "URLAUBSFUNKTION",
"keep_fresh": "0° Fresh",
"no_mode_selected": "Kein Modus ausgewählt",
"quick_cool": "SCHNELLKÜHLUNG",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER COOL",
"super_freeze": "SUPER FREEZE",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "Induktionskochfeld"
}
},
"climate": {
"air_conditioner": {
"name": "Klimaanlage"
}
}
},
"config": {

View file

@ -307,6 +307,12 @@
"xxl_load": "XXL Φορτιο",
"zoom_59": "Zoom 59"
}
},
"room_temperature": {
"name": "Θερμοκρασία δωματίου"
},
"humidity": {
"name": "Υγρασία"
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "UV + Ανεμιστήρας",
"iot_uv_and_heat": "UV + Θέρμανση"
}
},
"programs_ref": {
"state": {
"auto_set": "ΑΥΤΌΜΑΤΗ ΡΎΘΜΙΣΗ",
"cheese": "Τυρί",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Λειτουργία Eco",
"fruits_and_veg": "ΦΡΟΥΤΑ & ΛΑΧΑΝΙΚΑ",
"fruit_and_veg": "Fruit & Veg",
"holiday": "Ρυθμίστε το ψυγείο στους 17°C και διατηρήστε την κατάψυξη σε λειτουργία για μεγάλο χρονικό διάστημα.",
"keep_fresh": "0° Fresh",
"no_mode_selected": "Δεν επιλέχθηκε λειτουργία",
"quick_cool": "ΓΡΗΓΟΡΗ ΨΥΞΗ",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER COOL",
"super_freeze": "SUPER FREEZE",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "Επαγωγική εστία"
}
},
"climate": {
"air_conditioner": {
"name": "Κλιματιστικό"
}
}
},
"config": {

View file

@ -366,6 +366,12 @@
"xxl_load": "XXL Load",
"zoom_59": "Zoom 59"
}
},
"room_temperature": {
"name": "Room temperature"
},
"humidity": {
"name": "Humidity"
}
},
"switch": {
@ -1172,6 +1178,29 @@
"iot_uv_and_fan": "UV + Fan",
"iot_uv_and_heat": "UV + Heat"
}
},
"programs_ref": {
"state": {
"auto_set": "AUTO-SET",
"cheese": "Cheese",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Eco mode",
"fruits_and_veg": "Fruit&Veg",
"fruit_and_veg": "Fruit&Veg",
"holiday": "HOLIDAY",
"keep_fresh": "0° Fresh",
"no_mode_selected": "No mode selected",
"quick_cool": "QUICK COOL",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"soft_frozen\n": "Soft freezing",
"super_cool": "SUPER COOL",
"super_freeze": "SUPER FREEZE",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"binary_sensor": {
@ -1287,6 +1316,11 @@
"induction_hob": {
"name": "Induction Hob"
}
},
"climate": {
"air_conditioner": {
"name": "Air conditioner"
}
}
}
}

View file

@ -307,6 +307,12 @@
"xxl_load": "Carga XXL",
"zoom_59": "Zoom 59"
}
},
"room_temperature": {
"name": "Temperatura ambiente"
},
"humidity": {
"name": "Humedad"
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "UV + Ventilador",
"iot_uv_and_heat": "UV + Calor"
}
},
"programs_ref": {
"state": {
"auto_set": "AJUSTE AUTOMÁTICO",
"cheese": "Queso",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Modo Eco",
"fruits_and_veg": "Frutas Y Verduras",
"fruit_and_veg": "Frutas Y Verduras",
"holiday": "VACACIONES",
"keep_fresh": "0° Fresh",
"no_mode_selected": "No se ha seleccionado ningún modo",
"quick_cool": "QUICK COOL",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER COOL",
"super_freeze": "SUPER FREEZE",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "Placa de inducción"
}
},
"climate": {
"air_conditioner": {
"name": "Aire acondicionado"
}
}
},
"config": {

View file

@ -307,6 +307,12 @@
"xxl_load": "Charge XXL",
"zoom_59": "Zoom 59"
}
},
"room_temperature": {
"name": "Température ambiante"
},
"humidity": {
"name": "Humidité"
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "UV + ventilateur",
"iot_uv_and_heat": "UV + Chaleur"
}
},
"programs_ref": {
"state": {
"auto_set": "AUTO-SET",
"cheese": "Fromage",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Mode Eco",
"fruits_and_veg": "Fruit&Veg",
"fruit_and_veg": "Fruit & Veg",
"holiday": "HOLIDAY",
"keep_fresh": "0° Fresh",
"no_mode_selected": "Aucun mode sélectionné",
"quick_cool": "QUICK COOL",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER COOL",
"super_freeze": "SUPER FREEZE",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "Table de cuisson à induction"
}
},
"climate": {
"air_conditioner": {
"name": "Climatiseur"
}
}
},
"config": {

View file

@ -188,6 +188,12 @@
"hqd_working_suit": "Working suit",
"iot_dry_synthetic_dry": "סינתטי יבש"
}
},
"room_temperature": {
"name": "Room temperature"
},
"humidity": {
"name": "Humidity"
}
},
"select": {
@ -477,6 +483,17 @@
"state": {
"iot_simple_start": "התחל עכשיו"
}
},
"programs_ref": {
"state": {
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"fruit_and_veg": "Fruit & Veg",
"keep_fresh": "0° Fresh",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"tea": "Cold drinks or Beverages"
}
}
},
"switch": {
@ -684,6 +701,11 @@
"induction_hob": {
"name": "Induction Hob"
}
},
"climate": {
"air_conditioner": {
"name": "Air conditioner"
}
}
},
"config": {

View file

@ -307,6 +307,12 @@
"xxl_load": "XXL kapacitet",
"zoom_59": "Zoom 59"
}
},
"room_temperature": {
"name": "Sobna temperatura"
},
"humidity": {
"name": "Vlažnost"
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "UV + ventilator",
"iot_uv_and_heat": "UV + grijanje"
}
},
"programs_ref": {
"state": {
"auto_set": "AUTOMATSKA POSTAVKA",
"cheese": "Sir",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Način rada Eco",
"fruits_and_veg": "Voće i Povrće",
"fruit_and_veg": "Fruit & Veg",
"holiday": "ODMOR",
"keep_fresh": "0° Fresh",
"no_mode_selected": "Nije odabran način rada",
"quick_cool": "BRZO HLAĐENJE",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER HLAĐENJE",
"super_freeze": "SUPER ZAMRZAVANJE",
"tea": "Hladna pića i napitci",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "Indukcijska ploča za kuhanje"
}
},
"climate": {
"air_conditioner": {
"name": "Klimatizacijski uređaj"
}
}
},
"config": {

View file

@ -359,6 +359,12 @@
"xxl_load": "Carico XXL",
"zoom_59": "Zoom 59"
}
},
"room_temperature": {
"name": "Temperatura ambiente"
},
"humidity": {
"name": "Umidità"
}
},
"select": {
@ -1065,6 +1071,28 @@
"iot_uv_and_fan": "UV + Ventola",
"iot_uv_and_heat": "UV + Caldo"
}
},
"programs_ref": {
"state": {
"auto_set": "AUTO-SET",
"cheese": "Formaggio",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Modalità Eco",
"fruits_and_veg": "Fruit&Veg",
"fruit_and_veg": "Fruit & Veg",
"holiday": "HOLIDAY",
"keep_fresh": "0° Fresh",
"no_mode_selected": "Nessuna modalità selezionata",
"quick_cool": " QUICK COOL",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER COOL",
"super_freeze": "SUPER FREEZE",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1272,6 +1300,11 @@
"induction_hob": {
"name": "Piano cottura a induzione"
}
},
"climate": {
"air_conditioner": {
"name": "Condizionatore"
}
}
}
}

View file

@ -307,6 +307,12 @@
"xxl_load": "XXL Lading",
"zoom_59": "Zoom 59"
}
},
"room_temperature": {
"name": "Omgevingstemperatuur"
},
"humidity": {
"name": "Luchtvochtigheid"
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "UV + Hetelucht",
"iot_uv_and_heat": "UV + Warmte"
}
},
"programs_ref": {
"state": {
"auto_set": "AUTO-SET",
"cheese": "Kaas",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Eco-modus",
"fruits_and_veg": "Fruit&Veg",
"fruit_and_veg": "Fruit & Veg",
"holiday": "HOLIDAY",
"keep_fresh": "0° Fresh",
"no_mode_selected": "Geen modus geselecteerd",
"quick_cool": "QUICK KOEL",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER COOL",
"super_freeze": "SUPER FREEZE",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "Inductiekookplaat"
}
},
"climate": {
"air_conditioner": {
"name": "Airconditioner"
}
}
},
"config": {

View file

@ -307,6 +307,12 @@
"xxl_load": "XXL Load",
"zoom_59": "Zoom 59"
}
},
"room_temperature": {
"name": "Temperatura pokojowa"
},
"humidity": {
"name": "Wilgotność"
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "UV + wentylator",
"iot_uv_and_heat": "UV + podgrzewanie"
}
},
"programs_ref": {
"state": {
"auto_set": "AUTO-SET",
"cheese": "Ser",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Tryb Eco",
"fruits_and_veg": "Fruit&Veg",
"fruit_and_veg": "Fruit & Veg",
"holiday": "HOLIDAY",
"keep_fresh": "0° Fresh",
"no_mode_selected": "Nie wybrano żadnego trybu",
"quick_cool": "QUICK COOL",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER COOL",
"super_freeze": "SUPER FREEZE",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "Płyta indukcyjna"
}
},
"climate": {
"air_conditioner": {
"name": "Klimatyzator"
}
}
},
"config": {

View file

@ -307,6 +307,12 @@
"xxl_load": "Carga XXL",
"zoom_59": "Zoom 59"
}
},
"room_temperature": {
"name": "Temperatura ambiente"
},
"humidity": {
"name": "Humidade"
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "UV + Ventilação",
"iot_uv_and_heat": "UV + Calor"
}
},
"programs_ref": {
"state": {
"auto_set": "AUTO-SET",
"cheese": "Queijo",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Modo Eco",
"fruits_and_veg": "Fruit&Veg",
"fruit_and_veg": "Fruit & Veg",
"holiday": "HOLIDAY",
"keep_fresh": "0° Fresh",
"no_mode_selected": "Nenhum modo selecionado",
"quick_cool": "QUICK COOL",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER COOL",
"super_freeze": "SUPER FREEZE",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "Placa de indução"
}
},
"climate": {
"air_conditioner": {
"name": "Ar Condicionado"
}
}
},
"config": {

View file

@ -307,6 +307,12 @@
"xxl_load": "Încărcare XXL",
"zoom_59": "Zoom 59"
}
},
"room_temperature": {
"name": "Temperatura camerei"
},
"humidity": {
"name": "Umiditate"
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "UV + ventilator",
"iot_uv_and_heat": "UV + încălzire"
}
},
"programs_ref": {
"state": {
"auto_set": "AUTO-SET (Setare automată)",
"cheese": "Brânză",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Modul Eco",
"fruits_and_veg": "Fruit&Veg (Fructe și legume)",
"fruit_and_veg": "Fruit & Veg",
"holiday": "HOLIDAY (Perioadă de neutilizare)",
"keep_fresh": "0° Fresh",
"no_mode_selected": "Niciun mod selectat",
"quick_cool": "QUICK COOL",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER COOL (Răcire rapidă)",
"super_freeze": "SUPER FREEZE (Congelare rapidă)",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "Plita cu inducție"
}
},
"climate": {
"air_conditioner": {
"name": "Aer condiționat"
}
}
},
"config": {

View file

@ -307,6 +307,12 @@
"xxl_load": "Объемные вещи",
"zoom_59": "Zoom 59 (Зум 59)"
}
},
"room_temperature": {
"name": "Комнатная температура"
},
"humidity": {
"name": "Влажность"
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "УФ + Вентилятор",
"iot_uv_and_heat": "УФ + Нагрев"
}
},
"programs_ref": {
"state": {
"auto_set": "АВТОМАТИЧЕСКАЯ НАСТРОЙКА",
"cheese": "Сыр",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Режим Eco",
"fruits_and_veg": "Фрукты и овощи",
"fruit_and_veg": "Fruit & Veg",
"holiday": "HOLIDAY",
"keep_fresh": "0° Fresh",
"no_mode_selected": "Режим не выбран",
"quick_cool": " БЫСТРОЕ ОХЛАЖДЕНИЕ",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER COOL",
"super_freeze": "SUPER FREEZE",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "Индукционная варочная панель"
}
},
"climate": {
"air_conditioner": {
"name": "Кондиционер воздуха"
}
}
},
"config": {

View file

@ -307,6 +307,12 @@
"xxl_load": "XXL náplň",
"zoom_59": "Zoom 59"
}
},
"room_temperature": {
"name": "Izbová teplota"
},
"humidity": {
"name": "Vlhkosť"
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "UV + Ventilátor",
"iot_uv_and_heat": "UV + Ohrev"
}
},
"programs_ref": {
"state": {
"auto_set": "AUTOMATICKÉ NASTAVENIE",
"cheese": "Syr",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Režim Eco",
"fruits_and_veg": "Fruit&Veg",
"fruit_and_veg": "Fruit & Veg",
"holiday": "DOVOLENKA",
"keep_fresh": "0° Fresh",
"no_mode_selected": "Nie je vybraný žiadny režim",
"quick_cool": "QUICK COOL",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER CHLADENIE",
"super_freeze": "SUPER MRAZENIE",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "Indukčná varná doska"
}
},
"climate": {
"air_conditioner": {
"name": "Klimatizácia"
}
}
},
"config": {

View file

@ -307,6 +307,12 @@
"xxl_load": "Zelo veliki kosi perila",
"zoom_59": "Zoom 59"
}
},
"room_temperature": {
"name": "Sobna temperatura"
},
"humidity": {
"name": "Vlaga "
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "UV + ventilator",
"iot_uv_and_heat": "UV + gretje"
}
},
"programs_ref": {
"state": {
"auto_set": "SAMODEJNA NASTAVITEV",
"cheese": "Sir",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Način Eco",
"fruits_and_veg": "Sadje In Zelenjava",
"fruit_and_veg": "Sadje in zelenjava",
"holiday": "POČITNICE",
"keep_fresh": "0° Fresh",
"no_mode_selected": "Izbran ni noben način",
"quick_cool": " HITRO HLAJENJE",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER HLAJENJE",
"super_freeze": "SUPER ZAMRZOVANJE",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "Indukcijska kuhalna plošča"
}
},
"climate": {
"air_conditioner": {
"name": "Klimatska naprava"
}
}
},
"config": {

View file

@ -307,6 +307,12 @@
"xxl_load": "XXL veš",
"zoom_59": "Zoom 59"
}
},
"room_temperature": {
"name": "Sobna temperatura"
},
"humidity": {
"name": "Vlažnost"
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "UV + ventilator",
"iot_uv_and_heat": "UV + toplota"
}
},
"programs_ref": {
"state": {
"auto_set": "AUTOMATSKO PODEŠAVANJE",
"cheese": "Sir",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Eco režim",
"fruits_and_veg": "Voće i Povrće",
"fruit_and_veg": "Fruit & Veg",
"holiday": "ODMOR",
"keep_fresh": "0° Fresh",
"no_mode_selected": "Nije izabran nijedan režim",
"quick_cool": "BRZO HLAĐENJE",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER HLAĐENJE",
"super_freeze": "SUPER ZAMRZAVANJE",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "Indukciona ploča"
}
},
"climate": {
"air_conditioner": {
"name": "Klima uređaj"
}
}
},
"config": {

View file

@ -307,6 +307,12 @@
"xxl_load": "XXL Çamaşır",
"zoom_59": "Yakınlaştır 59"
}
},
"room_temperature": {
"name": "Oda sıcaklığı"
},
"humidity": {
"name": "Nem"
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "UV + Fan",
"iot_uv_and_heat": "UV + Isıtma"
}
},
"programs_ref": {
"state": {
"auto_set": "OTOMATİK AYAR",
"cheese": "Peynir",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Eco modu",
"fruits_and_veg": "Meyve Ve Sebze",
"fruit_and_veg": "Fruit & Veg",
"holiday": "TATİL ",
"keep_fresh": "0° Fresh",
"no_mode_selected": "Hiç mod seçilmedi",
"quick_cool": "HIZLI SOĞUTMA",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER COOL",
"super_freeze": "SUPER FREEZE",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "İndüksiyonlu Ocak"
}
},
"climate": {
"air_conditioner": {
"name": "Klima"
}
}
},
"config": {

View file

@ -307,6 +307,12 @@
"xxl_load": "XXL Load",
"zoom_59": "缩放 59"
}
},
"room_temperature": {
"name": "室温"
},
"humidity": {
"name": "湿度"
}
},
"select": {
@ -1013,6 +1019,28 @@
"iot_uv_and_fan": "UV + 风扇",
"iot_uv_and_heat": "UV + 加热"
}
},
"programs_ref": {
"state": {
"auto_set": "AUTO-SET自动设置",
"cheese": "奶酪",
"chiller": "Quick cool",
"cold_drinks": "Soft chill",
"eco": "Eco",
"eco_mode": "Eco 模式",
"fruits_and_veg": "Fruit&Veg水果和蔬菜",
"fruit_and_veg": "Fruit & Veg",
"holiday": "HOLIDAY假日模式",
"keep_fresh": "0° Fresh",
"no_mode_selected": "未选择模式",
"quick_cool": "QUICK COOL快速冷却",
"sea_food": "Ready to cook meal",
"soft_frozen": "Soft freezing",
"super_cool": "SUPER COOL超级冷却",
"super_freeze": "SUPER FREEZE超级冷冻",
"tea": "Cold drinks or Beverages",
"zero_fresh": "0° Fresh"
}
}
},
"switch": {
@ -1220,6 +1248,11 @@
"induction_hob": {
"name": "电磁炉"
}
},
"climate": {
"air_conditioner": {
"name": "空调"
}
}
},
"config": {

23
info.md
View file

@ -12,6 +12,7 @@ Support for home appliances of Haier's mobile app hOn.
- [Hob](https://github.com/Andre0512/hon#hob)
- [Dish Washer](https://github.com/Andre0512/hon#dish-washer)
- [Air conditioner](https://github.com/Andre0512/hon#air-conditioner) [BETA]
- [Fridge](https://github.com/Andre0512/hon#fridge) [BETA]
## Configuration
@ -21,15 +22,29 @@ Support for home appliances of Haier's mobile app hOn.
_If the integration is not in the list, you need to clear the browser cache._
## Supported Models
Support was confirmed for these models. If a supported model is missing, please [add it with this form](https://forms.gle/bTSD8qFotdZFytbf8).
- Haier WD90-B14TEAM5
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 EG9012B19SU1JD
- Haier HD80-A3959
- Haier HW90-B14TEAM5
- Haier HWD100-B14979
- Haier HWO60SM2F3XH
- Hoover H-WASH 500
- Candy CIS633SCTTWIFI
- Haier XIB 3B2SFS-80
- Haier XIB 6B2D3FB
- Candy CIS633SCTTWIFI
- Candy CSOE C10DE-80
- 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 HWPD 69AMBC/1-S
- Hoover NDE H10A2TCE-80
- Hoover NDPHY10A2TCBEXSS
## Supported Languages
Translation of internal names like programs are available for all languages which are official supported by the hOn app:

View file

@ -36,6 +36,7 @@ PROGRAMS = {
"programs_ov": "PROGRAMS.OV",
"programs_td": "PROGRAMS.TD",
"programs_wm": "PROGRAMS.WM_WD",
"programs_ref": "PROGRAMS.REF",
},
"sensor": {
"programs_td": "PROGRAMS.TD",
@ -134,6 +135,8 @@ NAMES = {
"det_liquid": "HUBS.WIDGET.STAINS_WIDGET.STAINS.SUGGESTED_DET_LIQUID",
"errors": "ROBOT_CMD&CTRL.PHASE_ERROR.TITLE",
"programs": "OV.TABS.CURRENT_PROGRAM",
"room_temperature": "REF.SMART_DRINK_ASSISTANT.AMBIENT",
"humidity": "AP.TITLES.HUMIDITY",
"cycles_total": [
"WASHING_CMD&CTRL.GENERAL.CYCLES",
"WC.VIRTUAL_WINE_STATS_COUNTRY.TOTAL",
@ -167,6 +170,7 @@ NAMES = {
"dry_time": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_TIME",
"steam_level": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.STEAM_LEVEL",
},
"climate": {"air_conditioner": "GLOBALS.APPLIANCES_NAME.AC"},
}

View file

@ -4,11 +4,13 @@ import re
import sys
from pathlib import Path
if __name__ == "__main__":
sys.path.insert(0, str(Path(__file__).parent.parent))
from custom_components.hon.binary_sensor import BINARY_SENSORS
from custom_components.hon.button import BUTTONS
from custom_components.hon.climate import CLIMATES
from custom_components.hon.number import NUMBERS
from custom_components.hon.select import SELECTS
from custom_components.hon.sensor import SENSORS
@ -41,6 +43,7 @@ entities = {
"select": SELECTS,
"sensor": SENSORS,
"switch": SWITCHES,
"climate": CLIMATES,
}
result = {}
@ -55,7 +58,11 @@ for entity_type, appliances in entities.items():
else:
key = entity.key
attributes = (key, entity.name, entity.icon, entity_type)
category = "control" if entity_type in ["switch", "button"] else "sensor"
category = (
"control"
if entity_type in ["switch", "button", "climate"]
else "sensor"
)
result.setdefault(appliance, {}).setdefault(
entity.entity_category or category, []
).append(attributes)