Add support for Xiaomi Miio Standing Fan 2 (dmaker.fan.p18) (#129160)

This commit is contained in:
Maciej Bieniek 2024-10-26 01:52:18 +02:00 committed by GitHub
parent 1dfe26f14f
commit 886feae4ca
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 20 additions and 10 deletions

View file

@ -56,6 +56,7 @@ from .const import (
MODEL_FAN_P9,
MODEL_FAN_P10,
MODEL_FAN_P11,
MODEL_FAN_P18,
MODEL_FAN_ZA5,
MODELS_AIR_MONITOR,
MODELS_FAN,
@ -118,6 +119,7 @@ MODEL_TO_CLASS_MAP = {
MODEL_FAN_P9: FanMiot,
MODEL_FAN_P10: FanMiot,
MODEL_FAN_P11: FanMiot,
MODEL_FAN_P18: FanMiot,
MODEL_FAN_P5: FanP5,
MODEL_FAN_ZA5: FanZA5,
}

View file

@ -94,6 +94,7 @@ MODEL_AIRFRESH_T2017 = "dmaker.airfresh.t2017"
MODEL_FAN_1C = "dmaker.fan.1c"
MODEL_FAN_P10 = "dmaker.fan.p10"
MODEL_FAN_P11 = "dmaker.fan.p11"
MODEL_FAN_P18 = "dmaker.fan.p18"
MODEL_FAN_P5 = "dmaker.fan.p5"
MODEL_FAN_P9 = "dmaker.fan.p9"
MODEL_FAN_SA1 = "zhimi.fan.sa1"
@ -118,6 +119,7 @@ MODELS_FAN_MIOT = [
MODEL_FAN_1C,
MODEL_FAN_P10,
MODEL_FAN_P11,
MODEL_FAN_P18,
MODEL_FAN_P9,
MODEL_FAN_ZA5,
]
@ -491,7 +493,7 @@ FEATURE_FLAGS_FAN_P9 = (
| FEATURE_SET_DELAY_OFF_COUNTDOWN
)
FEATURE_FLAGS_FAN_P10_P11 = (
FEATURE_FLAGS_FAN_P10_P11_P18 = (
FEATURE_SET_BUZZER
| FEATURE_SET_CHILD_LOCK
| FEATURE_SET_OSCILLATION_ANGLE

View file

@ -60,7 +60,7 @@ from .const import (
FEATURE_FLAGS_FAN_1C,
FEATURE_FLAGS_FAN_P5,
FEATURE_FLAGS_FAN_P9,
FEATURE_FLAGS_FAN_P10_P11,
FEATURE_FLAGS_FAN_P10_P11_P18,
FEATURE_FLAGS_FAN_ZA5,
FEATURE_RESET_FILTER,
FEATURE_SET_EXTRA_FEATURES,
@ -85,6 +85,7 @@ from .const import (
MODEL_FAN_P9,
MODEL_FAN_P10,
MODEL_FAN_P11,
MODEL_FAN_P18,
MODEL_FAN_ZA5,
MODELS_FAN_MIIO,
MODELS_FAN_MIOT,
@ -912,8 +913,8 @@ class XiaomiGenericFan(XiaomiGenericDevice):
self._device_features = FEATURE_FLAGS_FAN_1C
elif self._model == MODEL_FAN_P9:
self._device_features = FEATURE_FLAGS_FAN_P9
elif self._model in (MODEL_FAN_P10, MODEL_FAN_P11):
self._device_features = FEATURE_FLAGS_FAN_P10_P11
elif self._model in (MODEL_FAN_P10, MODEL_FAN_P11, MODEL_FAN_P18):
self._device_features = FEATURE_FLAGS_FAN_P10_P11_P18
else:
self._device_features = FEATURE_FLAGS_FAN
self._attr_supported_features = (

View file

@ -50,7 +50,7 @@ from .const import (
FEATURE_FLAGS_FAN_1C,
FEATURE_FLAGS_FAN_P5,
FEATURE_FLAGS_FAN_P9,
FEATURE_FLAGS_FAN_P10_P11,
FEATURE_FLAGS_FAN_P10_P11_P18,
FEATURE_FLAGS_FAN_ZA5,
FEATURE_SET_DELAY_OFF_COUNTDOWN,
FEATURE_SET_FAN_LEVEL,
@ -87,6 +87,7 @@ from .const import (
MODEL_FAN_P9,
MODEL_FAN_P10,
MODEL_FAN_P11,
MODEL_FAN_P18,
MODEL_FAN_SA1,
MODEL_FAN_V2,
MODEL_FAN_V3,
@ -256,8 +257,9 @@ MODEL_TO_FEATURES_MAP = {
MODEL_AIRPURIFIER_4_PRO: FEATURE_FLAGS_AIRPURIFIER_4,
MODEL_AIRPURIFIER_ZA1: FEATURE_FLAGS_AIRPURIFIER_ZA1,
MODEL_FAN_1C: FEATURE_FLAGS_FAN_1C,
MODEL_FAN_P10: FEATURE_FLAGS_FAN_P10_P11,
MODEL_FAN_P11: FEATURE_FLAGS_FAN_P10_P11,
MODEL_FAN_P10: FEATURE_FLAGS_FAN_P10_P11_P18,
MODEL_FAN_P11: FEATURE_FLAGS_FAN_P10_P11_P18,
MODEL_FAN_P18: FEATURE_FLAGS_FAN_P10_P11_P18,
MODEL_FAN_P5: FEATURE_FLAGS_FAN_P5,
MODEL_FAN_P9: FEATURE_FLAGS_FAN_P9,
MODEL_FAN_SA1: FEATURE_FLAGS_FAN,
@ -275,6 +277,7 @@ OSCILLATION_ANGLE_VALUES = {
MODEL_FAN_P9: OscillationAngleValues(max_value=150, min_value=30, step=30),
MODEL_FAN_P10: OscillationAngleValues(max_value=140, min_value=30, step=30),
MODEL_FAN_P11: OscillationAngleValues(max_value=140, min_value=30, step=30),
MODEL_FAN_P18: OscillationAngleValues(max_value=140, min_value=30, step=30),
}
FAVORITE_LEVEL_VALUES = {

View file

@ -59,7 +59,7 @@ from .const import (
FEATURE_FLAGS_FAN_1C,
FEATURE_FLAGS_FAN_P5,
FEATURE_FLAGS_FAN_P9,
FEATURE_FLAGS_FAN_P10_P11,
FEATURE_FLAGS_FAN_P10_P11_P18,
FEATURE_FLAGS_FAN_ZA5,
FEATURE_SET_ANION,
FEATURE_SET_AUTO_DETECT,
@ -99,6 +99,7 @@ from .const import (
MODEL_FAN_P9,
MODEL_FAN_P10,
MODEL_FAN_P11,
MODEL_FAN_P18,
MODEL_FAN_ZA1,
MODEL_FAN_ZA3,
MODEL_FAN_ZA4,
@ -211,8 +212,9 @@ MODEL_TO_FEATURES_MAP = {
MODEL_AIRPURIFIER_4_PRO: FEATURE_FLAGS_AIRPURIFIER_4,
MODEL_AIRPURIFIER_ZA1: FEATURE_FLAGS_AIRPURIFIER_ZA1,
MODEL_FAN_1C: FEATURE_FLAGS_FAN_1C,
MODEL_FAN_P10: FEATURE_FLAGS_FAN_P10_P11,
MODEL_FAN_P11: FEATURE_FLAGS_FAN_P10_P11,
MODEL_FAN_P10: FEATURE_FLAGS_FAN_P10_P11_P18,
MODEL_FAN_P11: FEATURE_FLAGS_FAN_P10_P11_P18,
MODEL_FAN_P18: FEATURE_FLAGS_FAN_P10_P11_P18,
MODEL_FAN_P5: FEATURE_FLAGS_FAN_P5,
MODEL_FAN_P9: FEATURE_FLAGS_FAN_P9,
MODEL_FAN_ZA1: FEATURE_FLAGS_FAN,