Skip to content

Commit 442b6e9

Browse files
authored
Add initial support for Tuya sjz category (electric desk) (home-assistant#152036)
1 parent 531b671 commit 442b6e9

File tree

6 files changed

+135
-1
lines changed

6 files changed

+135
-1
lines changed

homeassistant/components/tuya/select.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,14 @@
248248
entity_category=EntityCategory.CONFIG,
249249
),
250250
),
251+
# Electric desk
252+
"sjz": (
253+
SelectEntityDescription(
254+
key=DPCode.LEVEL,
255+
translation_key="desk_level",
256+
entity_category=EntityCategory.CONFIG,
257+
),
258+
),
251259
# Smart Camera
252260
# https://developer.tuya.com/en/docs/iot/categorysp?id=Kaiuz35leyo12
253261
"sp": (

homeassistant/components/tuya/strings.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -509,6 +509,15 @@
509509
"interim": "Interim"
510510
}
511511
},
512+
"desk_level": {
513+
"name": "Level",
514+
"state": {
515+
"level_1": "Level 1",
516+
"level_2": "Level 2",
517+
"level_3": "Level 3",
518+
"level_4": "Level 4"
519+
}
520+
},
512521
"inverter_work_mode": {
513522
"name": "Inverter work mode",
514523
"state": {

homeassistant/components/tuya/switch.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -662,6 +662,14 @@
662662
entity_category=EntityCategory.CONFIG,
663663
),
664664
),
665+
# Electric desk
666+
"sjz": (
667+
SwitchEntityDescription(
668+
key=DPCode.CHILD_LOCK,
669+
translation_key="child_lock",
670+
entity_category=EntityCategory.CONFIG,
671+
),
672+
),
665673
# Smart Camera
666674
# https://developer.tuya.com/en/docs/iot/categorysp?id=Kaiuz35leyo12
667675
"sp": (

tests/components/tuya/snapshots/test_init.ambr

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6716,7 +6716,7 @@
67166716
'labels': set({
67176717
}),
67186718
'manufacturer': 'Tuya',
6719-
'model': 'geniodesk (unsupported)',
6719+
'model': 'geniodesk',
67206720
'model_id': 'ftbc8rp8ipksdfpv',
67216721
'name': 'mesa',
67226722
'name_by_user': None,

tests/components/tuya/snapshots/test_select.ambr

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3136,6 +3136,67 @@
31363136
'state': 'power_on',
31373137
})
31383138
# ---
3139+
# name: test_platform_setup_and_discovery[select.mesa_level-entry]
3140+
EntityRegistryEntrySnapshot({
3141+
'aliases': set({
3142+
}),
3143+
'area_id': None,
3144+
'capabilities': dict({
3145+
'options': list([
3146+
'level_1',
3147+
'level_2',
3148+
'level_3',
3149+
'level_4',
3150+
]),
3151+
}),
3152+
'config_entry_id': <ANY>,
3153+
'config_subentry_id': <ANY>,
3154+
'device_class': None,
3155+
'device_id': <ANY>,
3156+
'disabled_by': None,
3157+
'domain': 'select',
3158+
'entity_category': <EntityCategory.CONFIG: 'config'>,
3159+
'entity_id': 'select.mesa_level',
3160+
'has_entity_name': True,
3161+
'hidden_by': None,
3162+
'icon': None,
3163+
'id': <ANY>,
3164+
'labels': set({
3165+
}),
3166+
'name': None,
3167+
'options': dict({
3168+
}),
3169+
'original_device_class': None,
3170+
'original_icon': None,
3171+
'original_name': 'Level',
3172+
'platform': 'tuya',
3173+
'previous_unique_id': None,
3174+
'suggested_object_id': None,
3175+
'supported_features': 0,
3176+
'translation_key': 'desk_level',
3177+
'unique_id': 'tuya.vpfdskpi8pr8cbtfzjslevel',
3178+
'unit_of_measurement': None,
3179+
})
3180+
# ---
3181+
# name: test_platform_setup_and_discovery[select.mesa_level-state]
3182+
StateSnapshot({
3183+
'attributes': ReadOnlyDict({
3184+
'friendly_name': 'mesa Level',
3185+
'options': list([
3186+
'level_1',
3187+
'level_2',
3188+
'level_3',
3189+
'level_4',
3190+
]),
3191+
}),
3192+
'context': <ANY>,
3193+
'entity_id': 'select.mesa_level',
3194+
'last_changed': <ANY>,
3195+
'last_reported': <ANY>,
3196+
'last_updated': <ANY>,
3197+
'state': 'level_1',
3198+
})
3199+
# ---
31393200
# name: test_platform_setup_and_discovery[select.mirilla_puerta_anti_flicker-entry]
31403201
EntityRegistryEntrySnapshot({
31413202
'aliases': set({

tests/components/tuya/snapshots/test_switch.ambr

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5513,6 +5513,54 @@
55135513
'state': 'on',
55145514
})
55155515
# ---
5516+
# name: test_platform_setup_and_discovery[switch.mesa_child_lock-entry]
5517+
EntityRegistryEntrySnapshot({
5518+
'aliases': set({
5519+
}),
5520+
'area_id': None,
5521+
'capabilities': None,
5522+
'config_entry_id': <ANY>,
5523+
'config_subentry_id': <ANY>,
5524+
'device_class': None,
5525+
'device_id': <ANY>,
5526+
'disabled_by': None,
5527+
'domain': 'switch',
5528+
'entity_category': <EntityCategory.CONFIG: 'config'>,
5529+
'entity_id': 'switch.mesa_child_lock',
5530+
'has_entity_name': True,
5531+
'hidden_by': None,
5532+
'icon': None,
5533+
'id': <ANY>,
5534+
'labels': set({
5535+
}),
5536+
'name': None,
5537+
'options': dict({
5538+
}),
5539+
'original_device_class': None,
5540+
'original_icon': None,
5541+
'original_name': 'Child lock',
5542+
'platform': 'tuya',
5543+
'previous_unique_id': None,
5544+
'suggested_object_id': None,
5545+
'supported_features': 0,
5546+
'translation_key': 'child_lock',
5547+
'unique_id': 'tuya.vpfdskpi8pr8cbtfzjschild_lock',
5548+
'unit_of_measurement': None,
5549+
})
5550+
# ---
5551+
# name: test_platform_setup_and_discovery[switch.mesa_child_lock-state]
5552+
StateSnapshot({
5553+
'attributes': ReadOnlyDict({
5554+
'friendly_name': 'mesa Child lock',
5555+
}),
5556+
'context': <ANY>,
5557+
'entity_id': 'switch.mesa_child_lock',
5558+
'last_changed': <ANY>,
5559+
'last_reported': <ANY>,
5560+
'last_updated': <ANY>,
5561+
'state': 'off',
5562+
})
5563+
# ---
55165564
# name: test_platform_setup_and_discovery[switch.mesh_gateway_mute-entry]
55175565
EntityRegistryEntrySnapshot({
55185566
'aliases': set({

0 commit comments

Comments
 (0)