Add support for Xiaomi Purifier 4 Lite (#79758)
* Added support for Xiaomi Purifier 4 Lite * Remove favorite level from Xiaomi purifier 4 lite. * Fix linting Co-authored-by: borky-git <borky-git@protonmail.com>
This commit is contained in:
parent
9b44cf0127
commit
b51c434b9d
5 changed files with 45 additions and 0 deletions
|
@ -48,6 +48,8 @@ class SetupException(Exception):
|
|||
|
||||
# Fan Models
|
||||
MODEL_AIRPURIFIER_4 = "zhimi.airp.mb5"
|
||||
MODEL_AIRPURIFIER_4_LITE_RMA1 = "zhimi.airpurifier.rma1"
|
||||
MODEL_AIRPURIFIER_4_LITE_RMB1 = "zhimi.airp.rmb1"
|
||||
MODEL_AIRPURIFIER_4_PRO = "zhimi.airp.vb4"
|
||||
MODEL_AIRPURIFIER_2H = "zhimi.airpurifier.mc2"
|
||||
MODEL_AIRPURIFIER_2S = "zhimi.airpurifier.mc1"
|
||||
|
@ -117,6 +119,8 @@ MODELS_PURIFIER_MIOT = [
|
|||
MODEL_AIRPURIFIER_3C,
|
||||
MODEL_AIRPURIFIER_3H,
|
||||
MODEL_AIRPURIFIER_PROH,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMA1,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMB1,
|
||||
MODEL_AIRPURIFIER_4,
|
||||
MODEL_AIRPURIFIER_4_PRO,
|
||||
]
|
||||
|
@ -342,6 +346,10 @@ FEATURE_FLAGS_AIRPURIFIER_MIOT = (
|
|||
| FEATURE_SET_LED_BRIGHTNESS
|
||||
)
|
||||
|
||||
FEATURE_FLAGS_AIRPURIFIER_4_LITE = (
|
||||
FEATURE_SET_BUZZER | FEATURE_SET_CHILD_LOCK | FEATURE_SET_LED_BRIGHTNESS
|
||||
)
|
||||
|
||||
FEATURE_FLAGS_AIRPURIFIER_4 = (
|
||||
FEATURE_SET_BUZZER
|
||||
| FEATURE_SET_CHILD_LOCK
|
||||
|
|
|
@ -49,6 +49,7 @@ from .const import (
|
|||
FEATURE_FLAGS_AIRPURIFIER_2S,
|
||||
FEATURE_FLAGS_AIRPURIFIER_3C,
|
||||
FEATURE_FLAGS_AIRPURIFIER_4,
|
||||
FEATURE_FLAGS_AIRPURIFIER_4_LITE,
|
||||
FEATURE_FLAGS_AIRPURIFIER_MIIO,
|
||||
FEATURE_FLAGS_AIRPURIFIER_MIOT,
|
||||
FEATURE_FLAGS_AIRPURIFIER_PRO,
|
||||
|
@ -70,6 +71,8 @@ from .const import (
|
|||
MODEL_AIRPURIFIER_2S,
|
||||
MODEL_AIRPURIFIER_3C,
|
||||
MODEL_AIRPURIFIER_4,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMA1,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMB1,
|
||||
MODEL_AIRPURIFIER_4_PRO,
|
||||
MODEL_AIRPURIFIER_PRO,
|
||||
MODEL_AIRPURIFIER_PRO_V7,
|
||||
|
@ -151,6 +154,7 @@ AVAILABLE_ATTRIBUTES_AIRFRESH = {
|
|||
}
|
||||
|
||||
PRESET_MODES_AIRPURIFIER = ["Auto", "Silent", "Favorite", "Idle"]
|
||||
PRESET_MODES_AIRPURIFIER_4_LITE = ["Auto", "Silent", "Favorite"]
|
||||
PRESET_MODES_AIRPURIFIER_MIOT = ["Auto", "Silent", "Favorite", "Fan"]
|
||||
PRESET_MODES_AIRPURIFIER_PRO = ["Auto", "Silent", "Favorite"]
|
||||
PRESET_MODES_AIRPURIFIER_PRO_V7 = PRESET_MODES_AIRPURIFIER_PRO
|
||||
|
@ -424,6 +428,15 @@ class XiaomiAirPurifier(XiaomiGenericAirPurifier):
|
|||
FanEntityFeature.SET_SPEED | FanEntityFeature.PRESET_MODE
|
||||
)
|
||||
self._speed_count = 3
|
||||
elif self._model in [
|
||||
MODEL_AIRPURIFIER_4_LITE_RMA1,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMB1,
|
||||
]:
|
||||
self._device_features = FEATURE_FLAGS_AIRPURIFIER_4_LITE
|
||||
self._available_attributes = AVAILABLE_ATTRIBUTES_AIRPURIFIER_MIOT
|
||||
self._preset_modes = PRESET_MODES_AIRPURIFIER_4_LITE
|
||||
self._attr_supported_features = FanEntityFeature.PRESET_MODE
|
||||
self._speed_count = 1
|
||||
elif self._model == MODEL_AIRPURIFIER_PRO_V7:
|
||||
self._device_features = FEATURE_FLAGS_AIRPURIFIER_PRO_V7
|
||||
self._available_attributes = AVAILABLE_ATTRIBUTES_AIRPURIFIER_PRO_V7
|
||||
|
|
|
@ -32,6 +32,7 @@ from .const import (
|
|||
FEATURE_FLAGS_AIRPURIFIER_2S,
|
||||
FEATURE_FLAGS_AIRPURIFIER_3C,
|
||||
FEATURE_FLAGS_AIRPURIFIER_4,
|
||||
FEATURE_FLAGS_AIRPURIFIER_4_LITE,
|
||||
FEATURE_FLAGS_AIRPURIFIER_MIIO,
|
||||
FEATURE_FLAGS_AIRPURIFIER_MIOT,
|
||||
FEATURE_FLAGS_AIRPURIFIER_PRO,
|
||||
|
@ -65,6 +66,8 @@ from .const import (
|
|||
MODEL_AIRPURIFIER_2S,
|
||||
MODEL_AIRPURIFIER_3C,
|
||||
MODEL_AIRPURIFIER_4,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMA1,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMB1,
|
||||
MODEL_AIRPURIFIER_4_PRO,
|
||||
MODEL_AIRPURIFIER_PRO,
|
||||
MODEL_AIRPURIFIER_PRO_V7,
|
||||
|
@ -242,6 +245,8 @@ MODEL_TO_FEATURES_MAP = {
|
|||
MODEL_AIRPURIFIER_PRO_V7: FEATURE_FLAGS_AIRPURIFIER_PRO_V7,
|
||||
MODEL_AIRPURIFIER_V1: FEATURE_FLAGS_AIRPURIFIER_V1,
|
||||
MODEL_AIRPURIFIER_V3: FEATURE_FLAGS_AIRPURIFIER_V3,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMA1: FEATURE_FLAGS_AIRPURIFIER_4_LITE,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMB1: FEATURE_FLAGS_AIRPURIFIER_4_LITE,
|
||||
MODEL_AIRPURIFIER_4: FEATURE_FLAGS_AIRPURIFIER_4,
|
||||
MODEL_AIRPURIFIER_4_PRO: FEATURE_FLAGS_AIRPURIFIER_4,
|
||||
MODEL_FAN_1C: FEATURE_FLAGS_FAN_1C,
|
||||
|
|
|
@ -63,6 +63,8 @@ from .const import (
|
|||
MODEL_AIRHUMIDIFIER_CB1,
|
||||
MODEL_AIRPURIFIER_3C,
|
||||
MODEL_AIRPURIFIER_4,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMA1,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMB1,
|
||||
MODEL_AIRPURIFIER_4_PRO,
|
||||
MODEL_AIRPURIFIER_PRO,
|
||||
MODEL_AIRPURIFIER_PRO_V7,
|
||||
|
@ -411,6 +413,16 @@ PURIFIER_MIOT_SENSORS = (
|
|||
ATTR_TEMPERATURE,
|
||||
ATTR_USE_TIME,
|
||||
)
|
||||
PURIFIER_4_LITE_SENSORS = (
|
||||
ATTR_FILTER_LIFE_REMAINING,
|
||||
ATTR_FILTER_LEFT_TIME,
|
||||
ATTR_FILTER_USE,
|
||||
ATTR_HUMIDITY,
|
||||
ATTR_MOTOR_SPEED,
|
||||
ATTR_PM25,
|
||||
ATTR_TEMPERATURE,
|
||||
ATTR_USE_TIME,
|
||||
)
|
||||
PURIFIER_4_SENSORS = (
|
||||
ATTR_FILTER_LIFE_REMAINING,
|
||||
ATTR_FILTER_LEFT_TIME,
|
||||
|
@ -528,6 +540,8 @@ MODEL_TO_SENSORS_MAP: dict[str, tuple[str, ...]] = {
|
|||
MODEL_AIRHUMIDIFIER_CA1: HUMIDIFIER_CA1_CB1_SENSORS,
|
||||
MODEL_AIRHUMIDIFIER_CB1: HUMIDIFIER_CA1_CB1_SENSORS,
|
||||
MODEL_AIRPURIFIER_3C: PURIFIER_3C_SENSORS,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMA1: PURIFIER_4_LITE_SENSORS,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMB1: PURIFIER_4_LITE_SENSORS,
|
||||
MODEL_AIRPURIFIER_4: PURIFIER_4_SENSORS,
|
||||
MODEL_AIRPURIFIER_4_PRO: PURIFIER_4_PRO_SENSORS,
|
||||
MODEL_AIRPURIFIER_PRO: PURIFIER_PRO_SENSORS,
|
||||
|
|
|
@ -46,6 +46,7 @@ from .const import (
|
|||
FEATURE_FLAGS_AIRPURIFIER_2S,
|
||||
FEATURE_FLAGS_AIRPURIFIER_3C,
|
||||
FEATURE_FLAGS_AIRPURIFIER_4,
|
||||
FEATURE_FLAGS_AIRPURIFIER_4_LITE,
|
||||
FEATURE_FLAGS_AIRPURIFIER_MIIO,
|
||||
FEATURE_FLAGS_AIRPURIFIER_MIOT,
|
||||
FEATURE_FLAGS_AIRPURIFIER_PRO,
|
||||
|
@ -82,6 +83,8 @@ from .const import (
|
|||
MODEL_AIRPURIFIER_2S,
|
||||
MODEL_AIRPURIFIER_3C,
|
||||
MODEL_AIRPURIFIER_4,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMA1,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMB1,
|
||||
MODEL_AIRPURIFIER_4_PRO,
|
||||
MODEL_AIRPURIFIER_PRO,
|
||||
MODEL_AIRPURIFIER_PRO_V7,
|
||||
|
@ -197,6 +200,8 @@ MODEL_TO_FEATURES_MAP = {
|
|||
MODEL_AIRPURIFIER_PRO_V7: FEATURE_FLAGS_AIRPURIFIER_PRO_V7,
|
||||
MODEL_AIRPURIFIER_V1: FEATURE_FLAGS_AIRPURIFIER_V1,
|
||||
MODEL_AIRPURIFIER_V3: FEATURE_FLAGS_AIRPURIFIER_V3,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMA1: FEATURE_FLAGS_AIRPURIFIER_4_LITE,
|
||||
MODEL_AIRPURIFIER_4_LITE_RMB1: FEATURE_FLAGS_AIRPURIFIER_4_LITE,
|
||||
MODEL_AIRPURIFIER_4: FEATURE_FLAGS_AIRPURIFIER_4,
|
||||
MODEL_AIRPURIFIER_4_PRO: FEATURE_FLAGS_AIRPURIFIER_4,
|
||||
MODEL_FAN_1C: FEATURE_FLAGS_FAN_1C,
|
||||
|
|
Loading…
Add table
Reference in a new issue