mirror of
https://github.com/home-assistant/core.git
synced 2025-07-27 15:17:35 +00:00
Add xiaomi air purifier 4 and 4 pro support (#75745)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
This commit is contained in:
parent
c16db4c3e1
commit
25d943d272
@ -47,6 +47,8 @@ class SetupException(Exception):
|
|||||||
|
|
||||||
|
|
||||||
# Fan Models
|
# Fan Models
|
||||||
|
MODEL_AIRPURIFIER_4 = "zhimi.airp.mb5"
|
||||||
|
MODEL_AIRPURIFIER_4_PRO = "zhimi.airp.vb4"
|
||||||
MODEL_AIRPURIFIER_2H = "zhimi.airpurifier.mc2"
|
MODEL_AIRPURIFIER_2H = "zhimi.airpurifier.mc2"
|
||||||
MODEL_AIRPURIFIER_2S = "zhimi.airpurifier.mc1"
|
MODEL_AIRPURIFIER_2S = "zhimi.airpurifier.mc1"
|
||||||
MODEL_AIRPURIFIER_3 = "zhimi.airpurifier.ma4"
|
MODEL_AIRPURIFIER_3 = "zhimi.airpurifier.ma4"
|
||||||
@ -114,6 +116,8 @@ MODELS_PURIFIER_MIOT = [
|
|||||||
MODEL_AIRPURIFIER_3C,
|
MODEL_AIRPURIFIER_3C,
|
||||||
MODEL_AIRPURIFIER_3H,
|
MODEL_AIRPURIFIER_3H,
|
||||||
MODEL_AIRPURIFIER_PROH,
|
MODEL_AIRPURIFIER_PROH,
|
||||||
|
MODEL_AIRPURIFIER_4,
|
||||||
|
MODEL_AIRPURIFIER_4_PRO,
|
||||||
]
|
]
|
||||||
MODELS_PURIFIER_MIIO = [
|
MODELS_PURIFIER_MIIO = [
|
||||||
MODEL_AIRPURIFIER_V1,
|
MODEL_AIRPURIFIER_V1,
|
||||||
@ -316,6 +320,7 @@ FEATURE_SET_FAVORITE_RPM = 262144
|
|||||||
FEATURE_SET_IONIZER = 524288
|
FEATURE_SET_IONIZER = 524288
|
||||||
FEATURE_SET_DISPLAY = 1048576
|
FEATURE_SET_DISPLAY = 1048576
|
||||||
FEATURE_SET_PTC = 2097152
|
FEATURE_SET_PTC = 2097152
|
||||||
|
FEATURE_SET_ANION = 4194304
|
||||||
|
|
||||||
FEATURE_FLAGS_AIRPURIFIER_MIIO = (
|
FEATURE_FLAGS_AIRPURIFIER_MIIO = (
|
||||||
FEATURE_SET_BUZZER
|
FEATURE_SET_BUZZER
|
||||||
@ -335,6 +340,15 @@ FEATURE_FLAGS_AIRPURIFIER_MIOT = (
|
|||||||
| FEATURE_SET_LED_BRIGHTNESS
|
| FEATURE_SET_LED_BRIGHTNESS
|
||||||
)
|
)
|
||||||
|
|
||||||
|
FEATURE_FLAGS_AIRPURIFIER_4 = (
|
||||||
|
FEATURE_SET_BUZZER
|
||||||
|
| FEATURE_SET_CHILD_LOCK
|
||||||
|
| FEATURE_SET_FAVORITE_LEVEL
|
||||||
|
| FEATURE_SET_FAN_LEVEL
|
||||||
|
| FEATURE_SET_LED_BRIGHTNESS
|
||||||
|
| FEATURE_SET_ANION
|
||||||
|
)
|
||||||
|
|
||||||
FEATURE_FLAGS_AIRPURIFIER_3C = (
|
FEATURE_FLAGS_AIRPURIFIER_3C = (
|
||||||
FEATURE_SET_BUZZER
|
FEATURE_SET_BUZZER
|
||||||
| FEATURE_SET_CHILD_LOCK
|
| FEATURE_SET_CHILD_LOCK
|
||||||
|
@ -48,6 +48,7 @@ from .const import (
|
|||||||
FEATURE_FLAGS_AIRFRESH_T2017,
|
FEATURE_FLAGS_AIRFRESH_T2017,
|
||||||
FEATURE_FLAGS_AIRPURIFIER_2S,
|
FEATURE_FLAGS_AIRPURIFIER_2S,
|
||||||
FEATURE_FLAGS_AIRPURIFIER_3C,
|
FEATURE_FLAGS_AIRPURIFIER_3C,
|
||||||
|
FEATURE_FLAGS_AIRPURIFIER_4,
|
||||||
FEATURE_FLAGS_AIRPURIFIER_MIIO,
|
FEATURE_FLAGS_AIRPURIFIER_MIIO,
|
||||||
FEATURE_FLAGS_AIRPURIFIER_MIOT,
|
FEATURE_FLAGS_AIRPURIFIER_MIOT,
|
||||||
FEATURE_FLAGS_AIRPURIFIER_PRO,
|
FEATURE_FLAGS_AIRPURIFIER_PRO,
|
||||||
@ -68,6 +69,8 @@ from .const import (
|
|||||||
MODEL_AIRPURIFIER_2H,
|
MODEL_AIRPURIFIER_2H,
|
||||||
MODEL_AIRPURIFIER_2S,
|
MODEL_AIRPURIFIER_2S,
|
||||||
MODEL_AIRPURIFIER_3C,
|
MODEL_AIRPURIFIER_3C,
|
||||||
|
MODEL_AIRPURIFIER_4,
|
||||||
|
MODEL_AIRPURIFIER_4_PRO,
|
||||||
MODEL_AIRPURIFIER_PRO,
|
MODEL_AIRPURIFIER_PRO,
|
||||||
MODEL_AIRPURIFIER_PRO_V7,
|
MODEL_AIRPURIFIER_PRO_V7,
|
||||||
MODEL_AIRPURIFIER_V3,
|
MODEL_AIRPURIFIER_V3,
|
||||||
@ -411,6 +414,14 @@ class XiaomiAirPurifier(XiaomiGenericAirPurifier):
|
|||||||
self._preset_modes = PRESET_MODES_AIRPURIFIER_PRO
|
self._preset_modes = PRESET_MODES_AIRPURIFIER_PRO
|
||||||
self._attr_supported_features = FanEntityFeature.PRESET_MODE
|
self._attr_supported_features = FanEntityFeature.PRESET_MODE
|
||||||
self._speed_count = 1
|
self._speed_count = 1
|
||||||
|
elif self._model in [MODEL_AIRPURIFIER_4, MODEL_AIRPURIFIER_4_PRO]:
|
||||||
|
self._device_features = FEATURE_FLAGS_AIRPURIFIER_4
|
||||||
|
self._available_attributes = AVAILABLE_ATTRIBUTES_AIRPURIFIER_MIOT
|
||||||
|
self._preset_modes = PRESET_MODES_AIRPURIFIER_MIOT
|
||||||
|
self._attr_supported_features = (
|
||||||
|
FanEntityFeature.SET_SPEED | FanEntityFeature.PRESET_MODE
|
||||||
|
)
|
||||||
|
self._speed_count = 3
|
||||||
elif self._model == MODEL_AIRPURIFIER_PRO_V7:
|
elif self._model == MODEL_AIRPURIFIER_PRO_V7:
|
||||||
self._device_features = FEATURE_FLAGS_AIRPURIFIER_PRO_V7
|
self._device_features = FEATURE_FLAGS_AIRPURIFIER_PRO_V7
|
||||||
self._available_attributes = AVAILABLE_ATTRIBUTES_AIRPURIFIER_PRO_V7
|
self._available_attributes = AVAILABLE_ATTRIBUTES_AIRPURIFIER_PRO_V7
|
||||||
|
@ -24,6 +24,7 @@ from .const import (
|
|||||||
FEATURE_FLAGS_AIRHUMIDIFIER_CA_AND_CB,
|
FEATURE_FLAGS_AIRHUMIDIFIER_CA_AND_CB,
|
||||||
FEATURE_FLAGS_AIRPURIFIER_2S,
|
FEATURE_FLAGS_AIRPURIFIER_2S,
|
||||||
FEATURE_FLAGS_AIRPURIFIER_3C,
|
FEATURE_FLAGS_AIRPURIFIER_3C,
|
||||||
|
FEATURE_FLAGS_AIRPURIFIER_4,
|
||||||
FEATURE_FLAGS_AIRPURIFIER_MIIO,
|
FEATURE_FLAGS_AIRPURIFIER_MIIO,
|
||||||
FEATURE_FLAGS_AIRPURIFIER_MIOT,
|
FEATURE_FLAGS_AIRPURIFIER_MIOT,
|
||||||
FEATURE_FLAGS_AIRPURIFIER_PRO,
|
FEATURE_FLAGS_AIRPURIFIER_PRO,
|
||||||
@ -55,6 +56,8 @@ from .const import (
|
|||||||
MODEL_AIRHUMIDIFIER_CB1,
|
MODEL_AIRHUMIDIFIER_CB1,
|
||||||
MODEL_AIRPURIFIER_2S,
|
MODEL_AIRPURIFIER_2S,
|
||||||
MODEL_AIRPURIFIER_3C,
|
MODEL_AIRPURIFIER_3C,
|
||||||
|
MODEL_AIRPURIFIER_4,
|
||||||
|
MODEL_AIRPURIFIER_4_PRO,
|
||||||
MODEL_AIRPURIFIER_PRO,
|
MODEL_AIRPURIFIER_PRO,
|
||||||
MODEL_AIRPURIFIER_PRO_V7,
|
MODEL_AIRPURIFIER_PRO_V7,
|
||||||
MODEL_AIRPURIFIER_V1,
|
MODEL_AIRPURIFIER_V1,
|
||||||
@ -224,6 +227,8 @@ MODEL_TO_FEATURES_MAP = {
|
|||||||
MODEL_AIRPURIFIER_PRO_V7: FEATURE_FLAGS_AIRPURIFIER_PRO_V7,
|
MODEL_AIRPURIFIER_PRO_V7: FEATURE_FLAGS_AIRPURIFIER_PRO_V7,
|
||||||
MODEL_AIRPURIFIER_V1: FEATURE_FLAGS_AIRPURIFIER_V1,
|
MODEL_AIRPURIFIER_V1: FEATURE_FLAGS_AIRPURIFIER_V1,
|
||||||
MODEL_AIRPURIFIER_V3: FEATURE_FLAGS_AIRPURIFIER_V3,
|
MODEL_AIRPURIFIER_V3: FEATURE_FLAGS_AIRPURIFIER_V3,
|
||||||
|
MODEL_AIRPURIFIER_4: FEATURE_FLAGS_AIRPURIFIER_4,
|
||||||
|
MODEL_AIRPURIFIER_4_PRO: FEATURE_FLAGS_AIRPURIFIER_4,
|
||||||
MODEL_FAN_1C: FEATURE_FLAGS_FAN_1C,
|
MODEL_FAN_1C: FEATURE_FLAGS_FAN_1C,
|
||||||
MODEL_FAN_P10: FEATURE_FLAGS_FAN_P10_P11,
|
MODEL_FAN_P10: FEATURE_FLAGS_FAN_P10_P11,
|
||||||
MODEL_FAN_P11: FEATURE_FLAGS_FAN_P10_P11,
|
MODEL_FAN_P11: FEATURE_FLAGS_FAN_P10_P11,
|
||||||
|
@ -60,6 +60,8 @@ from .const import (
|
|||||||
MODEL_AIRHUMIDIFIER_CA1,
|
MODEL_AIRHUMIDIFIER_CA1,
|
||||||
MODEL_AIRHUMIDIFIER_CB1,
|
MODEL_AIRHUMIDIFIER_CB1,
|
||||||
MODEL_AIRPURIFIER_3C,
|
MODEL_AIRPURIFIER_3C,
|
||||||
|
MODEL_AIRPURIFIER_4,
|
||||||
|
MODEL_AIRPURIFIER_4_PRO,
|
||||||
MODEL_AIRPURIFIER_PRO,
|
MODEL_AIRPURIFIER_PRO,
|
||||||
MODEL_AIRPURIFIER_PRO_V7,
|
MODEL_AIRPURIFIER_PRO_V7,
|
||||||
MODEL_AIRPURIFIER_V2,
|
MODEL_AIRPURIFIER_V2,
|
||||||
@ -100,6 +102,7 @@ ATTR_DISPLAY_CLOCK = "display_clock"
|
|||||||
ATTR_FAVORITE_SPEED = "favorite_speed"
|
ATTR_FAVORITE_SPEED = "favorite_speed"
|
||||||
ATTR_FILTER_LIFE_REMAINING = "filter_life_remaining"
|
ATTR_FILTER_LIFE_REMAINING = "filter_life_remaining"
|
||||||
ATTR_FILTER_HOURS_USED = "filter_hours_used"
|
ATTR_FILTER_HOURS_USED = "filter_hours_used"
|
||||||
|
ATTR_FILTER_LEFT_TIME = "filter_left_time"
|
||||||
ATTR_DUST_FILTER_LIFE_REMAINING = "dust_filter_life_remaining"
|
ATTR_DUST_FILTER_LIFE_REMAINING = "dust_filter_life_remaining"
|
||||||
ATTR_DUST_FILTER_LIFE_REMAINING_DAYS = "dust_filter_life_remaining_days"
|
ATTR_DUST_FILTER_LIFE_REMAINING_DAYS = "dust_filter_life_remaining_days"
|
||||||
ATTR_UPPER_FILTER_LIFE_REMAINING = "upper_filter_life_remaining"
|
ATTR_UPPER_FILTER_LIFE_REMAINING = "upper_filter_life_remaining"
|
||||||
@ -114,6 +117,7 @@ ATTR_MOTOR_SPEED = "motor_speed"
|
|||||||
ATTR_NIGHT_MODE = "night_mode"
|
ATTR_NIGHT_MODE = "night_mode"
|
||||||
ATTR_NIGHT_TIME_BEGIN = "night_time_begin"
|
ATTR_NIGHT_TIME_BEGIN = "night_time_begin"
|
||||||
ATTR_NIGHT_TIME_END = "night_time_end"
|
ATTR_NIGHT_TIME_END = "night_time_end"
|
||||||
|
ATTR_PM10 = "pm10_density"
|
||||||
ATTR_PM25 = "pm25"
|
ATTR_PM25 = "pm25"
|
||||||
ATTR_PM25_2 = "pm25_2"
|
ATTR_PM25_2 = "pm25_2"
|
||||||
ATTR_POWER = "power"
|
ATTR_POWER = "power"
|
||||||
@ -253,6 +257,13 @@ SENSOR_TYPES = {
|
|||||||
icon="mdi:cloud",
|
icon="mdi:cloud",
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
),
|
),
|
||||||
|
ATTR_PM10: XiaomiMiioSensorDescription(
|
||||||
|
key=ATTR_PM10,
|
||||||
|
name="PM10",
|
||||||
|
native_unit_of_measurement=CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
|
||||||
|
device_class=SensorDeviceClass.PM10,
|
||||||
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
|
),
|
||||||
ATTR_PM25: XiaomiMiioSensorDescription(
|
ATTR_PM25: XiaomiMiioSensorDescription(
|
||||||
key=ATTR_AQI,
|
key=ATTR_AQI,
|
||||||
name="PM2.5",
|
name="PM2.5",
|
||||||
@ -284,6 +295,14 @@ SENSOR_TYPES = {
|
|||||||
state_class=SensorStateClass.MEASUREMENT,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
entity_category=EntityCategory.DIAGNOSTIC,
|
entity_category=EntityCategory.DIAGNOSTIC,
|
||||||
),
|
),
|
||||||
|
ATTR_FILTER_LEFT_TIME: XiaomiMiioSensorDescription(
|
||||||
|
key=ATTR_FILTER_LEFT_TIME,
|
||||||
|
name="Filter time left",
|
||||||
|
native_unit_of_measurement=TIME_DAYS,
|
||||||
|
icon="mdi:clock-outline",
|
||||||
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
|
entity_category=EntityCategory.DIAGNOSTIC,
|
||||||
|
),
|
||||||
ATTR_DUST_FILTER_LIFE_REMAINING: XiaomiMiioSensorDescription(
|
ATTR_DUST_FILTER_LIFE_REMAINING: XiaomiMiioSensorDescription(
|
||||||
key=ATTR_DUST_FILTER_LIFE_REMAINING,
|
key=ATTR_DUST_FILTER_LIFE_REMAINING,
|
||||||
name="Dust filter life remaining",
|
name="Dust filter life remaining",
|
||||||
@ -385,6 +404,29 @@ PURIFIER_MIOT_SENSORS = (
|
|||||||
ATTR_TEMPERATURE,
|
ATTR_TEMPERATURE,
|
||||||
ATTR_USE_TIME,
|
ATTR_USE_TIME,
|
||||||
)
|
)
|
||||||
|
PURIFIER_4_SENSORS = (
|
||||||
|
ATTR_FILTER_LIFE_REMAINING,
|
||||||
|
ATTR_FILTER_LEFT_TIME,
|
||||||
|
ATTR_FILTER_USE,
|
||||||
|
ATTR_HUMIDITY,
|
||||||
|
ATTR_MOTOR_SPEED,
|
||||||
|
ATTR_PM25,
|
||||||
|
ATTR_PURIFY_VOLUME,
|
||||||
|
ATTR_TEMPERATURE,
|
||||||
|
ATTR_USE_TIME,
|
||||||
|
)
|
||||||
|
PURIFIER_4_PRO_SENSORS = (
|
||||||
|
ATTR_FILTER_LIFE_REMAINING,
|
||||||
|
ATTR_FILTER_LEFT_TIME,
|
||||||
|
ATTR_FILTER_USE,
|
||||||
|
ATTR_HUMIDITY,
|
||||||
|
ATTR_MOTOR_SPEED,
|
||||||
|
ATTR_PM25,
|
||||||
|
ATTR_PM10,
|
||||||
|
ATTR_PURIFY_VOLUME,
|
||||||
|
ATTR_TEMPERATURE,
|
||||||
|
ATTR_USE_TIME,
|
||||||
|
)
|
||||||
PURIFIER_3C_SENSORS = (
|
PURIFIER_3C_SENSORS = (
|
||||||
ATTR_FILTER_LIFE_REMAINING,
|
ATTR_FILTER_LIFE_REMAINING,
|
||||||
ATTR_FILTER_USE,
|
ATTR_FILTER_USE,
|
||||||
@ -478,6 +520,8 @@ MODEL_TO_SENSORS_MAP: dict[str, tuple[str, ...]] = {
|
|||||||
MODEL_AIRHUMIDIFIER_CA1: HUMIDIFIER_CA1_CB1_SENSORS,
|
MODEL_AIRHUMIDIFIER_CA1: HUMIDIFIER_CA1_CB1_SENSORS,
|
||||||
MODEL_AIRHUMIDIFIER_CB1: HUMIDIFIER_CA1_CB1_SENSORS,
|
MODEL_AIRHUMIDIFIER_CB1: HUMIDIFIER_CA1_CB1_SENSORS,
|
||||||
MODEL_AIRPURIFIER_3C: PURIFIER_3C_SENSORS,
|
MODEL_AIRPURIFIER_3C: PURIFIER_3C_SENSORS,
|
||||||
|
MODEL_AIRPURIFIER_4: PURIFIER_4_SENSORS,
|
||||||
|
MODEL_AIRPURIFIER_4_PRO: PURIFIER_4_PRO_SENSORS,
|
||||||
MODEL_AIRPURIFIER_PRO: PURIFIER_PRO_SENSORS,
|
MODEL_AIRPURIFIER_PRO: PURIFIER_PRO_SENSORS,
|
||||||
MODEL_AIRPURIFIER_PRO_V7: PURIFIER_PRO_V7_SENSORS,
|
MODEL_AIRPURIFIER_PRO_V7: PURIFIER_PRO_V7_SENSORS,
|
||||||
MODEL_AIRPURIFIER_V2: PURIFIER_V2_SENSORS,
|
MODEL_AIRPURIFIER_V2: PURIFIER_V2_SENSORS,
|
||||||
|
@ -43,6 +43,7 @@ from .const import (
|
|||||||
FEATURE_FLAGS_AIRHUMIDIFIER_MJSSQ,
|
FEATURE_FLAGS_AIRHUMIDIFIER_MJSSQ,
|
||||||
FEATURE_FLAGS_AIRPURIFIER_2S,
|
FEATURE_FLAGS_AIRPURIFIER_2S,
|
||||||
FEATURE_FLAGS_AIRPURIFIER_3C,
|
FEATURE_FLAGS_AIRPURIFIER_3C,
|
||||||
|
FEATURE_FLAGS_AIRPURIFIER_4,
|
||||||
FEATURE_FLAGS_AIRPURIFIER_MIIO,
|
FEATURE_FLAGS_AIRPURIFIER_MIIO,
|
||||||
FEATURE_FLAGS_AIRPURIFIER_MIOT,
|
FEATURE_FLAGS_AIRPURIFIER_MIOT,
|
||||||
FEATURE_FLAGS_AIRPURIFIER_PRO,
|
FEATURE_FLAGS_AIRPURIFIER_PRO,
|
||||||
@ -55,6 +56,7 @@ from .const import (
|
|||||||
FEATURE_FLAGS_FAN_P9,
|
FEATURE_FLAGS_FAN_P9,
|
||||||
FEATURE_FLAGS_FAN_P10_P11,
|
FEATURE_FLAGS_FAN_P10_P11,
|
||||||
FEATURE_FLAGS_FAN_ZA5,
|
FEATURE_FLAGS_FAN_ZA5,
|
||||||
|
FEATURE_SET_ANION,
|
||||||
FEATURE_SET_AUTO_DETECT,
|
FEATURE_SET_AUTO_DETECT,
|
||||||
FEATURE_SET_BUZZER,
|
FEATURE_SET_BUZZER,
|
||||||
FEATURE_SET_CHILD_LOCK,
|
FEATURE_SET_CHILD_LOCK,
|
||||||
@ -76,6 +78,8 @@ from .const import (
|
|||||||
MODEL_AIRPURIFIER_2H,
|
MODEL_AIRPURIFIER_2H,
|
||||||
MODEL_AIRPURIFIER_2S,
|
MODEL_AIRPURIFIER_2S,
|
||||||
MODEL_AIRPURIFIER_3C,
|
MODEL_AIRPURIFIER_3C,
|
||||||
|
MODEL_AIRPURIFIER_4,
|
||||||
|
MODEL_AIRPURIFIER_4_PRO,
|
||||||
MODEL_AIRPURIFIER_PRO,
|
MODEL_AIRPURIFIER_PRO,
|
||||||
MODEL_AIRPURIFIER_PRO_V7,
|
MODEL_AIRPURIFIER_PRO_V7,
|
||||||
MODEL_AIRPURIFIER_V1,
|
MODEL_AIRPURIFIER_V1,
|
||||||
@ -128,6 +132,7 @@ ATTR_DRY = "dry"
|
|||||||
ATTR_LEARN_MODE = "learn_mode"
|
ATTR_LEARN_MODE = "learn_mode"
|
||||||
ATTR_LED = "led"
|
ATTR_LED = "led"
|
||||||
ATTR_IONIZER = "ionizer"
|
ATTR_IONIZER = "ionizer"
|
||||||
|
ATTR_ANION = "anion"
|
||||||
ATTR_LOAD_POWER = "load_power"
|
ATTR_LOAD_POWER = "load_power"
|
||||||
ATTR_MODEL = "model"
|
ATTR_MODEL = "model"
|
||||||
ATTR_POWER = "power"
|
ATTR_POWER = "power"
|
||||||
@ -188,6 +193,8 @@ MODEL_TO_FEATURES_MAP = {
|
|||||||
MODEL_AIRPURIFIER_PRO_V7: FEATURE_FLAGS_AIRPURIFIER_PRO_V7,
|
MODEL_AIRPURIFIER_PRO_V7: FEATURE_FLAGS_AIRPURIFIER_PRO_V7,
|
||||||
MODEL_AIRPURIFIER_V1: FEATURE_FLAGS_AIRPURIFIER_V1,
|
MODEL_AIRPURIFIER_V1: FEATURE_FLAGS_AIRPURIFIER_V1,
|
||||||
MODEL_AIRPURIFIER_V3: FEATURE_FLAGS_AIRPURIFIER_V3,
|
MODEL_AIRPURIFIER_V3: FEATURE_FLAGS_AIRPURIFIER_V3,
|
||||||
|
MODEL_AIRPURIFIER_4: FEATURE_FLAGS_AIRPURIFIER_4,
|
||||||
|
MODEL_AIRPURIFIER_4_PRO: FEATURE_FLAGS_AIRPURIFIER_4,
|
||||||
MODEL_FAN_1C: FEATURE_FLAGS_FAN_1C,
|
MODEL_FAN_1C: FEATURE_FLAGS_FAN_1C,
|
||||||
MODEL_FAN_P10: FEATURE_FLAGS_FAN_P10_P11,
|
MODEL_FAN_P10: FEATURE_FLAGS_FAN_P10_P11,
|
||||||
MODEL_FAN_P11: FEATURE_FLAGS_FAN_P10_P11,
|
MODEL_FAN_P11: FEATURE_FLAGS_FAN_P10_P11,
|
||||||
@ -300,6 +307,15 @@ SWITCH_TYPES = (
|
|||||||
method_off="async_set_ionizer_off",
|
method_off="async_set_ionizer_off",
|
||||||
entity_category=EntityCategory.CONFIG,
|
entity_category=EntityCategory.CONFIG,
|
||||||
),
|
),
|
||||||
|
XiaomiMiioSwitchDescription(
|
||||||
|
key=ATTR_ANION,
|
||||||
|
feature=FEATURE_SET_ANION,
|
||||||
|
name="Ionizer",
|
||||||
|
icon="mdi:shimmer",
|
||||||
|
method_on="async_set_anion_on",
|
||||||
|
method_off="async_set_anion_off",
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
XiaomiMiioSwitchDescription(
|
XiaomiMiioSwitchDescription(
|
||||||
key=ATTR_PTC,
|
key=ATTR_PTC,
|
||||||
feature=FEATURE_SET_PTC,
|
feature=FEATURE_SET_PTC,
|
||||||
@ -678,6 +694,22 @@ class XiaomiGenericCoordinatedSwitch(XiaomiCoordinatedMiioEntity, SwitchEntity):
|
|||||||
False,
|
False,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
async def async_set_anion_on(self) -> bool:
|
||||||
|
"""Turn ionizer on."""
|
||||||
|
return await self._try_command(
|
||||||
|
"Turning ionizer of the miio device on failed.",
|
||||||
|
self._device.set_anion,
|
||||||
|
True,
|
||||||
|
)
|
||||||
|
|
||||||
|
async def async_set_anion_off(self) -> bool:
|
||||||
|
"""Turn ionizer off."""
|
||||||
|
return await self._try_command(
|
||||||
|
"Turning ionizer of the miio device off failed.",
|
||||||
|
self._device.set_anion,
|
||||||
|
False,
|
||||||
|
)
|
||||||
|
|
||||||
async def async_set_ptc_on(self) -> bool:
|
async def async_set_ptc_on(self) -> bool:
|
||||||
"""Turn ionizer on."""
|
"""Turn ionizer on."""
|
||||||
return await self._try_command(
|
return await self._try_command(
|
||||||
|
@ -21,10 +21,10 @@ from homeassistant.config_entries import ConfigEntry
|
|||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
from homeassistant.helpers import config_validation as cv, entity_platform
|
from homeassistant.helpers import config_validation as cv, entity_platform
|
||||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||||
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator
|
||||||
from homeassistant.util.dt import as_utc
|
from homeassistant.util.dt import as_utc
|
||||||
|
|
||||||
from . import VacuumCoordinatorData
|
from . import VacuumCoordinatorData
|
||||||
from ...helpers.update_coordinator import DataUpdateCoordinator
|
|
||||||
from .const import (
|
from .const import (
|
||||||
CONF_DEVICE,
|
CONF_DEVICE,
|
||||||
CONF_FLOW_TYPE,
|
CONF_FLOW_TYPE,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user