Add Sunbeam Dual Zone Heated Bedding to Tuya integration (#135405)

This commit is contained in:
Chuck Deal 2025-05-26 14:58:11 -04:00 committed by GitHub
parent e2a916ff9d
commit c4485c1814
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 81 additions and 0 deletions

View File

@ -218,6 +218,8 @@ class DPCode(StrEnum):
LED_TYPE_2 = "led_type_2"
LED_TYPE_3 = "led_type_3"
LEVEL = "level"
LEVEL_1 = "level_1"
LEVEL_2 = "level_2"
LEVEL_CURRENT = "level_current"
LIGHT = "light" # Light
LIGHT_MODE = "light_mode"
@ -256,6 +258,9 @@ class DPCode(StrEnum):
POWDER_SET = "powder_set" # Powder
POWER = "power"
POWER_GO = "power_go"
PREHEAT = "preheat"
PREHEAT_1 = "preheat_1"
PREHEAT_2 = "preheat_2"
POWER_TOTAL = "power_total"
PRESENCE_STATE = "presence_state"
PRESSURE_STATE = "pressure_state"

View File

@ -316,6 +316,28 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = {
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`)

View File

@ -462,6 +462,20 @@
"144h": "144h",
"168h": "168h"
}
},
"blanket_level": {
"state": {
"level_1": "Low",
"level_2": "Level 2",
"level_3": "Level 3",
"level_4": "Level 4",
"level_5": "Level 5",
"level_6": "Level 6",
"level_7": "Level 7",
"level_8": "Level 8",
"level_9": "Level 9",
"level_10": "High"
}
}
},
"sensor": {

View File

@ -729,6 +729,46 @@ SWITCHES: dict[str, tuple[SwitchEntityDescription, ...]] = {
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`)