Add changing fan position for ac #97 #108

This commit is contained in:
Andre Basche 2023-10-03 01:49:24 +02:00
parent 0e3d917ed1
commit 08fb9cb5b9
24 changed files with 498 additions and 2 deletions

View File

@ -14,7 +14,7 @@ Home Assistant integration for [Haier's mobile app hOn](https://hon-smarthome.co
[![Supported Languages](https://img.shields.io/badge/Languages-19-royalblue)](https://github.com/Andre0512/hon#supported-languages)
[![Supported Appliances](https://img.shields.io/badge/Appliances-11-forestgreen)](https://github.com/Andre0512/hon#supported-appliances)
[![Supported Models](https://img.shields.io/badge/Models-73-yellowgreen)](https://github.com/Andre0512/hon#supported-models)
[![Supported Entities](https://img.shields.io/badge/Entities-313-crimson)](https://github.com/Andre0512/hon#appliance-features)
[![Supported Entities](https://img.shields.io/badge/Entities-315-crimson)](https://github.com/Andre0512/hon#appliance-features)
## Supported Appliances
- [Washing Machine](https://github.com/Andre0512/hon#washing-machine)
@ -173,6 +173,8 @@ For every device exists a button under diagnostics which can be used to log all
| Echo | `account-voice` | `switch` | `echoStatus` |
| Eco Mode | `sprout` | `switch` | `ecoMode` |
| Eco Pilot | `run` | `select` | `settings.humanSensingStatus` |
| Fan Direction Horizontal | `fan` | `select` | `settings.windDirectionHorizontal` |
| Fan Direction Vertical | `fan` | `select` | `settings.windDirectionVertical` |
| Health Mode | `medication-outline` | `switch` | `healthMode` |
| Night Mode | `bed` | `switch` | `silentSleepStatus` |
| Rapid Mode | `run-fast` | `switch` | `rapidMode` |

View File

@ -264,3 +264,21 @@ STAIN_TYPES: dict[int, str] = {
25: "chili_sauce",
26: "fruit",
}
AC_POSITION_HORIZONTAL = {
0: "position_1",
3: "position_2",
4: "position_3",
5: "position_4",
6: "position_5",
7: "swing",
}
AC_POSITION_VERTICAL = {
2: "position_1",
4: "position_2",
5: "position_3",
6: "position_4",
7: "position_5",
8: "swing",
}

View File

@ -140,6 +140,20 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
translation_key="eco_pilot",
option_list=const.AC_HUMAN_SENSE,
),
HonSelectEntityDescription(
key="settings.windDirectionHorizontal",
name="Fan Direction Horizontal",
icon="mdi:fan",
translation_key="fan_horizontal",
option_list=const.AC_POSITION_HORIZONTAL,
),
HonSelectEntityDescription(
key="settings.windDirectionVertical",
name="Fan Direction Vertical",
icon="mdi:fan",
translation_key="fan_vertical",
option_list=const.AC_POSITION_VERTICAL,
),
),
"REF": (
HonConfigSelectEntityDescription(

View File

@ -1764,6 +1764,28 @@
"unknown": "unknown"
},
"name": "Úroveň znečištění"
},
"fan_horizontal": {
"name": "Směr proudu vzduchu Vodorovný",
"state": {
"position_1": "Pevný - Poloha 1",
"position_2": "Pevný - Poloha 2",
"position_3": "Pevný - Poloha 3",
"position_4": "Pevný - Poloha 4",
"position_5": "Pevný - Poloha 5",
"swing": "Pohyb lamel"
}
},
"fan_vertical": {
"name": "Směr proudu vzduchu Svislý",
"state": {
"position_1": "Pevný - Poloha 1",
"position_2": "Pevný - Poloha 2",
"position_3": "Pevný - Poloha 3",
"position_4": "Pevný - Poloha 4",
"position_5": "Pevný - Poloha 5",
"swing": "Pohyb lamel"
}
}
},
"switch": {

View File

@ -1764,6 +1764,28 @@
"unknown": "unknown"
},
"name": "Grad der Verschmutzung"
},
"fan_horizontal": {
"name": "Richtung des Gebläses Horizontal",
"state": {
"position_1": "Fest - Position 1",
"position_2": "Fest - Position 2",
"position_3": "Fest - Position 3",
"position_4": "Fest - Position 4",
"position_5": "Fest - Position 5",
"swing": "Schwenkbewegung"
}
},
"fan_vertical": {
"name": "Richtung des Gebläses Vertikal",
"state": {
"position_1": "Fest - Position 1",
"position_2": "Fest - Position 2",
"position_3": "Fest - Position 3",
"position_4": "Fest - Position 4",
"position_5": "Fest - Position 5",
"swing": "Schwenkbewegung"
}
}
},
"switch": {

View File

@ -1764,6 +1764,28 @@
"unknown": "unknown"
},
"name": "Επίπεδο λεκέδων"
},
"fan_horizontal": {
"name": "Κατεύθυνση ανεμιστήρα Οριζόντιος",
"state": {
"position_1": "Σταθερός - Θέση 1",
"position_2": "Σταθερός - Θέση 2",
"position_3": "Σταθερός - Θέση 3",
"position_4": "Σταθερός - Θέση 4",
"position_5": "Σταθερός - Θέση 5",
"swing": "Ταλάντευση"
}
},
"fan_vertical": {
"name": "Κατεύθυνση ανεμιστήρα Κατακόρυφος",
"state": {
"position_1": "Σταθερός - Θέση 1",
"position_2": "Σταθερός - Θέση 2",
"position_3": "Σταθερός - Θέση 3",
"position_4": "Σταθερός - Θέση 4",
"position_5": "Σταθερός - Θέση 5",
"swing": "Ταλάντευση"
}
}
},
"switch": {

View File

@ -1793,6 +1793,28 @@
"unknown": "unknown"
},
"name": "Stain level"
},
"fan_horizontal": {
"name": "Fan direction Horizontal",
"state": {
"position_1": "Fixed - Position 1",
"position_2": "Fixed - Position 2",
"position_3": "Fixed - Position 3",
"position_4": "Fixed - Position 4",
"position_5": "Fixed - Position 5",
"swing": "Swing"
}
},
"fan_vertical": {
"name": "Fan direction Vertical",
"state": {
"position_1": "Fixed - Position 1",
"position_2": "Fixed - Position 2",
"position_3": "Fixed - Position 3",
"position_4": "Fixed - Position 4",
"position_5": "Fixed - Position 5",
"swing": "Swing"
}
}
},
"switch": {

View File

@ -1764,6 +1764,28 @@
"unknown": "unknown"
},
"name": "Nivel de manchas"
},
"fan_horizontal": {
"name": "Dirección del ventilador Horizontal",
"state": {
"position_1": "Fijo - Posición 1",
"position_2": "Fijo - Posición 2",
"position_3": "Fijo - Posición 3",
"position_4": "Fijo - Posición 4",
"position_5": "Fijo - Posición 5",
"swing": "Oscilar"
}
},
"fan_vertical": {
"name": "Dirección del ventilador Vertical",
"state": {
"position_1": "Fijo - Posición 1",
"position_2": "Fijo - Posición 2",
"position_3": "Fijo - Posición 3",
"position_4": "Fijo - Posición 4",
"position_5": "Fijo - Posición 5",
"swing": "Oscilar"
}
}
},
"switch": {

View File

@ -1764,6 +1764,28 @@
"unknown": "unknown"
},
"name": "Niveau de salissure"
},
"fan_horizontal": {
"name": "Direction du ventilateur Horizontale",
"state": {
"position_1": "Fixe - Position 1",
"position_2": "Fixe - Position 2",
"position_3": "Fixe - Position 3",
"position_4": "Fixe - Position 4",
"position_5": "Fixe - Position 5",
"swing": "Oscillation"
}
},
"fan_vertical": {
"name": "Direction du ventilateur Verticale",
"state": {
"position_1": "Fixe - Position 1",
"position_2": "Fixe - Position 2",
"position_3": "Fixe - Position 3",
"position_4": "Fixe - Position 4",
"position_5": "Fixe - Position 5",
"swing": "Oscillation"
}
}
},
"switch": {

View File

@ -829,6 +829,28 @@
"unknown": "unknown"
},
"name": "Stain level"
},
"fan_horizontal": {
"name": "Fan direction Horizontal",
"state": {
"position_1": "Fixed - Position 1",
"position_2": "Fixed - Position 2",
"position_3": "Fixed - Position 3",
"position_4": "Fixed - Position 4",
"position_5": "Fixed - Position 5",
"swing": "Swing"
}
},
"fan_vertical": {
"name": "Fan direction Vertical",
"state": {
"position_1": "Fixed - Position 1",
"position_2": "Fixed - Position 2",
"position_3": "Fixed - Position 3",
"position_4": "Fixed - Position 4",
"position_5": "Fixed - Position 5",
"swing": "Swing"
}
}
},
"switch": {

View File

@ -1764,6 +1764,28 @@
"unknown": "unknown"
},
"name": "Razina mrlja"
},
"fan_horizontal": {
"name": "Smjer ventilatora Vodoravno",
"state": {
"position_1": "Fiksno - Položaj 1",
"position_2": "Fiksno - Položaj 2",
"position_3": "Fiksno - Položaj 3",
"position_4": "Fiksno - Položaj 4",
"position_5": "Fiksno - Položaj 5",
"swing": "Njihanje"
}
},
"fan_vertical": {
"name": "Smjer ventilatora Okomito",
"state": {
"position_1": "Fiksno - Položaj 1",
"position_2": "Fiksno - Položaj 2",
"position_3": "Fiksno - Položaj 3",
"position_4": "Fiksno - Položaj 4",
"position_5": "Fiksno - Položaj 5",
"swing": "Njihanje"
}
}
},
"switch": {

View File

@ -1773,6 +1773,28 @@
"unknown": "unknown"
},
"name": "Livello di sporco"
},
"fan_horizontal": {
"name": "Direzione ventola Orizzontale",
"state": {
"position_1": "Fissa - Posizione 1",
"position_2": "Fissa - Posizione 2",
"position_3": "Fissa - Posizione 3",
"position_4": "Fissa - Posizione 4",
"position_5": "Fissa - Posizione 5",
"swing": "Swing"
}
},
"fan_vertical": {
"name": "Direzione ventola Verticale",
"state": {
"position_1": "Fissa - Posizione 1",
"position_2": "Fissa - Posizione 2",
"position_3": "Fissa - Posizione 3",
"position_4": "Fissa - Posizione 4",
"position_5": "Fissa - Posizione 5",
"swing": "Swing"
}
}
},
"switch": {

View File

@ -1764,6 +1764,28 @@
"unknown": "unknown"
},
"name": "Vlekniveau"
},
"fan_horizontal": {
"name": "Ventilatorrichting Horizontaal",
"state": {
"position_1": "Vast - Positie 1",
"position_2": "Vast - Positie 2",
"position_3": "Vast - Positie 3",
"position_4": "Vast - Positie 4",
"position_5": "Vast - Positie 5",
"swing": "Draaiend"
}
},
"fan_vertical": {
"name": "Ventilatorrichting Verticaal",
"state": {
"position_1": "Vast - Positie 1",
"position_2": "Vast - Positie 2",
"position_3": "Vast - Positie 3",
"position_4": "Vast - Positie 4",
"position_5": "Vast - Positie 5",
"swing": "Draaiend"
}
}
},
"switch": {

View File

@ -1764,6 +1764,28 @@
"unknown": "unknown"
},
"name": "Stopień zabrudzenia"
},
"fan_horizontal": {
"name": "Kierunek wentylatora Poziomy",
"state": {
"position_1": "Stały - Pozycja 1",
"position_2": "Stały - Pozycja 2",
"position_3": "Stały - Pozycja 3",
"position_4": "Stały - Pozycja 4",
"position_5": "Stały - Pozycja 5",
"swing": "Swing"
}
},
"fan_vertical": {
"name": "Kierunek wentylatora Pionowy",
"state": {
"position_1": "Stały - Pozycja 1",
"position_2": "Stały - Pozycja 2",
"position_3": "Stały - Pozycja 3",
"position_4": "Stały - Pozycja 4",
"position_5": "Stały - Pozycja 5",
"swing": "Swing"
}
}
},
"switch": {

View File

@ -1764,6 +1764,28 @@
"unknown": "unknown"
},
"name": "Nível da nódoa"
},
"fan_horizontal": {
"name": "Direção do ventilador Horizontal",
"state": {
"position_1": "Fixa - Posição 1",
"position_2": "Fixa - Posição 2",
"position_3": "Fixa - Posição 3",
"position_4": "Fixa - Posição 4",
"position_5": "Fixa - Posição 5",
"swing": "Oscilação"
}
},
"fan_vertical": {
"name": "Direção do ventilador Vertical",
"state": {
"position_1": "Fixa - Posição 1",
"position_2": "Fixa - Posição 2",
"position_3": "Fixa - Posição 3",
"position_4": "Fixa - Posição 4",
"position_5": "Fixa - Posição 5",
"swing": "Oscilação"
}
}
},
"switch": {

View File

@ -1764,6 +1764,28 @@
"unknown": "unknown"
},
"name": "Nivelul de pătare"
},
"fan_horizontal": {
"name": "Direcția ventilatorului Orizontal",
"state": {
"position_1": "Fix - Poziție 1",
"position_2": "Fix - Poziție 2",
"position_3": "Fix - Poziție 3",
"position_4": "Fix - Poziție 4",
"position_5": "Fix - Poziție 5",
"swing": "Baleiere"
}
},
"fan_vertical": {
"name": "Direcția ventilatorului Vertical",
"state": {
"position_1": "Fix - Poziție 1",
"position_2": "Fix - Poziție 2",
"position_3": "Fix - Poziție 3",
"position_4": "Fix - Poziție 4",
"position_5": "Fix - Poziție 5",
"swing": "Baleiere"
}
}
},
"switch": {

View File

@ -1764,6 +1764,28 @@
"unknown": "unknown"
},
"name": "Уровень загрязнения"
},
"fan_horizontal": {
"name": "Направление вентилятора Горизонтальное",
"state": {
"position_1": "Фиксированное - Позиция 1",
"position_2": "Фиксированное - Позиция 2",
"position_3": "Фиксированное - Позиция 3",
"position_4": "Фиксированное - Позиция 4",
"position_5": "Фиксированное - Позиция 5",
"swing": "Качание"
}
},
"fan_vertical": {
"name": "Направление вентилятора Вертикальное",
"state": {
"position_1": "Фиксированное - Позиция 1",
"position_2": "Фиксированное - Позиция 2",
"position_3": "Фиксированное - Позиция 3",
"position_4": "Фиксированное - Позиция 4",
"position_5": "Фиксированное - Позиция 5",
"swing": "Качание"
}
}
},
"switch": {

View File

@ -1764,6 +1764,28 @@
"unknown": "unknown"
},
"name": "Úroveň škvŕn"
},
"fan_horizontal": {
"name": "Smer ventilátora Horizontálny",
"state": {
"position_1": "Pevný - Poloha 1",
"position_2": "Pevný - Poloha 2",
"position_3": "Pevný - Poloha 3",
"position_4": "Pevný - Poloha 4",
"position_5": "Pevný - Poloha 5",
"swing": "Otáčanie"
}
},
"fan_vertical": {
"name": "Smer ventilátora Vertikálny",
"state": {
"position_1": "Pevný - Poloha 1",
"position_2": "Pevný - Poloha 2",
"position_3": "Pevný - Poloha 3",
"position_4": "Pevný - Poloha 4",
"position_5": "Pevný - Poloha 5",
"swing": "Otáčanie"
}
}
},
"switch": {

View File

@ -1764,6 +1764,28 @@
"unknown": "unknown"
},
"name": "Stopnja madežev"
},
"fan_horizontal": {
"name": "Smer ventilatorja Vodoravno",
"state": {
"position_1": "Fiksno - Položaj 1",
"position_2": "Fiksno - Položaj 2",
"position_3": "Fiksno - Položaj 3",
"position_4": "Fiksno - Položaj 4",
"position_5": "Fiksno - Položaj 5",
"swing": "Nihanje"
}
},
"fan_vertical": {
"name": "Smer ventilatorja Navpično",
"state": {
"position_1": "Fiksno - Položaj 1",
"position_2": "Fiksno - Položaj 2",
"position_3": "Fiksno - Položaj 3",
"position_4": "Fiksno - Položaj 4",
"position_5": "Fiksno - Položaj 5",
"swing": "Nihanje"
}
}
},
"switch": {

View File

@ -1764,6 +1764,28 @@
"unknown": "unknown"
},
"name": "Nivo mrlje"
},
"fan_horizontal": {
"name": "Pravac duvanja ventilatora Horizontalan",
"state": {
"position_1": "Fiksiran - Položaj 1",
"position_2": "Fiksiran - Položaj 2",
"position_3": "Fiksiran - Položaj 3",
"position_4": "Fiksiran - Položaj 4",
"position_5": "Fiksiran - Položaj 5",
"swing": "Njihanje"
}
},
"fan_vertical": {
"name": "Pravac duvanja ventilatora Vertikalan",
"state": {
"position_1": "Fiksiran - Položaj 1",
"position_2": "Fiksiran - Položaj 2",
"position_3": "Fiksiran - Položaj 3",
"position_4": "Fiksiran - Položaj 4",
"position_5": "Fiksiran - Položaj 5",
"swing": "Njihanje"
}
}
},
"switch": {

View File

@ -1764,6 +1764,28 @@
"unknown": "unknown"
},
"name": "Leke seviyesi"
},
"fan_horizontal": {
"name": "Fan yönü Yatay",
"state": {
"position_1": "Sabit - Pozisyon 1",
"position_2": "Sabit - Pozisyon 2",
"position_3": "Sabit - Pozisyon 3",
"position_4": "Sabit - Pozisyon 4",
"position_5": "Sabit - Pozisyon 5",
"swing": "Salınım"
}
},
"fan_vertical": {
"name": "Fan yönü Dikey",
"state": {
"position_1": "Sabit - Pozisyon 1",
"position_2": "Sabit - Pozisyon 2",
"position_3": "Sabit - Pozisyon 3",
"position_4": "Sabit - Pozisyon 4",
"position_5": "Sabit - Pozisyon 5",
"swing": "Salınım"
}
}
},
"switch": {

View File

@ -1750,6 +1750,28 @@
"unknown": "unknown"
},
"name": "污渍水平"
},
"fan_horizontal": {
"name": "风扇方向 水平",
"state": {
"position_1": "固定 - 位置 1",
"position_2": "固定 - 位置 2",
"position_3": "固定 - 位置 3",
"position_4": "固定 - 位置 4",
"position_5": "固定 - 位置 5",
"swing": "摆动"
}
},
"fan_vertical": {
"name": "风扇方向 垂直",
"state": {
"position_1": "固定 - 位置 1",
"position_2": "固定 - 位置 2",
"position_3": "固定 - 位置 3",
"position_4": "固定 - 位置 4",
"position_5": "固定 - 位置 5",
"swing": "摆动"
}
}
},
"switch": {

View File

@ -12,7 +12,7 @@ Home Assistant integration for [Haier's mobile app hOn](https://hon-smarthome.co
[![Supported Languages](https://img.shields.io/badge/Languages-19-royalblue)](https://github.com/Andre0512/hon#supported-languages)
[![Supported Appliances](https://img.shields.io/badge/Appliances-11-forestgreen)](https://github.com/Andre0512/hon#supported-appliances)
[![Supported Models](https://img.shields.io/badge/Models-73-yellowgreen)](https://github.com/Andre0512/hon#supported-models)
[![Supported Entities](https://img.shields.io/badge/Entities-313-crimson)](https://github.com/Andre0512/hon#appliance-features)
[![Supported Entities](https://img.shields.io/badge/Entities-315-crimson)](https://github.com/Andre0512/hon#appliance-features)
## Supported Appliances
- [Washing Machine](https://github.com/Andre0512/hon#washing-machine)

View File

@ -85,6 +85,40 @@ AC_HUMAN_SENSE = {
"unknown": "unknown",
}
AC_POSITIONS = {
"position_1": [
"AC.PROGRAM_DETAIL.FAN_MODE_FIXED",
"-",
"AC.PROGRAM_DETAIL.POSITION",
"1",
],
"position_2": [
"AC.PROGRAM_DETAIL.FAN_MODE_FIXED",
"-",
"AC.PROGRAM_DETAIL.POSITION",
"2",
],
"position_3": [
"AC.PROGRAM_DETAIL.FAN_MODE_FIXED",
"-",
"AC.PROGRAM_DETAIL.POSITION",
"3",
],
"position_4": [
"AC.PROGRAM_DETAIL.FAN_MODE_FIXED",
"-",
"AC.PROGRAM_DETAIL.POSITION",
"4",
],
"position_5": [
"AC.PROGRAM_DETAIL.FAN_MODE_FIXED",
"-",
"AC.PROGRAM_DETAIL.POSITION",
"5",
],
"swing": "AC.PROGRAM_DETAIL.FAN_MODE_SWING",
}
AP_MACH_MODE = {
"standby": "AP.RUNNING_MODE.STANDBY",
"sleep": "AP.RUNNING_MODE.SLEEP",
@ -178,6 +212,8 @@ SELECT = {
"diffuser": AP_DIFFUSER_LEVEL,
"dirt_level": DIRTY_LEVEL,
"stain_type": STAINS,
"fan_horizontal": AC_POSITIONS,
"fan_vertical": AC_POSITIONS,
}
PROGRAMS = {
@ -344,6 +380,14 @@ NAMES = {
"steam_level": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.STEAM_LEVEL",
"dirt_level": "WASHING_CMD&CTRL.PROGRAM_CYCLE_DETAIL_MAIN_OPTIONS.DIRTY_LEVEL",
"stain_type": "STAIN_TYPE_LIST.STAINS.STAIN_LEVEL",
"fan_horizontal": [
"AC.PROGRAM_DETAIL.FAN_DIRECTION",
"AC.PROGRAM_DETAIL.FAN_DIRECTION_HORIZONTAL",
],
"fan_vertical": [
"AC.PROGRAM_DETAIL.FAN_DIRECTION",
"AC.PROGRAM_DETAIL.FAN_DIRECTION_VERTICAL",
],
},
"sensor": {
"dry_levels": "WASHING_CMD&CTRL.DRAWER_CYCLE_DRYING.TAB_LEVEL",