diff --git a/homeassistant/components/xiaomi_miio/binary_sensor.py b/homeassistant/components/xiaomi_miio/binary_sensor.py index a28c449e5cb..d33059c20ef 100644 --- a/homeassistant/components/xiaomi_miio/binary_sensor.py +++ b/homeassistant/components/xiaomi_miio/binary_sensor.py @@ -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, ), } diff --git a/homeassistant/components/xiaomi_miio/number.py b/homeassistant/components/xiaomi_miio/number.py index a915ce57847..1461f33add6 100644 --- a/homeassistant/components/xiaomi_miio/number.py +++ b/homeassistant/components/xiaomi_miio/number.py @@ -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, ), } diff --git a/homeassistant/components/xiaomi_miio/select.py b/homeassistant/components/xiaomi_miio/select.py index 9e9cdcec1ae..2753fb09786 100644 --- a/homeassistant/components/xiaomi_miio/select.py +++ b/homeassistant/components/xiaomi_miio/select.py @@ -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, ), } diff --git a/homeassistant/components/xiaomi_miio/sensor.py b/homeassistant/components/xiaomi_miio/sensor.py index 764976820bb..c41b6a1d00d 100644 --- a/homeassistant/components/xiaomi_miio/sensor.py +++ b/homeassistant/components/xiaomi_miio/sensor.py @@ -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, ), } diff --git a/homeassistant/components/xiaomi_miio/switch.py b/homeassistant/components/xiaomi_miio/switch.py index fd9d4053313..6f68e5652db 100644 --- a/homeassistant/components/xiaomi_miio/switch.py +++ b/homeassistant/components/xiaomi_miio/switch.py @@ -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, ), )