Add missing `motor_speed` sensor for Xiaomi Miio humidifier CA1 and CB1 (#54264)

* Add motor_speed sensor for CA1 and CB1

* Remove value limits
pull/54278/head
Maciej Bieniek 2021-08-08 15:21:55 +02:00 committed by GitHub
parent 18a0fcf931
commit aaddeb0bcd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 26 additions and 22 deletions

View File

@ -49,6 +49,8 @@ from .const import (
DOMAIN,
KEY_COORDINATOR,
KEY_DEVICE,
MODEL_AIRHUMIDIFIER_CA1,
MODEL_AIRHUMIDIFIER_CB1,
MODELS_HUMIDIFIER_MIIO,
MODELS_HUMIDIFIER_MIOT,
MODELS_HUMIDIFIER_MJJSQ,
@ -69,13 +71,14 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
}
)
ATTR_ACTUAL_MOTOR_SPEED = "actual_speed"
ATTR_ACTUAL_SPEED = "actual_speed"
ATTR_AIR_QUALITY = "air_quality"
ATTR_CHARGING = "charging"
ATTR_DISPLAY_CLOCK = "display_clock"
ATTR_HUMIDITY = "humidity"
ATTR_ILLUMINANCE = "illuminance"
ATTR_LOAD_POWER = "load_power"
ATTR_MOTOR_SPEED = "motor_speed"
ATTR_NIGHT_MODE = "night_mode"
ATTR_NIGHT_TIME_BEGIN = "night_time_begin"
ATTR_NIGHT_TIME_END = "night_time_end"
@ -130,14 +133,19 @@ SENSOR_TYPES = {
valid_min_value=0.0,
valid_max_value=100.0,
),
ATTR_ACTUAL_MOTOR_SPEED: XiaomiMiioSensorDescription(
key=ATTR_ACTUAL_MOTOR_SPEED,
ATTR_ACTUAL_SPEED: XiaomiMiioSensorDescription(
key=ATTR_ACTUAL_SPEED,
name="Actual Speed",
unit_of_measurement="rpm",
icon="mdi:fast-forward",
state_class=STATE_CLASS_MEASUREMENT,
valid_min_value=200.0,
valid_max_value=2000.0,
),
ATTR_MOTOR_SPEED: XiaomiMiioSensorDescription(
key=ATTR_MOTOR_SPEED,
name="Motor Speed",
unit_of_measurement="rpm",
icon="mdi:fast-forward",
state_class=STATE_CLASS_MEASUREMENT,
),
ATTR_ILLUMINANCE: XiaomiMiioSensorDescription(
key=ATTR_ILLUMINANCE,
@ -154,22 +162,15 @@ SENSOR_TYPES = {
),
}
HUMIDIFIER_MIIO_SENSORS = {
ATTR_HUMIDITY: "humidity",
ATTR_TEMPERATURE: "temperature",
}
HUMIDIFIER_MIOT_SENSORS = {
ATTR_HUMIDITY: "humidity",
ATTR_TEMPERATURE: "temperature",
ATTR_WATER_LEVEL: "water_level",
ATTR_ACTUAL_MOTOR_SPEED: "actual_speed",
}
HUMIDIFIER_MJJSQ_SENSORS = {
ATTR_HUMIDITY: "humidity",
ATTR_TEMPERATURE: "temperature",
}
HUMIDIFIER_MIIO_SENSORS = (ATTR_HUMIDITY, ATTR_TEMPERATURE)
HUMIDIFIER_CA1_CB1_SENSORS = (ATTR_HUMIDITY, ATTR_TEMPERATURE, ATTR_MOTOR_SPEED)
HUMIDIFIER_MIOT_SENSORS = (
ATTR_HUMIDITY,
ATTR_TEMPERATURE,
ATTR_WATER_LEVEL,
ATTR_ACTUAL_SPEED,
)
HUMIDIFIER_MJJSQ_SENSORS = (ATTR_HUMIDITY, ATTR_TEMPERATURE)
async def async_setup_platform(hass, config, async_add_entities, discovery_info=None):
@ -225,7 +226,10 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
model = config_entry.data[CONF_MODEL]
device = None
sensors = []
if model in MODELS_HUMIDIFIER_MIOT:
if model in (MODEL_AIRHUMIDIFIER_CA1, MODEL_AIRHUMIDIFIER_CB1):
device = hass.data[DOMAIN][config_entry.entry_id][KEY_DEVICE]
sensors = HUMIDIFIER_CA1_CB1_SENSORS
elif model in MODELS_HUMIDIFIER_MIOT:
device = hass.data[DOMAIN][config_entry.entry_id][KEY_DEVICE]
sensors = HUMIDIFIER_MIOT_SENSORS
elif model in MODELS_HUMIDIFIER_MJJSQ: