mirror of
https://github.com/home-assistant/core.git
synced 2025-07-27 23:27:37 +00:00
Sort tuya definitions by category (#148472)
This commit is contained in:
parent
cb2095bcbe
commit
13d05a338b
@ -46,6 +46,40 @@ TAMPER_BINARY_SENSOR = TuyaBinarySensorEntityDescription(
|
|||||||
# end up being a binary sensor.
|
# end up being a binary sensor.
|
||||||
# https://developer.tuya.com/en/docs/iot/standarddescription?id=K9i5ql6waswzq
|
# https://developer.tuya.com/en/docs/iot/standarddescription?id=K9i5ql6waswzq
|
||||||
BINARY_SENSORS: dict[str, tuple[TuyaBinarySensorEntityDescription, ...]] = {
|
BINARY_SENSORS: dict[str, tuple[TuyaBinarySensorEntityDescription, ...]] = {
|
||||||
|
# CO2 Detector
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categoryco2bj?id=Kaiuz3wes7yuy
|
||||||
|
"co2bj": (
|
||||||
|
TuyaBinarySensorEntityDescription(
|
||||||
|
key=DPCode.CO2_STATE,
|
||||||
|
device_class=BinarySensorDeviceClass.SAFETY,
|
||||||
|
on_value="alarm",
|
||||||
|
),
|
||||||
|
TAMPER_BINARY_SENSOR,
|
||||||
|
),
|
||||||
|
# CO Detector
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categorycobj?id=Kaiuz3u1j6q1v
|
||||||
|
"cobj": (
|
||||||
|
TuyaBinarySensorEntityDescription(
|
||||||
|
key=DPCode.CO_STATE,
|
||||||
|
device_class=BinarySensorDeviceClass.SAFETY,
|
||||||
|
on_value="1",
|
||||||
|
),
|
||||||
|
TuyaBinarySensorEntityDescription(
|
||||||
|
key=DPCode.CO_STATUS,
|
||||||
|
device_class=BinarySensorDeviceClass.SAFETY,
|
||||||
|
on_value="alarm",
|
||||||
|
),
|
||||||
|
TAMPER_BINARY_SENSOR,
|
||||||
|
),
|
||||||
|
# Smart Pet Feeder
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categorycwwsq?id=Kaiuz2b6vydld
|
||||||
|
"cwwsq": (
|
||||||
|
TuyaBinarySensorEntityDescription(
|
||||||
|
key=DPCode.FEED_STATE,
|
||||||
|
translation_key="feeding",
|
||||||
|
on_value="feeding",
|
||||||
|
),
|
||||||
|
),
|
||||||
# Multi-functional Sensor
|
# Multi-functional Sensor
|
||||||
# https://developer.tuya.com/en/docs/iot/categorydgnbj?id=Kaiuz3yorvzg3
|
# https://developer.tuya.com/en/docs/iot/categorydgnbj?id=Kaiuz3yorvzg3
|
||||||
"dgnbj": (
|
"dgnbj": (
|
||||||
@ -111,40 +145,6 @@ BINARY_SENSORS: dict[str, tuple[TuyaBinarySensorEntityDescription, ...]] = {
|
|||||||
),
|
),
|
||||||
TAMPER_BINARY_SENSOR,
|
TAMPER_BINARY_SENSOR,
|
||||||
),
|
),
|
||||||
# CO2 Detector
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryco2bj?id=Kaiuz3wes7yuy
|
|
||||||
"co2bj": (
|
|
||||||
TuyaBinarySensorEntityDescription(
|
|
||||||
key=DPCode.CO2_STATE,
|
|
||||||
device_class=BinarySensorDeviceClass.SAFETY,
|
|
||||||
on_value="alarm",
|
|
||||||
),
|
|
||||||
TAMPER_BINARY_SENSOR,
|
|
||||||
),
|
|
||||||
# CO Detector
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categorycobj?id=Kaiuz3u1j6q1v
|
|
||||||
"cobj": (
|
|
||||||
TuyaBinarySensorEntityDescription(
|
|
||||||
key=DPCode.CO_STATE,
|
|
||||||
device_class=BinarySensorDeviceClass.SAFETY,
|
|
||||||
on_value="1",
|
|
||||||
),
|
|
||||||
TuyaBinarySensorEntityDescription(
|
|
||||||
key=DPCode.CO_STATUS,
|
|
||||||
device_class=BinarySensorDeviceClass.SAFETY,
|
|
||||||
on_value="alarm",
|
|
||||||
),
|
|
||||||
TAMPER_BINARY_SENSOR,
|
|
||||||
),
|
|
||||||
# Smart Pet Feeder
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categorycwwsq?id=Kaiuz2b6vydld
|
|
||||||
"cwwsq": (
|
|
||||||
TuyaBinarySensorEntityDescription(
|
|
||||||
key=DPCode.FEED_STATE,
|
|
||||||
translation_key="feeding",
|
|
||||||
on_value="feeding",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Human Presence Sensor
|
# Human Presence Sensor
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryhps?id=Kaiuz42yhn1hs
|
# https://developer.tuya.com/en/docs/iot/categoryhps?id=Kaiuz42yhn1hs
|
||||||
"hps": (
|
"hps": (
|
||||||
@ -174,6 +174,16 @@ BINARY_SENSORS: dict[str, tuple[TuyaBinarySensorEntityDescription, ...]] = {
|
|||||||
),
|
),
|
||||||
TAMPER_BINARY_SENSOR,
|
TAMPER_BINARY_SENSOR,
|
||||||
),
|
),
|
||||||
|
# Luminance Sensor
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categoryldcg?id=Kaiuz3n7u69l8
|
||||||
|
"ldcg": (
|
||||||
|
TuyaBinarySensorEntityDescription(
|
||||||
|
key=DPCode.TEMPER_ALARM,
|
||||||
|
device_class=BinarySensorDeviceClass.TAMPER,
|
||||||
|
entity_category=EntityCategory.DIAGNOSTIC,
|
||||||
|
),
|
||||||
|
TAMPER_BINARY_SENSOR,
|
||||||
|
),
|
||||||
# Door and Window Controller
|
# Door and Window Controller
|
||||||
# https://developer.tuya.com/en/docs/iot/s?id=K9gf48r5zjsy9
|
# https://developer.tuya.com/en/docs/iot/s?id=K9gf48r5zjsy9
|
||||||
"mc": (
|
"mc": (
|
||||||
@ -205,16 +215,6 @@ BINARY_SENSORS: dict[str, tuple[TuyaBinarySensorEntityDescription, ...]] = {
|
|||||||
on_value={"AQAB"},
|
on_value={"AQAB"},
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# Luminance Sensor
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryldcg?id=Kaiuz3n7u69l8
|
|
||||||
"ldcg": (
|
|
||||||
TuyaBinarySensorEntityDescription(
|
|
||||||
key=DPCode.TEMPER_ALARM,
|
|
||||||
device_class=BinarySensorDeviceClass.TAMPER,
|
|
||||||
entity_category=EntityCategory.DIAGNOSTIC,
|
|
||||||
),
|
|
||||||
TAMPER_BINARY_SENSOR,
|
|
||||||
),
|
|
||||||
# PIR Detector
|
# PIR Detector
|
||||||
# https://developer.tuya.com/en/docs/iot/categorypir?id=Kaiuz3ss11b80
|
# https://developer.tuya.com/en/docs/iot/categorypir?id=Kaiuz3ss11b80
|
||||||
"pir": (
|
"pir": (
|
||||||
@ -235,6 +235,9 @@ BINARY_SENSORS: dict[str, tuple[TuyaBinarySensorEntityDescription, ...]] = {
|
|||||||
),
|
),
|
||||||
TAMPER_BINARY_SENSOR,
|
TAMPER_BINARY_SENSOR,
|
||||||
),
|
),
|
||||||
|
# Temperature and Humidity Sensor with External Probe
|
||||||
|
# New undocumented category qxj, see https://github.com/home-assistant/core/issues/136472
|
||||||
|
"qxj": (TAMPER_BINARY_SENSOR,),
|
||||||
# Gas Detector
|
# Gas Detector
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryrqbj?id=Kaiuz3d162ubw
|
# https://developer.tuya.com/en/docs/iot/categoryrqbj?id=Kaiuz3d162ubw
|
||||||
"rqbj": (
|
"rqbj": (
|
||||||
@ -291,9 +294,6 @@ BINARY_SENSORS: dict[str, tuple[TuyaBinarySensorEntityDescription, ...]] = {
|
|||||||
# Temperature and Humidity Sensor
|
# Temperature and Humidity Sensor
|
||||||
# https://developer.tuya.com/en/docs/iot/categorywsdcg?id=Kaiuz3hinij34
|
# https://developer.tuya.com/en/docs/iot/categorywsdcg?id=Kaiuz3hinij34
|
||||||
"wsdcg": (TAMPER_BINARY_SENSOR,),
|
"wsdcg": (TAMPER_BINARY_SENSOR,),
|
||||||
# Temperature and Humidity Sensor with External Probe
|
|
||||||
# New undocumented category qxj, see https://github.com/home-assistant/core/issues/136472
|
|
||||||
"qxj": (TAMPER_BINARY_SENSOR,),
|
|
||||||
# Pressure Sensor
|
# Pressure Sensor
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryylcg?id=Kaiuz3kc2e4gm
|
# https://developer.tuya.com/en/docs/iot/categoryylcg?id=Kaiuz3kc2e4gm
|
||||||
"ylcg": (
|
"ylcg": (
|
||||||
|
@ -17,6 +17,14 @@ from .entity import TuyaEntity
|
|||||||
# All descriptions can be found here.
|
# All descriptions can be found here.
|
||||||
# https://developer.tuya.com/en/docs/iot/standarddescription?id=K9i5ql6waswzq
|
# https://developer.tuya.com/en/docs/iot/standarddescription?id=K9i5ql6waswzq
|
||||||
BUTTONS: dict[str, tuple[ButtonEntityDescription, ...]] = {
|
BUTTONS: dict[str, tuple[ButtonEntityDescription, ...]] = {
|
||||||
|
# Wake Up Light II
|
||||||
|
# Not documented
|
||||||
|
"hxd": (
|
||||||
|
ButtonEntityDescription(
|
||||||
|
key=DPCode.SWITCH_USB6,
|
||||||
|
translation_key="snooze",
|
||||||
|
),
|
||||||
|
),
|
||||||
# Robot Vacuum
|
# Robot Vacuum
|
||||||
# https://developer.tuya.com/en/docs/iot/fsd?id=K9gf487ck1tlo
|
# https://developer.tuya.com/en/docs/iot/fsd?id=K9gf487ck1tlo
|
||||||
"sd": (
|
"sd": (
|
||||||
@ -46,14 +54,6 @@ BUTTONS: dict[str, tuple[ButtonEntityDescription, ...]] = {
|
|||||||
entity_category=EntityCategory.CONFIG,
|
entity_category=EntityCategory.CONFIG,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# Wake Up Light II
|
|
||||||
# Not documented
|
|
||||||
"hxd": (
|
|
||||||
ButtonEntityDescription(
|
|
||||||
key=DPCode.SWITCH_USB6,
|
|
||||||
translation_key="snooze",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -17,12 +17,12 @@ from .entity import TuyaEntity
|
|||||||
# All descriptions can be found here:
|
# All descriptions can be found here:
|
||||||
# https://developer.tuya.com/en/docs/iot/standarddescription?id=K9i5ql6waswzq
|
# https://developer.tuya.com/en/docs/iot/standarddescription?id=K9i5ql6waswzq
|
||||||
CAMERAS: tuple[str, ...] = (
|
CAMERAS: tuple[str, ...] = (
|
||||||
# Smart Camera (including doorbells)
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categorysgbj?id=Kaiuz37tlpbnu
|
|
||||||
"sp",
|
|
||||||
# Smart Camera - Low power consumption camera
|
# Smart Camera - Low power consumption camera
|
||||||
# Undocumented, see https://github.com/home-assistant/core/issues/132844
|
# Undocumented, see https://github.com/home-assistant/core/issues/132844
|
||||||
"dghsxj",
|
"dghsxj",
|
||||||
|
# Smart Camera (including doorbells)
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categorysgbj?id=Kaiuz37tlpbnu
|
||||||
|
"sp",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -47,6 +47,12 @@ class TuyaClimateEntityDescription(ClimateEntityDescription):
|
|||||||
|
|
||||||
|
|
||||||
CLIMATE_DESCRIPTIONS: dict[str, TuyaClimateEntityDescription] = {
|
CLIMATE_DESCRIPTIONS: dict[str, TuyaClimateEntityDescription] = {
|
||||||
|
# Electric Fireplace
|
||||||
|
# https://developer.tuya.com/en/docs/iot/f?id=Kacpeobojffop
|
||||||
|
"dbl": TuyaClimateEntityDescription(
|
||||||
|
key="dbl",
|
||||||
|
switch_only_hvac_mode=HVACMode.HEAT,
|
||||||
|
),
|
||||||
# Air conditioner
|
# Air conditioner
|
||||||
# https://developer.tuya.com/en/docs/iot/categorykt?id=Kaiuz0z71ov2n
|
# https://developer.tuya.com/en/docs/iot/categorykt?id=Kaiuz0z71ov2n
|
||||||
"kt": TuyaClimateEntityDescription(
|
"kt": TuyaClimateEntityDescription(
|
||||||
@ -77,9 +83,6 @@ CLIMATE_DESCRIPTIONS: dict[str, TuyaClimateEntityDescription] = {
|
|||||||
key="wkf",
|
key="wkf",
|
||||||
switch_only_hvac_mode=HVACMode.HEAT,
|
switch_only_hvac_mode=HVACMode.HEAT,
|
||||||
),
|
),
|
||||||
# Electric Fireplace
|
|
||||||
# https://developer.tuya.com/en/docs/iot/f?id=Kacpeobojffop
|
|
||||||
"dbl": TuyaClimateEntityDescription(key="dbl", switch_only_hvac_mode=HVACMode.HEAT),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -38,6 +38,31 @@ class TuyaCoverEntityDescription(CoverEntityDescription):
|
|||||||
|
|
||||||
|
|
||||||
COVERS: dict[str, tuple[TuyaCoverEntityDescription, ...]] = {
|
COVERS: dict[str, tuple[TuyaCoverEntityDescription, ...]] = {
|
||||||
|
# Garage Door Opener
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categoryckmkzq?id=Kaiuz0ipcboee
|
||||||
|
"ckmkzq": (
|
||||||
|
TuyaCoverEntityDescription(
|
||||||
|
key=DPCode.SWITCH_1,
|
||||||
|
translation_key="door",
|
||||||
|
current_state=DPCode.DOORCONTACT_STATE,
|
||||||
|
current_state_inverse=True,
|
||||||
|
device_class=CoverDeviceClass.GARAGE,
|
||||||
|
),
|
||||||
|
TuyaCoverEntityDescription(
|
||||||
|
key=DPCode.SWITCH_2,
|
||||||
|
translation_key="door_2",
|
||||||
|
current_state=DPCode.DOORCONTACT_STATE_2,
|
||||||
|
current_state_inverse=True,
|
||||||
|
device_class=CoverDeviceClass.GARAGE,
|
||||||
|
),
|
||||||
|
TuyaCoverEntityDescription(
|
||||||
|
key=DPCode.SWITCH_3,
|
||||||
|
translation_key="door_3",
|
||||||
|
current_state=DPCode.DOORCONTACT_STATE_3,
|
||||||
|
current_state_inverse=True,
|
||||||
|
device_class=CoverDeviceClass.GARAGE,
|
||||||
|
),
|
||||||
|
),
|
||||||
# Curtain
|
# Curtain
|
||||||
# Note: Multiple curtains isn't documented
|
# Note: Multiple curtains isn't documented
|
||||||
# https://developer.tuya.com/en/docs/iot/categorycl?id=Kaiuz1hnpo7df
|
# https://developer.tuya.com/en/docs/iot/categorycl?id=Kaiuz1hnpo7df
|
||||||
@ -84,31 +109,6 @@ COVERS: dict[str, tuple[TuyaCoverEntityDescription, ...]] = {
|
|||||||
device_class=CoverDeviceClass.BLIND,
|
device_class=CoverDeviceClass.BLIND,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# Garage Door Opener
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryckmkzq?id=Kaiuz0ipcboee
|
|
||||||
"ckmkzq": (
|
|
||||||
TuyaCoverEntityDescription(
|
|
||||||
key=DPCode.SWITCH_1,
|
|
||||||
translation_key="door",
|
|
||||||
current_state=DPCode.DOORCONTACT_STATE,
|
|
||||||
current_state_inverse=True,
|
|
||||||
device_class=CoverDeviceClass.GARAGE,
|
|
||||||
),
|
|
||||||
TuyaCoverEntityDescription(
|
|
||||||
key=DPCode.SWITCH_2,
|
|
||||||
translation_key="door_2",
|
|
||||||
current_state=DPCode.DOORCONTACT_STATE_2,
|
|
||||||
current_state_inverse=True,
|
|
||||||
device_class=CoverDeviceClass.GARAGE,
|
|
||||||
),
|
|
||||||
TuyaCoverEntityDescription(
|
|
||||||
key=DPCode.SWITCH_3,
|
|
||||||
translation_key="door_3",
|
|
||||||
current_state=DPCode.DOORCONTACT_STATE_3,
|
|
||||||
current_state_inverse=True,
|
|
||||||
device_class=CoverDeviceClass.GARAGE,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Curtain Switch
|
# Curtain Switch
|
||||||
# https://developer.tuya.com/en/docs/iot/category-clkg?id=Kaiuz0gitil39
|
# https://developer.tuya.com/en/docs/iot/category-clkg?id=Kaiuz0gitil39
|
||||||
"clkg": (
|
"clkg": (
|
||||||
|
@ -25,11 +25,11 @@ from .const import TUYA_DISCOVERY_NEW, DPCode, DPType
|
|||||||
from .entity import EnumTypeData, IntegerTypeData, TuyaEntity
|
from .entity import EnumTypeData, IntegerTypeData, TuyaEntity
|
||||||
|
|
||||||
TUYA_SUPPORT_TYPE = {
|
TUYA_SUPPORT_TYPE = {
|
||||||
|
"cs", # Dehumidifier
|
||||||
"fs", # Fan
|
"fs", # Fan
|
||||||
"fsd", # Fan with Light
|
"fsd", # Fan with Light
|
||||||
"fskg", # Fan wall switch
|
"fskg", # Fan wall switch
|
||||||
"kj", # Air Purifier
|
"kj", # Air Purifier
|
||||||
"cs", # Dehumidifier
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -135,6 +135,22 @@ LIGHTS: dict[str, tuple[TuyaLightEntityDescription, ...]] = {
|
|||||||
brightness=DPCode.BRIGHT_VALUE,
|
brightness=DPCode.BRIGHT_VALUE,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
# Fan
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categoryfs?id=Kaiuz1xweel1c
|
||||||
|
"fs": (
|
||||||
|
TuyaLightEntityDescription(
|
||||||
|
key=DPCode.LIGHT,
|
||||||
|
name=None,
|
||||||
|
color_mode=DPCode.WORK_MODE,
|
||||||
|
brightness=DPCode.BRIGHT_VALUE,
|
||||||
|
color_temp=DPCode.TEMP_VALUE,
|
||||||
|
),
|
||||||
|
TuyaLightEntityDescription(
|
||||||
|
key=DPCode.SWITCH_LED,
|
||||||
|
translation_key="light_2",
|
||||||
|
brightness=DPCode.BRIGHT_VALUE_1,
|
||||||
|
),
|
||||||
|
),
|
||||||
# Ceiling Fan Light
|
# Ceiling Fan Light
|
||||||
# https://developer.tuya.com/en/docs/iot/fsd?id=Kaof8eiei4c2v
|
# https://developer.tuya.com/en/docs/iot/fsd?id=Kaof8eiei4c2v
|
||||||
"fsd": (
|
"fsd": (
|
||||||
@ -176,6 +192,17 @@ LIGHTS: dict[str, tuple[TuyaLightEntityDescription, ...]] = {
|
|||||||
color_data=DPCode.COLOUR_DATA,
|
color_data=DPCode.COLOUR_DATA,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
# Wake Up Light II
|
||||||
|
# Not documented
|
||||||
|
"hxd": (
|
||||||
|
TuyaLightEntityDescription(
|
||||||
|
key=DPCode.SWITCH_LED,
|
||||||
|
translation_key="light",
|
||||||
|
brightness=(DPCode.BRIGHT_VALUE_V2, DPCode.BRIGHT_VALUE),
|
||||||
|
brightness_max=DPCode.BRIGHTNESS_MAX_1,
|
||||||
|
brightness_min=DPCode.BRIGHTNESS_MIN_1,
|
||||||
|
),
|
||||||
|
),
|
||||||
# Humidifier Light
|
# Humidifier Light
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryjsq?id=Kaiuz1smr440b
|
# https://developer.tuya.com/en/docs/iot/categoryjsq?id=Kaiuz1smr440b
|
||||||
"jsq": (
|
"jsq": (
|
||||||
@ -316,17 +343,6 @@ LIGHTS: dict[str, tuple[TuyaLightEntityDescription, ...]] = {
|
|||||||
brightness=DPCode.BRIGHT_VALUE_2,
|
brightness=DPCode.BRIGHT_VALUE_2,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# Wake Up Light II
|
|
||||||
# Not documented
|
|
||||||
"hxd": (
|
|
||||||
TuyaLightEntityDescription(
|
|
||||||
key=DPCode.SWITCH_LED,
|
|
||||||
translation_key="light",
|
|
||||||
brightness=(DPCode.BRIGHT_VALUE_V2, DPCode.BRIGHT_VALUE),
|
|
||||||
brightness_max=DPCode.BRIGHTNESS_MAX_1,
|
|
||||||
brightness_min=DPCode.BRIGHTNESS_MIN_1,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Outdoor Flood Light
|
# Outdoor Flood Light
|
||||||
# Not documented
|
# Not documented
|
||||||
"tyd": (
|
"tyd": (
|
||||||
@ -378,22 +394,6 @@ LIGHTS: dict[str, tuple[TuyaLightEntityDescription, ...]] = {
|
|||||||
color_temp=DPCode.TEMP_CONTROLLER,
|
color_temp=DPCode.TEMP_CONTROLLER,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# Fan
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryfs?id=Kaiuz1xweel1c
|
|
||||||
"fs": (
|
|
||||||
TuyaLightEntityDescription(
|
|
||||||
key=DPCode.LIGHT,
|
|
||||||
name=None,
|
|
||||||
color_mode=DPCode.WORK_MODE,
|
|
||||||
brightness=DPCode.BRIGHT_VALUE,
|
|
||||||
color_temp=DPCode.TEMP_VALUE,
|
|
||||||
),
|
|
||||||
TuyaLightEntityDescription(
|
|
||||||
key=DPCode.SWITCH_LED,
|
|
||||||
translation_key="light_2",
|
|
||||||
brightness=DPCode.BRIGHT_VALUE_1,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Socket (duplicate of `kg`)
|
# Socket (duplicate of `kg`)
|
||||||
|
@ -22,15 +22,6 @@ from .entity import IntegerTypeData, TuyaEntity
|
|||||||
# default instructions set of each category end up being a number.
|
# default instructions set of each category end up being a number.
|
||||||
# https://developer.tuya.com/en/docs/iot/standarddescription?id=K9i5ql6waswzq
|
# https://developer.tuya.com/en/docs/iot/standarddescription?id=K9i5ql6waswzq
|
||||||
NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = {
|
NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = {
|
||||||
# Multi-functional Sensor
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categorydgnbj?id=Kaiuz3yorvzg3
|
|
||||||
"dgnbj": (
|
|
||||||
NumberEntityDescription(
|
|
||||||
key=DPCode.ALARM_TIME,
|
|
||||||
translation_key="time",
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Smart Kettle
|
# Smart Kettle
|
||||||
# https://developer.tuya.com/en/docs/iot/fbh?id=K9gf484m21yq7
|
# https://developer.tuya.com/en/docs/iot/fbh?id=K9gf484m21yq7
|
||||||
"bh": (
|
"bh": (
|
||||||
@ -64,6 +55,17 @@ NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = {
|
|||||||
entity_category=EntityCategory.CONFIG,
|
entity_category=EntityCategory.CONFIG,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
# CO2 Detector
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categoryco2bj?id=Kaiuz3wes7yuy
|
||||||
|
"co2bj": (
|
||||||
|
NumberEntityDescription(
|
||||||
|
key=DPCode.ALARM_TIME,
|
||||||
|
translation_key="alarm_duration",
|
||||||
|
native_unit_of_measurement=UnitOfTime.SECONDS,
|
||||||
|
device_class=NumberDeviceClass.DURATION,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
),
|
||||||
# Smart Pet Feeder
|
# Smart Pet Feeder
|
||||||
# https://developer.tuya.com/en/docs/iot/categorycwwsq?id=Kaiuz2b6vydld
|
# https://developer.tuya.com/en/docs/iot/categorycwwsq?id=Kaiuz2b6vydld
|
||||||
"cwwsq": (
|
"cwwsq": (
|
||||||
@ -76,6 +78,24 @@ NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = {
|
|||||||
translation_key="voice_times",
|
translation_key="voice_times",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
# Multi-functional Sensor
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categorydgnbj?id=Kaiuz3yorvzg3
|
||||||
|
"dgnbj": (
|
||||||
|
NumberEntityDescription(
|
||||||
|
key=DPCode.ALARM_TIME,
|
||||||
|
translation_key="time",
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
# Fan
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categoryfs?id=Kaiuz1xweel1c
|
||||||
|
"fs": (
|
||||||
|
NumberEntityDescription(
|
||||||
|
key=DPCode.TEMP,
|
||||||
|
translation_key="temperature",
|
||||||
|
device_class=NumberDeviceClass.TEMPERATURE,
|
||||||
|
),
|
||||||
|
),
|
||||||
# Human Presence Sensor
|
# Human Presence Sensor
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryhps?id=Kaiuz42yhn1hs
|
# https://developer.tuya.com/en/docs/iot/categoryhps?id=Kaiuz42yhn1hs
|
||||||
"hps": (
|
"hps": (
|
||||||
@ -102,6 +122,20 @@ NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = {
|
|||||||
device_class=NumberDeviceClass.DISTANCE,
|
device_class=NumberDeviceClass.DISTANCE,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
# Humidifier
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categoryjsq?id=Kaiuz1smr440b
|
||||||
|
"jsq": (
|
||||||
|
NumberEntityDescription(
|
||||||
|
key=DPCode.TEMP_SET,
|
||||||
|
translation_key="temperature",
|
||||||
|
device_class=NumberDeviceClass.TEMPERATURE,
|
||||||
|
),
|
||||||
|
NumberEntityDescription(
|
||||||
|
key=DPCode.TEMP_SET_F,
|
||||||
|
translation_key="temperature",
|
||||||
|
device_class=NumberDeviceClass.TEMPERATURE,
|
||||||
|
),
|
||||||
|
),
|
||||||
# Coffee maker
|
# Coffee maker
|
||||||
# https://developer.tuya.com/en/docs/iot/categorykfj?id=Kaiuz2p12pc7f
|
# https://developer.tuya.com/en/docs/iot/categorykfj?id=Kaiuz2p12pc7f
|
||||||
"kfj": (
|
"kfj": (
|
||||||
@ -174,6 +208,26 @@ NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = {
|
|||||||
entity_category=EntityCategory.CONFIG,
|
entity_category=EntityCategory.CONFIG,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
# Fingerbot
|
||||||
|
"szjqr": (
|
||||||
|
NumberEntityDescription(
|
||||||
|
key=DPCode.ARM_DOWN_PERCENT,
|
||||||
|
translation_key="move_down",
|
||||||
|
native_unit_of_measurement=PERCENTAGE,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
NumberEntityDescription(
|
||||||
|
key=DPCode.ARM_UP_PERCENT,
|
||||||
|
translation_key="move_up",
|
||||||
|
native_unit_of_measurement=PERCENTAGE,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
NumberEntityDescription(
|
||||||
|
key=DPCode.CLICK_SUSTAIN_TIME,
|
||||||
|
translation_key="down_delay",
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
),
|
||||||
# Dimmer Switch
|
# Dimmer Switch
|
||||||
# https://developer.tuya.com/en/docs/iot/categorytgkg?id=Kaiuz0ktx7m0o
|
# https://developer.tuya.com/en/docs/iot/categorytgkg?id=Kaiuz0ktx7m0o
|
||||||
"tgkg": (
|
"tgkg": (
|
||||||
@ -241,49 +295,6 @@ NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = {
|
|||||||
entity_category=EntityCategory.CONFIG,
|
entity_category=EntityCategory.CONFIG,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# Fingerbot
|
|
||||||
"szjqr": (
|
|
||||||
NumberEntityDescription(
|
|
||||||
key=DPCode.ARM_DOWN_PERCENT,
|
|
||||||
translation_key="move_down",
|
|
||||||
native_unit_of_measurement=PERCENTAGE,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
NumberEntityDescription(
|
|
||||||
key=DPCode.ARM_UP_PERCENT,
|
|
||||||
translation_key="move_up",
|
|
||||||
native_unit_of_measurement=PERCENTAGE,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
NumberEntityDescription(
|
|
||||||
key=DPCode.CLICK_SUSTAIN_TIME,
|
|
||||||
translation_key="down_delay",
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Fan
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryfs?id=Kaiuz1xweel1c
|
|
||||||
"fs": (
|
|
||||||
NumberEntityDescription(
|
|
||||||
key=DPCode.TEMP,
|
|
||||||
translation_key="temperature",
|
|
||||||
device_class=NumberDeviceClass.TEMPERATURE,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Humidifier
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryjsq?id=Kaiuz1smr440b
|
|
||||||
"jsq": (
|
|
||||||
NumberEntityDescription(
|
|
||||||
key=DPCode.TEMP_SET,
|
|
||||||
translation_key="temperature",
|
|
||||||
device_class=NumberDeviceClass.TEMPERATURE,
|
|
||||||
),
|
|
||||||
NumberEntityDescription(
|
|
||||||
key=DPCode.TEMP_SET_F,
|
|
||||||
translation_key="temperature",
|
|
||||||
device_class=NumberDeviceClass.TEMPERATURE,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Pool HeatPump
|
# Pool HeatPump
|
||||||
"znrb": (
|
"znrb": (
|
||||||
NumberEntityDescription(
|
NumberEntityDescription(
|
||||||
@ -292,17 +303,6 @@ NUMBERS: dict[str, tuple[NumberEntityDescription, ...]] = {
|
|||||||
device_class=NumberDeviceClass.TEMPERATURE,
|
device_class=NumberDeviceClass.TEMPERATURE,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# CO2 Detector
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryco2bj?id=Kaiuz3wes7yuy
|
|
||||||
"co2bj": (
|
|
||||||
NumberEntityDescription(
|
|
||||||
key=DPCode.ALARM_TIME,
|
|
||||||
translation_key="alarm_duration",
|
|
||||||
native_unit_of_measurement=UnitOfTime.SECONDS,
|
|
||||||
device_class=NumberDeviceClass.DURATION,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Smart Camera - Low power consumption camera (duplicate of `sp`)
|
# Smart Camera - Low power consumption camera (duplicate of `sp`)
|
||||||
|
@ -18,6 +18,43 @@ from .entity import TuyaEntity
|
|||||||
# default instructions set of each category end up being a select.
|
# default instructions set of each category end up being a select.
|
||||||
# https://developer.tuya.com/en/docs/iot/standarddescription?id=K9i5ql6waswzq
|
# https://developer.tuya.com/en/docs/iot/standarddescription?id=K9i5ql6waswzq
|
||||||
SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
|
SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
|
||||||
|
# Curtain
|
||||||
|
# https://developer.tuya.com/en/docs/iot/f?id=K9gf46o5mtfyc
|
||||||
|
"cl": (
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.CONTROL_BACK_MODE,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="curtain_motor_mode",
|
||||||
|
),
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.MODE,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="curtain_mode",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
# CO2 Detector
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categoryco2bj?id=Kaiuz3wes7yuy
|
||||||
|
"co2bj": (
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.ALARM_VOLUME,
|
||||||
|
translation_key="volume",
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
# Dehumidifier
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categorycs?id=Kaiuz1vcz4dha
|
||||||
|
"cs": (
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.COUNTDOWN_SET,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="countdown",
|
||||||
|
),
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.DEHUMIDITY_SET_ENUM,
|
||||||
|
translation_key="target_humidity",
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
),
|
||||||
# Multi-functional Sensor
|
# Multi-functional Sensor
|
||||||
# https://developer.tuya.com/en/docs/iot/categorydgnbj?id=Kaiuz3yorvzg3
|
# https://developer.tuya.com/en/docs/iot/categorydgnbj?id=Kaiuz3yorvzg3
|
||||||
"dgnbj": (
|
"dgnbj": (
|
||||||
@ -27,6 +64,81 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
|
|||||||
entity_category=EntityCategory.CONFIG,
|
entity_category=EntityCategory.CONFIG,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
# Electric Blanket
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categorydr?id=Kaiuz22dyc66p
|
||||||
|
"dr": (
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.LEVEL,
|
||||||
|
name="Level",
|
||||||
|
icon="mdi:thermometer-lines",
|
||||||
|
translation_key="blanket_level",
|
||||||
|
),
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.LEVEL_1,
|
||||||
|
name="Side A Level",
|
||||||
|
icon="mdi:thermometer-lines",
|
||||||
|
translation_key="blanket_level",
|
||||||
|
),
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.LEVEL_2,
|
||||||
|
name="Side B Level",
|
||||||
|
icon="mdi:thermometer-lines",
|
||||||
|
translation_key="blanket_level",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
# Fan
|
||||||
|
# https://developer.tuya.com/en/docs/iot/f?id=K9gf45vs7vkge
|
||||||
|
"fs": (
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.FAN_VERTICAL,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="vertical_fan_angle",
|
||||||
|
),
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.FAN_HORIZONTAL,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="horizontal_fan_angle",
|
||||||
|
),
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.COUNTDOWN,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="countdown",
|
||||||
|
),
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.COUNTDOWN_SET,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="countdown",
|
||||||
|
),
|
||||||
|
),
|
||||||
|
# Humidifier
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categoryjsq?id=Kaiuz1smr440b
|
||||||
|
"jsq": (
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.SPRAY_MODE,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="humidifier_spray_mode",
|
||||||
|
),
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.LEVEL,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="humidifier_level",
|
||||||
|
),
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.MOODLIGHTING,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="humidifier_moodlighting",
|
||||||
|
),
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.COUNTDOWN,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="countdown",
|
||||||
|
),
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.COUNTDOWN_SET,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="countdown",
|
||||||
|
),
|
||||||
|
),
|
||||||
# Coffee maker
|
# Coffee maker
|
||||||
# https://developer.tuya.com/en/docs/iot/categorykfj?id=Kaiuz2p12pc7f
|
# https://developer.tuya.com/en/docs/iot/categorykfj?id=Kaiuz2p12pc7f
|
||||||
"kfj": (
|
"kfj": (
|
||||||
@ -63,6 +175,20 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
|
|||||||
translation_key="light_mode",
|
translation_key="light_mode",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
# Air Purifier
|
||||||
|
# https://developer.tuya.com/en/docs/iot/f?id=K9gf46h2s6dzm
|
||||||
|
"kj": (
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.COUNTDOWN,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="countdown",
|
||||||
|
),
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.COUNTDOWN_SET,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="countdown",
|
||||||
|
),
|
||||||
|
),
|
||||||
# Heater
|
# Heater
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryqn?id=Kaiuz18kih0sm
|
# https://developer.tuya.com/en/docs/iot/categoryqn?id=Kaiuz18kih0sm
|
||||||
"qn": (
|
"qn": (
|
||||||
@ -71,6 +197,25 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
|
|||||||
translation_key="temperature_level",
|
translation_key="temperature_level",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
# Robot Vacuum
|
||||||
|
# https://developer.tuya.com/en/docs/iot/fsd?id=K9gf487ck1tlo
|
||||||
|
"sd": (
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.CISTERN,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="vacuum_cistern",
|
||||||
|
),
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.COLLECTION_MODE,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="vacuum_collection",
|
||||||
|
),
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.MODE,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="vacuum_mode",
|
||||||
|
),
|
||||||
|
),
|
||||||
# Smart Water Timer
|
# Smart Water Timer
|
||||||
"sfkzq": (
|
"sfkzq": (
|
||||||
# Irrigation will not be run within this set delay period
|
# Irrigation will not be run within this set delay period
|
||||||
@ -128,6 +273,14 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
|
|||||||
translation_key="motion_sensitivity",
|
translation_key="motion_sensitivity",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
# Fingerbot
|
||||||
|
"szjqr": (
|
||||||
|
SelectEntityDescription(
|
||||||
|
key=DPCode.MODE,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
translation_key="fingerbot_mode",
|
||||||
|
),
|
||||||
|
),
|
||||||
# IoT Switch?
|
# IoT Switch?
|
||||||
# Note: Undocumented
|
# Note: Undocumented
|
||||||
"tdq": (
|
"tdq": (
|
||||||
@ -185,173 +338,20 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
|
|||||||
translation_key="led_type_2",
|
translation_key="led_type_2",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# Fingerbot
|
|
||||||
"szjqr": (
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.MODE,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="fingerbot_mode",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Robot Vacuum
|
|
||||||
# https://developer.tuya.com/en/docs/iot/fsd?id=K9gf487ck1tlo
|
|
||||||
"sd": (
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.CISTERN,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="vacuum_cistern",
|
|
||||||
),
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.COLLECTION_MODE,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="vacuum_collection",
|
|
||||||
),
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.MODE,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="vacuum_mode",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Fan
|
|
||||||
# https://developer.tuya.com/en/docs/iot/f?id=K9gf45vs7vkge
|
|
||||||
"fs": (
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.FAN_VERTICAL,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="vertical_fan_angle",
|
|
||||||
),
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.FAN_HORIZONTAL,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="horizontal_fan_angle",
|
|
||||||
),
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.COUNTDOWN,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="countdown",
|
|
||||||
),
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.COUNTDOWN_SET,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="countdown",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Curtain
|
|
||||||
# https://developer.tuya.com/en/docs/iot/f?id=K9gf46o5mtfyc
|
|
||||||
"cl": (
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.CONTROL_BACK_MODE,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="curtain_motor_mode",
|
|
||||||
),
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.MODE,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="curtain_mode",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Humidifier
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryjsq?id=Kaiuz1smr440b
|
|
||||||
"jsq": (
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.SPRAY_MODE,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="humidifier_spray_mode",
|
|
||||||
),
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.LEVEL,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="humidifier_level",
|
|
||||||
),
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.MOODLIGHTING,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="humidifier_moodlighting",
|
|
||||||
),
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.COUNTDOWN,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="countdown",
|
|
||||||
),
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.COUNTDOWN_SET,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="countdown",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Air Purifier
|
|
||||||
# https://developer.tuya.com/en/docs/iot/f?id=K9gf46h2s6dzm
|
|
||||||
"kj": (
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.COUNTDOWN,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="countdown",
|
|
||||||
),
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.COUNTDOWN_SET,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="countdown",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Dehumidifier
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categorycs?id=Kaiuz1vcz4dha
|
|
||||||
"cs": (
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.COUNTDOWN_SET,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
translation_key="countdown",
|
|
||||||
),
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.DEHUMIDITY_SET_ENUM,
|
|
||||||
translation_key="target_humidity",
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# CO2 Detector
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryco2bj?id=Kaiuz3wes7yuy
|
|
||||||
"co2bj": (
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.ALARM_VOLUME,
|
|
||||||
translation_key="volume",
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Electric Blanket
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categorydr?id=Kaiuz22dyc66p
|
|
||||||
"dr": (
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.LEVEL,
|
|
||||||
name="Level",
|
|
||||||
icon="mdi:thermometer-lines",
|
|
||||||
translation_key="blanket_level",
|
|
||||||
),
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.LEVEL_1,
|
|
||||||
name="Side A Level",
|
|
||||||
icon="mdi:thermometer-lines",
|
|
||||||
translation_key="blanket_level",
|
|
||||||
),
|
|
||||||
SelectEntityDescription(
|
|
||||||
key=DPCode.LEVEL_2,
|
|
||||||
name="Side B Level",
|
|
||||||
icon="mdi:thermometer-lines",
|
|
||||||
translation_key="blanket_level",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Socket (duplicate of `kg`)
|
# Socket (duplicate of `kg`)
|
||||||
# https://developer.tuya.com/en/docs/iot/s?id=K9gf7o5prgf7s
|
# https://developer.tuya.com/en/docs/iot/s?id=K9gf7o5prgf7s
|
||||||
SELECTS["cz"] = SELECTS["kg"]
|
SELECTS["cz"] = SELECTS["kg"]
|
||||||
|
|
||||||
# Power Socket (duplicate of `kg`)
|
|
||||||
# https://developer.tuya.com/en/docs/iot/s?id=K9gf7o5prgf7s
|
|
||||||
SELECTS["pc"] = SELECTS["kg"]
|
|
||||||
|
|
||||||
# Smart Camera - Low power consumption camera (duplicate of `sp`)
|
# Smart Camera - Low power consumption camera (duplicate of `sp`)
|
||||||
# Undocumented, see https://github.com/home-assistant/core/issues/132844
|
# Undocumented, see https://github.com/home-assistant/core/issues/132844
|
||||||
SELECTS["dghsxj"] = SELECTS["sp"]
|
SELECTS["dghsxj"] = SELECTS["sp"]
|
||||||
|
|
||||||
|
# Power Socket (duplicate of `kg`)
|
||||||
|
# https://developer.tuya.com/en/docs/iot/s?id=K9gf7o5prgf7s
|
||||||
|
SELECTS["pc"] = SELECTS["kg"]
|
||||||
|
|
||||||
|
|
||||||
async def async_setup_entry(
|
async def async_setup_entry(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -23,6 +23,14 @@ from .entity import TuyaEntity
|
|||||||
# All descriptions can be found here:
|
# All descriptions can be found here:
|
||||||
# https://developer.tuya.com/en/docs/iot/standarddescription?id=K9i5ql6waswzq
|
# https://developer.tuya.com/en/docs/iot/standarddescription?id=K9i5ql6waswzq
|
||||||
SIRENS: dict[str, tuple[SirenEntityDescription, ...]] = {
|
SIRENS: dict[str, tuple[SirenEntityDescription, ...]] = {
|
||||||
|
# CO2 Detector
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categoryco2bj?id=Kaiuz3wes7yuy
|
||||||
|
"co2bj": (
|
||||||
|
SirenEntityDescription(
|
||||||
|
key=DPCode.ALARM_SWITCH,
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
),
|
||||||
# Multi-functional Sensor
|
# Multi-functional Sensor
|
||||||
# https://developer.tuya.com/en/docs/iot/categorydgnbj?id=Kaiuz3yorvzg3
|
# https://developer.tuya.com/en/docs/iot/categorydgnbj?id=Kaiuz3yorvzg3
|
||||||
"dgnbj": (
|
"dgnbj": (
|
||||||
@ -44,14 +52,6 @@ SIRENS: dict[str, tuple[SirenEntityDescription, ...]] = {
|
|||||||
key=DPCode.SIREN_SWITCH,
|
key=DPCode.SIREN_SWITCH,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# CO2 Detector
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryco2bj?id=Kaiuz3wes7yuy
|
|
||||||
"co2bj": (
|
|
||||||
SirenEntityDescription(
|
|
||||||
key=DPCode.ALARM_SWITCH,
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Smart Camera - Low power consumption camera (duplicate of `sp`)
|
# Smart Camera - Low power consumption camera (duplicate of `sp`)
|
||||||
|
@ -37,6 +37,20 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = {
|
|||||||
entity_category=EntityCategory.CONFIG,
|
entity_category=EntityCategory.CONFIG,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
# Curtain
|
||||||
|
# https://developer.tuya.com/en/docs/iot/f?id=K9gf46o5mtfyc
|
||||||
|
"cl": (
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.CONTROL_BACK,
|
||||||
|
translation_key="reverse",
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.OPPOSITE,
|
||||||
|
translation_key="reverse",
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
),
|
||||||
# EasyBaby
|
# EasyBaby
|
||||||
# Undocumented, might have a wider use
|
# Undocumented, might have a wider use
|
||||||
"cn": (
|
"cn": (
|
||||||
@ -131,6 +145,116 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = {
|
|||||||
translation_key="switch",
|
translation_key="switch",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
# Electric Blanket
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categorydr?id=Kaiuz22dyc66p
|
||||||
|
"dr": (
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.SWITCH,
|
||||||
|
name="Power",
|
||||||
|
icon="mdi:power",
|
||||||
|
device_class=SwitchDeviceClass.SWITCH,
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.SWITCH_1,
|
||||||
|
name="Side A Power",
|
||||||
|
icon="mdi:alpha-a",
|
||||||
|
device_class=SwitchDeviceClass.SWITCH,
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.SWITCH_2,
|
||||||
|
name="Side B Power",
|
||||||
|
icon="mdi:alpha-b",
|
||||||
|
device_class=SwitchDeviceClass.SWITCH,
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.PREHEAT,
|
||||||
|
name="Preheat",
|
||||||
|
icon="mdi:radiator",
|
||||||
|
device_class=SwitchDeviceClass.SWITCH,
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.PREHEAT_1,
|
||||||
|
name="Side A Preheat",
|
||||||
|
icon="mdi:radiator",
|
||||||
|
device_class=SwitchDeviceClass.SWITCH,
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.PREHEAT_2,
|
||||||
|
name="Side B Preheat",
|
||||||
|
icon="mdi:radiator",
|
||||||
|
device_class=SwitchDeviceClass.SWITCH,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
# Fan
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categoryfs?id=Kaiuz1xweel1c
|
||||||
|
"fs": (
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.ANION,
|
||||||
|
translation_key="anion",
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.HUMIDIFIER,
|
||||||
|
translation_key="humidification",
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.OXYGEN,
|
||||||
|
translation_key="oxygen_bar",
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.FAN_COOL,
|
||||||
|
translation_key="natural_wind",
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.FAN_BEEP,
|
||||||
|
translation_key="sound",
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.CHILD_LOCK,
|
||||||
|
translation_key="child_lock",
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
# Irrigator
|
||||||
|
# https://developer.tuya.com/en/docs/iot/categoryggq?id=Kaiuz1qib7z0k
|
||||||
|
"ggq": (
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.SWITCH_1,
|
||||||
|
translation_key="switch_1",
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.SWITCH_2,
|
||||||
|
translation_key="switch_2",
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.SWITCH_3,
|
||||||
|
translation_key="switch_3",
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.SWITCH_4,
|
||||||
|
translation_key="switch_4",
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.SWITCH_5,
|
||||||
|
translation_key="switch_5",
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.SWITCH_6,
|
||||||
|
translation_key="switch_6",
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.SWITCH_7,
|
||||||
|
translation_key="switch_7",
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.SWITCH_8,
|
||||||
|
translation_key="switch_8",
|
||||||
|
),
|
||||||
|
),
|
||||||
# Wake Up Light II
|
# Wake Up Light II
|
||||||
# Not documented
|
# Not documented
|
||||||
"hxd": (
|
"hxd": (
|
||||||
@ -163,19 +287,23 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = {
|
|||||||
translation_key="sleep_aid",
|
translation_key="sleep_aid",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# Two-way temperature and humidity switch
|
# Humidifier
|
||||||
# "MOES Temperature and Humidity Smart Switch Module MS-103"
|
# https://developer.tuya.com/en/docs/iot/categoryjsq?id=Kaiuz1smr440b
|
||||||
# Documentation not found
|
"jsq": (
|
||||||
"wkcz": (
|
|
||||||
SwitchEntityDescription(
|
SwitchEntityDescription(
|
||||||
key=DPCode.SWITCH_1,
|
key=DPCode.SWITCH_SOUND,
|
||||||
translation_key="switch_1",
|
translation_key="voice",
|
||||||
device_class=SwitchDeviceClass.OUTLET,
|
entity_category=EntityCategory.CONFIG,
|
||||||
),
|
),
|
||||||
SwitchEntityDescription(
|
SwitchEntityDescription(
|
||||||
key=DPCode.SWITCH_2,
|
key=DPCode.SLEEP,
|
||||||
translation_key="switch_2",
|
translation_key="sleep",
|
||||||
device_class=SwitchDeviceClass.OUTLET,
|
entity_category=EntityCategory.CONFIG,
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.STERILIZATION,
|
||||||
|
translation_key="sterilization",
|
||||||
|
entity_category=EntityCategory.CONFIG,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# Switch
|
# Switch
|
||||||
@ -408,6 +536,15 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = {
|
|||||||
entity_category=EntityCategory.CONFIG,
|
entity_category=EntityCategory.CONFIG,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
# SIREN: Siren (switch) with Temperature and Humidity Sensor with External Probe
|
||||||
|
# New undocumented category qxj, see https://github.com/home-assistant/core/issues/136472
|
||||||
|
"qxj": (
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.SWITCH,
|
||||||
|
translation_key="switch",
|
||||||
|
device_class=SwitchDeviceClass.OUTLET,
|
||||||
|
),
|
||||||
|
),
|
||||||
# Robot Vacuum
|
# Robot Vacuum
|
||||||
# https://developer.tuya.com/en/docs/iot/fsd?id=K9gf487ck1tlo
|
# https://developer.tuya.com/en/docs/iot/fsd?id=K9gf487ck1tlo
|
||||||
"sd": (
|
"sd": (
|
||||||
@ -429,42 +566,6 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = {
|
|||||||
translation_key="switch",
|
translation_key="switch",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# Irrigator
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryggq?id=Kaiuz1qib7z0k
|
|
||||||
"ggq": (
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.SWITCH_1,
|
|
||||||
translation_key="switch_1",
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.SWITCH_2,
|
|
||||||
translation_key="switch_2",
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.SWITCH_3,
|
|
||||||
translation_key="switch_3",
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.SWITCH_4,
|
|
||||||
translation_key="switch_4",
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.SWITCH_5,
|
|
||||||
translation_key="switch_5",
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.SWITCH_6,
|
|
||||||
translation_key="switch_6",
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.SWITCH_7,
|
|
||||||
translation_key="switch_7",
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.SWITCH_8,
|
|
||||||
translation_key="switch_8",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Siren Alarm
|
# Siren Alarm
|
||||||
# https://developer.tuya.com/en/docs/iot/categorysgbj?id=Kaiuz37tlpbnu
|
# https://developer.tuya.com/en/docs/iot/categorysgbj?id=Kaiuz37tlpbnu
|
||||||
"sgbj": (
|
"sgbj": (
|
||||||
@ -552,13 +653,6 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = {
|
|||||||
translation_key="switch",
|
translation_key="switch",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# Hejhome whitelabel Fingerbot
|
|
||||||
"znjxs": (
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.SWITCH,
|
|
||||||
translation_key="switch",
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# IoT Switch?
|
# IoT Switch?
|
||||||
# Note: Undocumented
|
# Note: Undocumented
|
||||||
"tdq": (
|
"tdq": (
|
||||||
@ -606,6 +700,21 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = {
|
|||||||
entity_category=EntityCategory.CONFIG,
|
entity_category=EntityCategory.CONFIG,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
# Two-way temperature and humidity switch
|
||||||
|
# "MOES Temperature and Humidity Smart Switch Module MS-103"
|
||||||
|
# Documentation not found
|
||||||
|
"wkcz": (
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.SWITCH_1,
|
||||||
|
translation_key="switch_1",
|
||||||
|
device_class=SwitchDeviceClass.OUTLET,
|
||||||
|
),
|
||||||
|
SwitchEntityDescription(
|
||||||
|
key=DPCode.SWITCH_2,
|
||||||
|
translation_key="switch_2",
|
||||||
|
device_class=SwitchDeviceClass.OUTLET,
|
||||||
|
),
|
||||||
|
),
|
||||||
# Thermostatic Radiator Valve
|
# Thermostatic Radiator Valve
|
||||||
# Not documented
|
# Not documented
|
||||||
"wkf": (
|
"wkf": (
|
||||||
@ -636,15 +745,6 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = {
|
|||||||
device_class=SwitchDeviceClass.OUTLET,
|
device_class=SwitchDeviceClass.OUTLET,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# SIREN: Siren (switch) with Temperature and Humidity Sensor with External Probe
|
|
||||||
# New undocumented category qxj, see https://github.com/home-assistant/core/issues/136472
|
|
||||||
"qxj": (
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.SWITCH,
|
|
||||||
translation_key="switch",
|
|
||||||
device_class=SwitchDeviceClass.OUTLET,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Ceiling Light
|
# Ceiling Light
|
||||||
# https://developer.tuya.com/en/docs/iot/ceiling-light?id=Kaiuz03xxfc4r
|
# https://developer.tuya.com/en/docs/iot/ceiling-light?id=Kaiuz03xxfc4r
|
||||||
"xdd": (
|
"xdd": (
|
||||||
@ -679,71 +779,11 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = {
|
|||||||
translation_key="switch",
|
translation_key="switch",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# Fan
|
# Hejhome whitelabel Fingerbot
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryfs?id=Kaiuz1xweel1c
|
"znjxs": (
|
||||||
"fs": (
|
|
||||||
SwitchEntityDescription(
|
SwitchEntityDescription(
|
||||||
key=DPCode.ANION,
|
key=DPCode.SWITCH,
|
||||||
translation_key="anion",
|
translation_key="switch",
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.HUMIDIFIER,
|
|
||||||
translation_key="humidification",
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.OXYGEN,
|
|
||||||
translation_key="oxygen_bar",
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.FAN_COOL,
|
|
||||||
translation_key="natural_wind",
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.FAN_BEEP,
|
|
||||||
translation_key="sound",
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.CHILD_LOCK,
|
|
||||||
translation_key="child_lock",
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Curtain
|
|
||||||
# https://developer.tuya.com/en/docs/iot/f?id=K9gf46o5mtfyc
|
|
||||||
"cl": (
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.CONTROL_BACK,
|
|
||||||
translation_key="reverse",
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.OPPOSITE,
|
|
||||||
translation_key="reverse",
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
# Humidifier
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categoryjsq?id=Kaiuz1smr440b
|
|
||||||
"jsq": (
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.SWITCH_SOUND,
|
|
||||||
translation_key="voice",
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.SLEEP,
|
|
||||||
translation_key="sleep",
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.STERILIZATION,
|
|
||||||
translation_key="sterilization",
|
|
||||||
entity_category=EntityCategory.CONFIG,
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# Pool HeatPump
|
# Pool HeatPump
|
||||||
@ -753,46 +793,6 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = {
|
|||||||
translation_key="switch",
|
translation_key="switch",
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
# Electric Blanket
|
|
||||||
# https://developer.tuya.com/en/docs/iot/categorydr?id=Kaiuz22dyc66p
|
|
||||||
"dr": (
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.SWITCH,
|
|
||||||
name="Power",
|
|
||||||
icon="mdi:power",
|
|
||||||
device_class=SwitchDeviceClass.SWITCH,
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.SWITCH_1,
|
|
||||||
name="Side A Power",
|
|
||||||
icon="mdi:alpha-a",
|
|
||||||
device_class=SwitchDeviceClass.SWITCH,
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.SWITCH_2,
|
|
||||||
name="Side B Power",
|
|
||||||
icon="mdi:alpha-b",
|
|
||||||
device_class=SwitchDeviceClass.SWITCH,
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.PREHEAT,
|
|
||||||
name="Preheat",
|
|
||||||
icon="mdi:radiator",
|
|
||||||
device_class=SwitchDeviceClass.SWITCH,
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.PREHEAT_1,
|
|
||||||
name="Side A Preheat",
|
|
||||||
icon="mdi:radiator",
|
|
||||||
device_class=SwitchDeviceClass.SWITCH,
|
|
||||||
),
|
|
||||||
SwitchEntityDescription(
|
|
||||||
key=DPCode.PREHEAT_2,
|
|
||||||
name="Side B Preheat",
|
|
||||||
icon="mdi:radiator",
|
|
||||||
device_class=SwitchDeviceClass.SWITCH,
|
|
||||||
),
|
|
||||||
),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Socket (duplicate of `pc`)
|
# Socket (duplicate of `pc`)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user