Add Dimmer Switch (tgkg) device support to Tuya (#58134)

This commit is contained in:
Franck Nijhof 2021-10-20 23:19:42 +02:00 committed by GitHub
parent c204196a7a
commit 7353ea5416
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 77 additions and 1 deletions

View file

@ -75,8 +75,9 @@ CONF_PASSWORD = "password"
CONF_COUNTRY_CODE = "country_code"
CONF_APP_TYPE = "tuya_app_type"
DEVICE_CLASS_TUYA_RELAY_STATUS = "tuya__relay_status"
DEVICE_CLASS_TUYA_LED_TYPE = "tuya__led_type"
DEVICE_CLASS_TUYA_LIGHT_MODE = "tuya__light_mode"
DEVICE_CLASS_TUYA_RELAY_STATUS = "tuya__relay_status"
TUYA_DISCOVERY_NEW = "tuya_discovery_new"
TUYA_HA_SIGNAL_UPDATE_ENTITY = "tuya_entry_update"
@ -136,6 +137,7 @@ class DPCode(str, Enum):
BRIGHT_VALUE = "bright_value" # Brightness
BRIGHT_VALUE_1 = "bright_value_1"
BRIGHT_VALUE_2 = "bright_value_2"
BRIGHT_VALUE_3 = "bright_value_3"
BRIGHT_VALUE_V2 = "bright_value_v2"
C_F = "c_f" # Temperature unit switching
CH2O_STATE = "ch2o_state"
@ -168,6 +170,9 @@ class DPCode(str, Enum):
HUMIDITY_CURRENT = "humidity_current" # Current humidity
HUMIDITY_SET = "humidity_set" # Humidity setting
HUMIDITY_VALUE = "humidity_value" # Humidity
LED_TYPE_1 = "led_type_1"
LED_TYPE_2 = "led_type_2"
LED_TYPE_3 = "led_type_3"
LIGHT = "light" # Light
LIGHT_MODE = "light_mode"
LOCK = "lock" # Lock / Child lock
@ -217,6 +222,7 @@ class DPCode(str, Enum):
SWITCH_LED = "switch_led" # Switch
SWITCH_LED_1 = "switch_led_1"
SWITCH_LED_2 = "switch_led_2"
SWITCH_LED_3 = "switch_led_3"
SWITCH_NIGHT_LIGHT = "switch_night_light"
SWITCH_SPRAY = "switch_spray" # Spraying switch
SWITCH_USB1 = "switch_usb1" # USB 1

View file

@ -113,6 +113,25 @@ LIGHTS: dict[str, tuple[TuyaLightEntityDescription, ...]] = {
name="Backlight",
),
),
# Dimmer Switch
# https://developer.tuya.com/en/docs/iot/categorytgkg?id=Kaiuz0ktx7m0o
"tgkg": (
TuyaLightEntityDescription(
key=DPCode.SWITCH_LED_1,
name="Light",
brightness=DPCode.BRIGHT_VALUE_1,
),
TuyaLightEntityDescription(
key=DPCode.SWITCH_LED_2,
name="Light 2",
brightness=DPCode.BRIGHT_VALUE_2,
),
TuyaLightEntityDescription(
key=DPCode.SWITCH_LED_3,
name="Light 3",
brightness=DPCode.BRIGHT_VALUE_3,
),
),
# Dimmer
# https://developer.tuya.com/en/docs/iot/tgq?id=Kaof8ke9il4k4
"tgq": (

View file

@ -16,6 +16,7 @@ from homeassistant.helpers.entity_platform import AddEntitiesCallback
from . import HomeAssistantTuyaData
from .base import EnumTypeData, TuyaEntity
from .const import (
DEVICE_CLASS_TUYA_LED_TYPE,
DEVICE_CLASS_TUYA_LIGHT_MODE,
DEVICE_CLASS_TUYA_RELAY_STATUS,
DOMAIN,
@ -82,6 +83,40 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
entity_category=ENTITY_CATEGORY_CONFIG,
),
),
# Dimmer Switch
# https://developer.tuya.com/en/docs/iot/categorytgkg?id=Kaiuz0ktx7m0o
"tgkg": (
SelectEntityDescription(
key=DPCode.RELAY_STATUS,
name="Power on Behavior",
device_class=DEVICE_CLASS_TUYA_RELAY_STATUS,
entity_category=ENTITY_CATEGORY_CONFIG,
),
SelectEntityDescription(
key=DPCode.LIGHT_MODE,
name="Indicator Light Mode",
device_class=DEVICE_CLASS_TUYA_LIGHT_MODE,
entity_category=ENTITY_CATEGORY_CONFIG,
),
SelectEntityDescription(
key=DPCode.LED_TYPE_1,
name="Light Source Type",
device_class=DEVICE_CLASS_TUYA_LED_TYPE,
entity_category=ENTITY_CATEGORY_CONFIG,
),
SelectEntityDescription(
key=DPCode.LED_TYPE_2,
name="Light 2 Source Type",
device_class=DEVICE_CLASS_TUYA_LED_TYPE,
entity_category=ENTITY_CATEGORY_CONFIG,
),
SelectEntityDescription(
key=DPCode.LED_TYPE_3,
name="Light 3 Source Type",
device_class=DEVICE_CLASS_TUYA_LED_TYPE,
entity_category=ENTITY_CATEGORY_CONFIG,
),
),
}

View file

@ -1,5 +1,10 @@
{
"state": {
"tuya__led_type": {
"halogen": "Halogen",
"incandescent": "Incandescent",
"led": "LED"
},
"tuya__light_mode": {
"none": "[%key:common::state::off%]",
"pos": "Indicate switch location",
@ -7,6 +12,9 @@
},
"tuya__relay_status": {
"last": "Remember last state",
"memory": "Remember last state",
"off": "[%key:common::state::off%]",
"on": "[%key:common::state::on%]",
"power_off": "[%key:common::state::off%]",
"power_on": "[%key:common::state::on%]"
}

View file

@ -1,5 +1,10 @@
{
"state": {
"tuya__led_type": {
"halogen": "Halogen",
"incandescent": "Incandescent",
"led": "LED"
},
"tuya__light_mode": {
"none": "Off",
"pos": "Indicate switch location",
@ -7,6 +12,9 @@
},
"tuya__relay_status": {
"last": "Remember last state",
"memory": "Remember last state",
"off": "Off",
"on": "On",
"power_off": "Off",
"power_on": "On"
}