diff --git a/homeassistant/components/tuya/const.py b/homeassistant/components/tuya/const.py index bc881636eff..d0d9a0c83a7 100644 --- a/homeassistant/components/tuya/const.py +++ b/homeassistant/components/tuya/const.py @@ -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.""" diff --git a/homeassistant/components/tuya/select.py b/homeassistant/components/tuya/select.py index 33ec8da5d1a..56163e9e164 100644 --- a/homeassistant/components/tuya/select.py +++ b/homeassistant/components/tuya/select.py @@ -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", ), ), diff --git a/homeassistant/components/tuya/sensor.py b/homeassistant/components/tuya/sensor.py index 3da1e75a80d..0ac0bb0ce87 100644 --- a/homeassistant/components/tuya/sensor.py +++ b/homeassistant/components/tuya/sensor.py @@ -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