Replace custom Tuya device classes with StrEnum (#63681)
parent
e6419fd505
commit
71208b2ebb
|
@ -52,21 +52,6 @@ CONF_PASSWORD = "password"
|
|||
CONF_COUNTRY_CODE = "country_code"
|
||||
CONF_APP_TYPE = "tuya_app_type"
|
||||
|
||||
DEVICE_CLASS_TUYA_BASIC_ANTI_FLICKR = "tuya__basic_anti_flickr"
|
||||
DEVICE_CLASS_TUYA_BASIC_NIGHTVISION = "tuya__basic_nightvision"
|
||||
DEVICE_CLASS_TUYA_DECIBEL_SENSITIVITY = "tuya__decibel_sensitivity"
|
||||
DEVICE_CLASS_TUYA_IPC_WORK_MODE = "tuya__ipc_work_mode"
|
||||
DEVICE_CLASS_TUYA_LED_TYPE = "tuya__led_type"
|
||||
DEVICE_CLASS_TUYA_LIGHT_MODE = "tuya__light_mode"
|
||||
DEVICE_CLASS_TUYA_MOTION_SENSITIVITY = "tuya__motion_sensitivity"
|
||||
DEVICE_CLASS_TUYA_RECORD_MODE = "tuya__record_mode"
|
||||
DEVICE_CLASS_TUYA_RELAY_STATUS = "tuya__relay_status"
|
||||
DEVICE_CLASS_TUYA_STATUS = "tuya__status"
|
||||
DEVICE_CLASS_TUYA_FINGERBOT_MODE = "tuya__fingerbot_mode"
|
||||
DEVICE_CLASS_TUYA_VACUUM_CISTERN = "tuya__vacuum_cistern"
|
||||
DEVICE_CLASS_TUYA_VACUUM_COLLECTION = "tuya__vacuum_collection"
|
||||
DEVICE_CLASS_TUYA_VACUUM_MODE = "tuya__vacuum_mode"
|
||||
|
||||
TUYA_DISCOVERY_NEW = "tuya_discovery_new"
|
||||
TUYA_HA_SIGNAL_UPDATE_ENTITY = "tuya_entry_update"
|
||||
|
||||
|
@ -99,6 +84,25 @@ PLATFORMS = [
|
|||
]
|
||||
|
||||
|
||||
class TuyaDeviceClass(StrEnum):
|
||||
"""Tuya specific device classes, used for translations."""
|
||||
|
||||
BASIC_ANTI_FLICKR = "tuya__basic_anti_flickr"
|
||||
BASIC_NIGHTVISION = "tuya__basic_nightvision"
|
||||
DECIBEL_SENSITIVITY = "tuya__decibel_sensitivity"
|
||||
FINGERBOT_MODE = "tuya__fingerbot_mode"
|
||||
IPC_WORK_MODE = "tuya__ipc_work_mode"
|
||||
LED_TYPE = "tuya__led_type"
|
||||
LIGHT_MODE = "tuya__light_mode"
|
||||
MOTION_SENSITIVITY = "tuya__motion_sensitivity"
|
||||
RECORD_MODE = "tuya__record_mode"
|
||||
RELAY_STATUS = "tuya__relay_status"
|
||||
STATUS = "tuya__status"
|
||||
VACUUM_CISTERN = "tuya__vacuum_cistern"
|
||||
VACUUM_COLLECTION = "tuya__vacuum_collection"
|
||||
VACUUM_MODE = "tuya__vacuum_mode"
|
||||
|
||||
|
||||
class WorkMode(StrEnum):
|
||||
"""Work modes."""
|
||||
|
||||
|
|
|
@ -15,24 +15,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
|||
|
||||
from . import HomeAssistantTuyaData
|
||||
from .base import EnumTypeData, TuyaEntity
|
||||
from .const import (
|
||||
DEVICE_CLASS_TUYA_BASIC_ANTI_FLICKR,
|
||||
DEVICE_CLASS_TUYA_BASIC_NIGHTVISION,
|
||||
DEVICE_CLASS_TUYA_DECIBEL_SENSITIVITY,
|
||||
DEVICE_CLASS_TUYA_FINGERBOT_MODE,
|
||||
DEVICE_CLASS_TUYA_IPC_WORK_MODE,
|
||||
DEVICE_CLASS_TUYA_LED_TYPE,
|
||||
DEVICE_CLASS_TUYA_LIGHT_MODE,
|
||||
DEVICE_CLASS_TUYA_MOTION_SENSITIVITY,
|
||||
DEVICE_CLASS_TUYA_RECORD_MODE,
|
||||
DEVICE_CLASS_TUYA_RELAY_STATUS,
|
||||
DEVICE_CLASS_TUYA_VACUUM_CISTERN,
|
||||
DEVICE_CLASS_TUYA_VACUUM_COLLECTION,
|
||||
DEVICE_CLASS_TUYA_VACUUM_MODE,
|
||||
DOMAIN,
|
||||
TUYA_DISCOVERY_NEW,
|
||||
DPCode,
|
||||
)
|
||||
from .const import DOMAIN, TUYA_DISCOVERY_NEW, DPCode, TuyaDeviceClass
|
||||
|
||||
# All descriptions can be found here. Mostly the Enum data types in the
|
||||
# default instructions set of each category end up being a select.
|
||||
|
@ -69,13 +52,13 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
|
|||
SelectEntityDescription(
|
||||
key=DPCode.RELAY_STATUS,
|
||||
name="Power on Behavior",
|
||||
device_class=DEVICE_CLASS_TUYA_RELAY_STATUS,
|
||||
device_class=TuyaDeviceClass.RELAY_STATUS,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
SelectEntityDescription(
|
||||
key=DPCode.LIGHT_MODE,
|
||||
name="Indicator Light Mode",
|
||||
device_class=DEVICE_CLASS_TUYA_LIGHT_MODE,
|
||||
device_class=TuyaDeviceClass.LIGHT_MODE,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
),
|
||||
|
@ -108,42 +91,42 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
|
|||
SelectEntityDescription(
|
||||
key=DPCode.IPC_WORK_MODE,
|
||||
name="IPC Mode",
|
||||
device_class=DEVICE_CLASS_TUYA_IPC_WORK_MODE,
|
||||
device_class=TuyaDeviceClass.IPC_WORK_MODE,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
SelectEntityDescription(
|
||||
key=DPCode.DECIBEL_SENSITIVITY,
|
||||
name="Sound Detection Sensitivity",
|
||||
icon="mdi:volume-vibrate",
|
||||
device_class=DEVICE_CLASS_TUYA_DECIBEL_SENSITIVITY,
|
||||
device_class=TuyaDeviceClass.DECIBEL_SENSITIVITY,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
SelectEntityDescription(
|
||||
key=DPCode.RECORD_MODE,
|
||||
name="Record Mode",
|
||||
icon="mdi:record-rec",
|
||||
device_class=DEVICE_CLASS_TUYA_RECORD_MODE,
|
||||
device_class=TuyaDeviceClass.RECORD_MODE,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
SelectEntityDescription(
|
||||
key=DPCode.BASIC_NIGHTVISION,
|
||||
name="Night Vision",
|
||||
icon="mdi:theme-light-dark",
|
||||
device_class=DEVICE_CLASS_TUYA_BASIC_NIGHTVISION,
|
||||
device_class=TuyaDeviceClass.BASIC_NIGHTVISION,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
SelectEntityDescription(
|
||||
key=DPCode.BASIC_ANTI_FLICKER,
|
||||
name="Anti-flicker",
|
||||
icon="mdi:image-outline",
|
||||
device_class=DEVICE_CLASS_TUYA_BASIC_ANTI_FLICKR,
|
||||
device_class=TuyaDeviceClass.BASIC_ANTI_FLICKR,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
SelectEntityDescription(
|
||||
key=DPCode.MOTION_SENSITIVITY,
|
||||
name="Motion Detection Sensitivity",
|
||||
icon="mdi:motion-sensor",
|
||||
device_class=DEVICE_CLASS_TUYA_MOTION_SENSITIVITY,
|
||||
device_class=TuyaDeviceClass.MOTION_SENSITIVITY,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
),
|
||||
|
@ -153,13 +136,13 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
|
|||
SelectEntityDescription(
|
||||
key=DPCode.RELAY_STATUS,
|
||||
name="Power on Behavior",
|
||||
device_class=DEVICE_CLASS_TUYA_RELAY_STATUS,
|
||||
device_class=TuyaDeviceClass.RELAY_STATUS,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
SelectEntityDescription(
|
||||
key=DPCode.LIGHT_MODE,
|
||||
name="Indicator Light Mode",
|
||||
device_class=DEVICE_CLASS_TUYA_LIGHT_MODE,
|
||||
device_class=TuyaDeviceClass.LIGHT_MODE,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
),
|
||||
|
@ -169,31 +152,31 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
|
|||
SelectEntityDescription(
|
||||
key=DPCode.RELAY_STATUS,
|
||||
name="Power on Behavior",
|
||||
device_class=DEVICE_CLASS_TUYA_RELAY_STATUS,
|
||||
device_class=TuyaDeviceClass.RELAY_STATUS,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
SelectEntityDescription(
|
||||
key=DPCode.LIGHT_MODE,
|
||||
name="Indicator Light Mode",
|
||||
device_class=DEVICE_CLASS_TUYA_LIGHT_MODE,
|
||||
device_class=TuyaDeviceClass.LIGHT_MODE,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
SelectEntityDescription(
|
||||
key=DPCode.LED_TYPE_1,
|
||||
name="Light Source Type",
|
||||
device_class=DEVICE_CLASS_TUYA_LED_TYPE,
|
||||
device_class=TuyaDeviceClass.LED_TYPE,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
SelectEntityDescription(
|
||||
key=DPCode.LED_TYPE_2,
|
||||
name="Light 2 Source Type",
|
||||
device_class=DEVICE_CLASS_TUYA_LED_TYPE,
|
||||
device_class=TuyaDeviceClass.LED_TYPE,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
SelectEntityDescription(
|
||||
key=DPCode.LED_TYPE_3,
|
||||
name="Light 3 Source Type",
|
||||
device_class=DEVICE_CLASS_TUYA_LED_TYPE,
|
||||
device_class=TuyaDeviceClass.LED_TYPE,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
),
|
||||
|
@ -203,13 +186,13 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
|
|||
SelectEntityDescription(
|
||||
key=DPCode.LED_TYPE_1,
|
||||
name="Light Source Type",
|
||||
device_class=DEVICE_CLASS_TUYA_LED_TYPE,
|
||||
device_class=TuyaDeviceClass.LED_TYPE,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
SelectEntityDescription(
|
||||
key=DPCode.LED_TYPE_2,
|
||||
name="Light 2 Source Type",
|
||||
device_class=DEVICE_CLASS_TUYA_LED_TYPE,
|
||||
device_class=TuyaDeviceClass.LED_TYPE,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
),
|
||||
|
@ -218,7 +201,7 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
|
|||
SelectEntityDescription(
|
||||
key=DPCode.MODE,
|
||||
name="Mode",
|
||||
device_class=DEVICE_CLASS_TUYA_FINGERBOT_MODE,
|
||||
device_class=TuyaDeviceClass.FINGERBOT_MODE,
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
),
|
||||
),
|
||||
|
@ -229,21 +212,21 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
|
|||
key=DPCode.CISTERN,
|
||||
name="Water Tank Adjustment",
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
device_class=DEVICE_CLASS_TUYA_VACUUM_CISTERN,
|
||||
device_class=TuyaDeviceClass.VACUUM_CISTERN,
|
||||
icon="mdi:water-opacity",
|
||||
),
|
||||
SelectEntityDescription(
|
||||
key=DPCode.COLLECTION_MODE,
|
||||
name="Dust Collection Mode",
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
device_class=DEVICE_CLASS_TUYA_VACUUM_COLLECTION,
|
||||
device_class=TuyaDeviceClass.VACUUM_COLLECTION,
|
||||
icon="mdi:air-filter",
|
||||
),
|
||||
SelectEntityDescription(
|
||||
key=DPCode.MODE,
|
||||
name="Mode",
|
||||
entity_category=EntityCategory.CONFIG,
|
||||
device_class=DEVICE_CLASS_TUYA_VACUUM_MODE,
|
||||
device_class=TuyaDeviceClass.VACUUM_MODE,
|
||||
icon="mdi:layers-outline",
|
||||
),
|
||||
),
|
||||
|
|
|
@ -29,11 +29,11 @@ from homeassistant.helpers.typing import StateType
|
|||
from . import HomeAssistantTuyaData
|
||||
from .base import ElectricityTypeData, EnumTypeData, IntegerTypeData, TuyaEntity
|
||||
from .const import (
|
||||
DEVICE_CLASS_TUYA_STATUS,
|
||||
DEVICE_CLASS_UNITS,
|
||||
DOMAIN,
|
||||
TUYA_DISCOVERY_NEW,
|
||||
DPCode,
|
||||
TuyaDeviceClass,
|
||||
UnitOfMeasurement,
|
||||
)
|
||||
|
||||
|
@ -100,7 +100,7 @@ SENSORS: dict[str, tuple[TuyaSensorEntityDescription, ...]] = {
|
|||
TuyaSensorEntityDescription(
|
||||
key=DPCode.STATUS,
|
||||
name="Status",
|
||||
device_class=DEVICE_CLASS_TUYA_STATUS,
|
||||
device_class=TuyaDeviceClass.STATUS,
|
||||
),
|
||||
),
|
||||
# CO2 Detector
|
||||
|
|
Loading…
Reference in New Issue