Add entity category to Xiaomi Miio (#57719)
This commit is contained in:
parent
e34aed743c
commit
b0ff28ceb4
5 changed files with 51 additions and 1 deletions
|
@ -11,6 +11,7 @@ from homeassistant.components.binary_sensor import (
|
|||
BinarySensorEntity,
|
||||
BinarySensorEntityDescription,
|
||||
)
|
||||
from homeassistant.const import ENTITY_CATEGORY_DIAGNOSTIC
|
||||
|
||||
from . import VacuumCoordinatorDataAttributes
|
||||
from .const import (
|
||||
|
@ -50,6 +51,7 @@ BINARY_SENSOR_TYPES = (
|
|||
key=ATTR_NO_WATER,
|
||||
name="Water Tank Empty",
|
||||
icon="mdi:water-off-outline",
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
XiaomiMiioBinarySensorDescription(
|
||||
key=ATTR_WATER_TANK_DETACHED,
|
||||
|
@ -57,11 +59,13 @@ BINARY_SENSOR_TYPES = (
|
|||
icon="mdi:car-coolant-level",
|
||||
device_class=DEVICE_CLASS_CONNECTIVITY,
|
||||
value=lambda value: not value,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
XiaomiMiioBinarySensorDescription(
|
||||
key=ATTR_POWERSUPPLY_ATTACHED,
|
||||
name="Power Supply",
|
||||
device_class=DEVICE_CLASS_PLUG,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
)
|
||||
|
||||
|
@ -75,6 +79,7 @@ VACUUM_SENSORS = {
|
|||
parent_key=VacuumCoordinatorDataAttributes.status,
|
||||
entity_registry_enabled_default=True,
|
||||
device_class=DEVICE_CLASS_CONNECTIVITY,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
ATTR_WATER_BOX_ATTACHED: XiaomiMiioBinarySensorDescription(
|
||||
key=ATTR_WATER_BOX_ATTACHED,
|
||||
|
@ -83,6 +88,7 @@ VACUUM_SENSORS = {
|
|||
parent_key=VacuumCoordinatorDataAttributes.status,
|
||||
entity_registry_enabled_default=True,
|
||||
device_class=DEVICE_CLASS_CONNECTIVITY,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
ATTR_WATER_SHORTAGE: XiaomiMiioBinarySensorDescription(
|
||||
key=ATTR_WATER_SHORTAGE,
|
||||
|
@ -91,6 +97,7 @@ VACUUM_SENSORS = {
|
|||
parent_key=VacuumCoordinatorDataAttributes.status,
|
||||
entity_registry_enabled_default=True,
|
||||
device_class=DEVICE_CLASS_PROBLEM,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
}
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ from dataclasses import dataclass
|
|||
from enum import Enum
|
||||
|
||||
from homeassistant.components.number import NumberEntity, NumberEntityDescription
|
||||
from homeassistant.const import DEGREE, TIME_MINUTES
|
||||
from homeassistant.const import DEGREE, ENTITY_CATEGORY_CONFIG, TIME_MINUTES
|
||||
from homeassistant.core import callback
|
||||
|
||||
from .const import (
|
||||
|
@ -108,6 +108,7 @@ NUMBER_TYPES = {
|
|||
step=10,
|
||||
available_with_device_off=False,
|
||||
method="async_set_motor_speed",
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
FEATURE_SET_FAVORITE_LEVEL: XiaomiMiioNumberDescription(
|
||||
key=ATTR_FAVORITE_LEVEL,
|
||||
|
@ -117,6 +118,7 @@ NUMBER_TYPES = {
|
|||
max_value=17,
|
||||
step=1,
|
||||
method="async_set_favorite_level",
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
FEATURE_SET_FAN_LEVEL: XiaomiMiioNumberDescription(
|
||||
key=ATTR_FAN_LEVEL,
|
||||
|
@ -126,6 +128,7 @@ NUMBER_TYPES = {
|
|||
max_value=3,
|
||||
step=1,
|
||||
method="async_set_fan_level",
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
FEATURE_SET_VOLUME: XiaomiMiioNumberDescription(
|
||||
key=ATTR_VOLUME,
|
||||
|
@ -135,6 +138,7 @@ NUMBER_TYPES = {
|
|||
max_value=100,
|
||||
step=1,
|
||||
method="async_set_volume",
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
FEATURE_SET_OSCILLATION_ANGLE: XiaomiMiioNumberDescription(
|
||||
key=ATTR_OSCILLATION_ANGLE,
|
||||
|
@ -145,6 +149,7 @@ NUMBER_TYPES = {
|
|||
max_value=120,
|
||||
step=1,
|
||||
method="async_set_oscillation_angle",
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
FEATURE_SET_DELAY_OFF_COUNTDOWN: XiaomiMiioNumberDescription(
|
||||
key=ATTR_DELAY_OFF_COUNTDOWN,
|
||||
|
@ -155,6 +160,7 @@ NUMBER_TYPES = {
|
|||
max_value=480,
|
||||
step=1,
|
||||
method="async_set_delay_off_countdown",
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
FEATURE_SET_LED_BRIGHTNESS_LEVEL: XiaomiMiioNumberDescription(
|
||||
key=ATTR_LED_BRIGHTNESS_LEVEL,
|
||||
|
@ -164,6 +170,7 @@ NUMBER_TYPES = {
|
|||
max_value=8,
|
||||
step=1,
|
||||
method="async_set_led_brightness_level",
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
FEATURE_SET_FAVORITE_RPM: XiaomiMiioNumberDescription(
|
||||
key=ATTR_FAVORITE_RPM,
|
||||
|
@ -174,6 +181,7 @@ NUMBER_TYPES = {
|
|||
max_value=2300,
|
||||
step=10,
|
||||
method="async_set_favorite_rpm",
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
}
|
||||
|
||||
|
|
|
@ -12,6 +12,7 @@ from miio.airpurifier_miot import LedBrightness as AirpurifierMiotLedBrightness
|
|||
from miio.fan import LedBrightness as FanLedBrightness
|
||||
|
||||
from homeassistant.components.select import SelectEntity, SelectEntityDescription
|
||||
from homeassistant.const import ENTITY_CATEGORY_CONFIG
|
||||
from homeassistant.core import callback
|
||||
|
||||
from .const import (
|
||||
|
@ -63,6 +64,7 @@ SELECTOR_TYPES = {
|
|||
icon="mdi:brightness-6",
|
||||
device_class="xiaomi_miio__led_brightness",
|
||||
options=("bright", "dim", "off"),
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
}
|
||||
|
||||
|
|
|
@ -38,6 +38,7 @@ from homeassistant.const import (
|
|||
DEVICE_CLASS_PRESSURE,
|
||||
DEVICE_CLASS_TEMPERATURE,
|
||||
DEVICE_CLASS_TIMESTAMP,
|
||||
ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
LIGHT_LUX,
|
||||
PERCENTAGE,
|
||||
POWER_WATT,
|
||||
|
@ -172,6 +173,7 @@ SENSOR_TYPES = {
|
|||
native_unit_of_measurement=PERCENTAGE,
|
||||
icon="mdi:water-check",
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
ATTR_ACTUAL_SPEED: XiaomiMiioSensorDescription(
|
||||
key=ATTR_ACTUAL_SPEED,
|
||||
|
@ -179,6 +181,7 @@ SENSOR_TYPES = {
|
|||
native_unit_of_measurement="rpm",
|
||||
icon="mdi:fast-forward",
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
ATTR_MOTOR_SPEED: XiaomiMiioSensorDescription(
|
||||
key=ATTR_MOTOR_SPEED,
|
||||
|
@ -186,6 +189,7 @@ SENSOR_TYPES = {
|
|||
native_unit_of_measurement="rpm",
|
||||
icon="mdi:fast-forward",
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
ATTR_MOTOR2_SPEED: XiaomiMiioSensorDescription(
|
||||
key=ATTR_MOTOR2_SPEED,
|
||||
|
@ -193,6 +197,7 @@ SENSOR_TYPES = {
|
|||
native_unit_of_measurement="rpm",
|
||||
icon="mdi:fast-forward",
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
ATTR_USE_TIME: XiaomiMiioSensorDescription(
|
||||
key=ATTR_USE_TIME,
|
||||
|
@ -201,6 +206,7 @@ SENSOR_TYPES = {
|
|||
icon="mdi:progress-clock",
|
||||
state_class=STATE_CLASS_TOTAL_INCREASING,
|
||||
entity_registry_enabled_default=False,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
ATTR_ILLUMINANCE: XiaomiMiioSensorDescription(
|
||||
key=ATTR_ILLUMINANCE,
|
||||
|
@ -236,6 +242,7 @@ SENSOR_TYPES = {
|
|||
icon="mdi:air-filter",
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
attributes=("filter_type",),
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
ATTR_FILTER_USE: XiaomiMiioSensorDescription(
|
||||
key=ATTR_FILTER_HOURS_USED,
|
||||
|
@ -243,6 +250,7 @@ SENSOR_TYPES = {
|
|||
native_unit_of_measurement=TIME_HOURS,
|
||||
icon="mdi:clock-outline",
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
ATTR_CARBON_DIOXIDE: XiaomiMiioSensorDescription(
|
||||
key=ATTR_CARBON_DIOXIDE,
|
||||
|
@ -258,6 +266,7 @@ SENSOR_TYPES = {
|
|||
device_class=DEVICE_CLASS_GAS,
|
||||
state_class=STATE_CLASS_TOTAL_INCREASING,
|
||||
entity_registry_enabled_default=False,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
ATTR_BATTERY: XiaomiMiioSensorDescription(
|
||||
key=ATTR_BATTERY,
|
||||
|
@ -265,6 +274,7 @@ SENSOR_TYPES = {
|
|||
native_unit_of_measurement=PERCENTAGE,
|
||||
device_class=DEVICE_CLASS_BATTERY,
|
||||
state_class=STATE_CLASS_MEASUREMENT,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
}
|
||||
|
||||
|
@ -391,6 +401,7 @@ VACUUM_SENSORS = {
|
|||
device_class=DEVICE_CLASS_TIMESTAMP,
|
||||
parent_key=VacuumCoordinatorDataAttributes.dnd_status,
|
||||
entity_registry_enabled_default=False,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
f"dnd_{ATTR_DND_END}": XiaomiMiioSensorDescription(
|
||||
key=ATTR_DND_END,
|
||||
|
@ -399,6 +410,7 @@ VACUUM_SENSORS = {
|
|||
device_class=DEVICE_CLASS_TIMESTAMP,
|
||||
parent_key=VacuumCoordinatorDataAttributes.dnd_status,
|
||||
entity_registry_enabled_default=False,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
f"last_clean_{ATTR_LAST_CLEAN_START}": XiaomiMiioSensorDescription(
|
||||
key=ATTR_LAST_CLEAN_START,
|
||||
|
@ -406,6 +418,7 @@ VACUUM_SENSORS = {
|
|||
name="Last Clean Start",
|
||||
device_class=DEVICE_CLASS_TIMESTAMP,
|
||||
parent_key=VacuumCoordinatorDataAttributes.last_clean_details,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
f"last_clean_{ATTR_LAST_CLEAN_END}": XiaomiMiioSensorDescription(
|
||||
key=ATTR_LAST_CLEAN_END,
|
||||
|
@ -413,6 +426,7 @@ VACUUM_SENSORS = {
|
|||
device_class=DEVICE_CLASS_TIMESTAMP,
|
||||
parent_key=VacuumCoordinatorDataAttributes.last_clean_details,
|
||||
name="Last Clean End",
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
f"last_clean_{ATTR_LAST_CLEAN_TIME}": XiaomiMiioSensorDescription(
|
||||
native_unit_of_measurement=TIME_SECONDS,
|
||||
|
@ -420,6 +434,7 @@ VACUUM_SENSORS = {
|
|||
key=ATTR_LAST_CLEAN_TIME,
|
||||
parent_key=VacuumCoordinatorDataAttributes.last_clean_details,
|
||||
name="Last Clean Duration",
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
f"last_clean_{ATTR_LAST_CLEAN_AREA}": XiaomiMiioSensorDescription(
|
||||
native_unit_of_measurement=AREA_SQUARE_METERS,
|
||||
|
@ -427,6 +442,7 @@ VACUUM_SENSORS = {
|
|||
key=ATTR_LAST_CLEAN_AREA,
|
||||
parent_key=VacuumCoordinatorDataAttributes.last_clean_details,
|
||||
name="Last Clean Area",
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
f"clean_history_{ATTR_CLEAN_HISTORY_TOTAL_DURATION}": XiaomiMiioSensorDescription(
|
||||
native_unit_of_measurement=TIME_SECONDS,
|
||||
|
@ -435,6 +451,7 @@ VACUUM_SENSORS = {
|
|||
parent_key=VacuumCoordinatorDataAttributes.clean_history_status,
|
||||
name="Total duration",
|
||||
entity_registry_enabled_default=False,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
f"clean_history_{ATTR_CLEAN_HISTORY_TOTAL_AREA}": XiaomiMiioSensorDescription(
|
||||
native_unit_of_measurement=AREA_SQUARE_METERS,
|
||||
|
@ -443,6 +460,7 @@ VACUUM_SENSORS = {
|
|||
parent_key=VacuumCoordinatorDataAttributes.clean_history_status,
|
||||
name="Total Clean Area",
|
||||
entity_registry_enabled_default=False,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
f"clean_history_{ATTR_CLEAN_HISTORY_COUNT}": XiaomiMiioSensorDescription(
|
||||
native_unit_of_measurement="",
|
||||
|
@ -452,6 +470,7 @@ VACUUM_SENSORS = {
|
|||
parent_key=VacuumCoordinatorDataAttributes.clean_history_status,
|
||||
name="Total Clean Count",
|
||||
entity_registry_enabled_default=False,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
f"clean_history_{ATTR_CLEAN_HISTORY_DUST_COLLECTION_COUNT}": XiaomiMiioSensorDescription(
|
||||
native_unit_of_measurement="",
|
||||
|
@ -461,6 +480,7 @@ VACUUM_SENSORS = {
|
|||
parent_key=VacuumCoordinatorDataAttributes.clean_history_status,
|
||||
name="Total Dust Collection Count",
|
||||
entity_registry_enabled_default=False,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
f"consumable_{ATTR_CONSUMABLE_STATUS_MAIN_BRUSH_LEFT}": XiaomiMiioSensorDescription(
|
||||
native_unit_of_measurement=TIME_SECONDS,
|
||||
|
@ -469,6 +489,7 @@ VACUUM_SENSORS = {
|
|||
parent_key=VacuumCoordinatorDataAttributes.consumable_status,
|
||||
name="Main Brush Left",
|
||||
entity_registry_enabled_default=False,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
f"consumable_{ATTR_CONSUMABLE_STATUS_SIDE_BRUSH_LEFT}": XiaomiMiioSensorDescription(
|
||||
native_unit_of_measurement=TIME_SECONDS,
|
||||
|
@ -477,6 +498,7 @@ VACUUM_SENSORS = {
|
|||
parent_key=VacuumCoordinatorDataAttributes.consumable_status,
|
||||
name="Side Brush Left",
|
||||
entity_registry_enabled_default=False,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
f"consumable_{ATTR_CONSUMABLE_STATUS_FILTER_LEFT}": XiaomiMiioSensorDescription(
|
||||
native_unit_of_measurement=TIME_SECONDS,
|
||||
|
@ -485,6 +507,7 @@ VACUUM_SENSORS = {
|
|||
parent_key=VacuumCoordinatorDataAttributes.consumable_status,
|
||||
name="Filter Left",
|
||||
entity_registry_enabled_default=False,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
f"consumable_{ATTR_CONSUMABLE_STATUS_SENSOR_DIRTY_LEFT}": XiaomiMiioSensorDescription(
|
||||
native_unit_of_measurement=TIME_SECONDS,
|
||||
|
@ -493,6 +516,7 @@ VACUUM_SENSORS = {
|
|||
parent_key=VacuumCoordinatorDataAttributes.consumable_status,
|
||||
name="Sensor Dirty Left",
|
||||
entity_registry_enabled_default=False,
|
||||
entity_category=ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
),
|
||||
}
|
||||
|
||||
|
|
|
@ -22,6 +22,7 @@ from homeassistant.const import (
|
|||
ATTR_TEMPERATURE,
|
||||
CONF_HOST,
|
||||
CONF_TOKEN,
|
||||
ENTITY_CATEGORY_CONFIG,
|
||||
)
|
||||
from homeassistant.core import callback
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
|
@ -206,6 +207,7 @@ SWITCH_TYPES = (
|
|||
icon="mdi:volume-high",
|
||||
method_on="async_set_buzzer_on",
|
||||
method_off="async_set_buzzer_off",
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
XiaomiMiioSwitchDescription(
|
||||
key=ATTR_CHILD_LOCK,
|
||||
|
@ -214,6 +216,7 @@ SWITCH_TYPES = (
|
|||
icon="mdi:lock",
|
||||
method_on="async_set_child_lock_on",
|
||||
method_off="async_set_child_lock_off",
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
XiaomiMiioSwitchDescription(
|
||||
key=ATTR_DRY,
|
||||
|
@ -222,6 +225,7 @@ SWITCH_TYPES = (
|
|||
icon="mdi:hair-dryer",
|
||||
method_on="async_set_dry_on",
|
||||
method_off="async_set_dry_off",
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
XiaomiMiioSwitchDescription(
|
||||
key=ATTR_CLEAN,
|
||||
|
@ -231,6 +235,7 @@ SWITCH_TYPES = (
|
|||
method_on="async_set_clean_on",
|
||||
method_off="async_set_clean_off",
|
||||
available_with_device_off=False,
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
XiaomiMiioSwitchDescription(
|
||||
key=ATTR_LED,
|
||||
|
@ -239,6 +244,7 @@ SWITCH_TYPES = (
|
|||
icon="mdi:led-outline",
|
||||
method_on="async_set_led_on",
|
||||
method_off="async_set_led_off",
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
XiaomiMiioSwitchDescription(
|
||||
key=ATTR_LEARN_MODE,
|
||||
|
@ -247,6 +253,7 @@ SWITCH_TYPES = (
|
|||
icon="mdi:school-outline",
|
||||
method_on="async_set_learn_mode_on",
|
||||
method_off="async_set_learn_mode_off",
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
XiaomiMiioSwitchDescription(
|
||||
key=ATTR_AUTO_DETECT,
|
||||
|
@ -254,6 +261,7 @@ SWITCH_TYPES = (
|
|||
name="Auto Detect",
|
||||
method_on="async_set_auto_detect_on",
|
||||
method_off="async_set_auto_detect_off",
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
XiaomiMiioSwitchDescription(
|
||||
key=ATTR_IONIZER,
|
||||
|
@ -262,6 +270,7 @@ SWITCH_TYPES = (
|
|||
icon="mdi:shimmer",
|
||||
method_on="async_set_ionizer_on",
|
||||
method_off="async_set_ionizer_off",
|
||||
entity_category=ENTITY_CATEGORY_CONFIG,
|
||||
),
|
||||
)
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue