Replace custom Tuya device classes with StrEnum (#63681)

pull/63708/head
Franck Nijhof 2022-01-08 23:44:27 +01:00 committed by GitHub
parent e6419fd505
commit 71208b2ebb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 43 additions and 56 deletions

View File

@ -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."""

View File

@ -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",
),
),

View File

@ -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