From c5d552dc4ae8ec309c8de7bd50ea1ae0df977595 Mon Sep 17 00:00:00 2001 From: epenet <6771947+epenet@users.noreply.github.com> Date: Thu, 11 Sep 2025 19:45:21 +0200 Subject: [PATCH] Use translation_key in Tuya dr category (electric blanket) (#152099) --- homeassistant/components/tuya/select.py | 9 +++--- homeassistant/components/tuya/strings.json | 16 +++++++++++ .../tuya/snapshots/test_select.ambr | 28 +++++++++---------- 3 files changed, 34 insertions(+), 19 deletions(-) diff --git a/homeassistant/components/tuya/select.py b/homeassistant/components/tuya/select.py index 1452a15b688..8b62ed36a52 100644 --- a/homeassistant/components/tuya/select.py +++ b/homeassistant/components/tuya/select.py @@ -78,21 +78,20 @@ SELECTS: dict[str, tuple[SelectEntityDescription, ...]] = { "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", + translation_key="indexed_blanket_level", + translation_placeholders={"index": "1"}, ), SelectEntityDescription( key=DPCode.LEVEL_2, - name="Side B Level", icon="mdi:thermometer-lines", - translation_key="blanket_level", + translation_key="indexed_blanket_level", + translation_placeholders={"index": "2"}, ), ), # Fan diff --git a/homeassistant/components/tuya/strings.json b/homeassistant/components/tuya/strings.json index 0d0609ba250..d5d9bdaeeed 100644 --- a/homeassistant/components/tuya/strings.json +++ b/homeassistant/components/tuya/strings.json @@ -489,6 +489,7 @@ } }, "blanket_level": { + "name": "Level", "state": { "level_1": "[%key:common::state::low%]", "level_2": "Level 2", @@ -502,6 +503,21 @@ "level_10": "[%key:common::state::high%]" } }, + "indexed_blanket_level": { + "name": "Level {index}", + "state": { + "level_1": "[%key:common::state::low%]", + "level_2": "[%key:component::tuya::entity::select::blanket_level::state::level_2%]", + "level_3": "[%key:component::tuya::entity::select::blanket_level::state::level_3%]", + "level_4": "[%key:component::tuya::entity::select::blanket_level::state::level_4%]", + "level_5": "[%key:component::tuya::entity::select::blanket_level::state::level_5%]", + "level_6": "[%key:component::tuya::entity::select::blanket_level::state::level_6%]", + "level_7": "[%key:component::tuya::entity::select::blanket_level::state::level_7%]", + "level_8": "[%key:component::tuya::entity::select::blanket_level::state::level_8%]", + "level_9": "[%key:component::tuya::entity::select::blanket_level::state::level_9%]", + "level_10": "[%key:common::state::high%]" + } + }, "odor_elimination_mode": { "name": "Odor elimination mode", "state": { diff --git a/tests/components/tuya/snapshots/test_select.ambr b/tests/components/tuya/snapshots/test_select.ambr index 431dbd153d8..1a5061f3b1a 100644 --- a/tests/components/tuya/snapshots/test_select.ambr +++ b/tests/components/tuya/snapshots/test_select.ambr @@ -4333,7 +4333,7 @@ 'state': 'level_5', }) # --- -# name: test_platform_setup_and_discovery[select.sunbeam_bedding_side_a_level-entry] +# name: test_platform_setup_and_discovery[select.sunbeam_bedding_level_1-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -4359,7 +4359,7 @@ 'disabled_by': None, 'domain': 'select', 'entity_category': None, - 'entity_id': 'select.sunbeam_bedding_side_a_level', + 'entity_id': 'select.sunbeam_bedding_level_1', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -4371,20 +4371,20 @@ }), 'original_device_class': None, 'original_icon': 'mdi:thermometer-lines', - 'original_name': 'Side A Level', + 'original_name': 'Level 1', 'platform': 'tuya', 'previous_unique_id': None, 'suggested_object_id': None, 'supported_features': 0, - 'translation_key': 'blanket_level', + 'translation_key': 'indexed_blanket_level', 'unique_id': 'tuya.fasvixqysw1lxvjprdlevel_1', 'unit_of_measurement': None, }) # --- -# name: test_platform_setup_and_discovery[select.sunbeam_bedding_side_a_level-state] +# name: test_platform_setup_and_discovery[select.sunbeam_bedding_level_1-state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Sunbeam Bedding Side A Level', + 'friendly_name': 'Sunbeam Bedding Level 1', 'icon': 'mdi:thermometer-lines', 'options': list([ 'level_1', @@ -4400,14 +4400,14 @@ ]), }), 'context': , - 'entity_id': 'select.sunbeam_bedding_side_a_level', + 'entity_id': 'select.sunbeam_bedding_level_1', 'last_changed': , 'last_reported': , 'last_updated': , 'state': 'level_5', }) # --- -# name: test_platform_setup_and_discovery[select.sunbeam_bedding_side_b_level-entry] +# name: test_platform_setup_and_discovery[select.sunbeam_bedding_level_2-entry] EntityRegistryEntrySnapshot({ 'aliases': set({ }), @@ -4433,7 +4433,7 @@ 'disabled_by': None, 'domain': 'select', 'entity_category': None, - 'entity_id': 'select.sunbeam_bedding_side_b_level', + 'entity_id': 'select.sunbeam_bedding_level_2', 'has_entity_name': True, 'hidden_by': None, 'icon': None, @@ -4445,20 +4445,20 @@ }), 'original_device_class': None, 'original_icon': 'mdi:thermometer-lines', - 'original_name': 'Side B Level', + 'original_name': 'Level 2', 'platform': 'tuya', 'previous_unique_id': None, 'suggested_object_id': None, 'supported_features': 0, - 'translation_key': 'blanket_level', + 'translation_key': 'indexed_blanket_level', 'unique_id': 'tuya.fasvixqysw1lxvjprdlevel_2', 'unit_of_measurement': None, }) # --- -# name: test_platform_setup_and_discovery[select.sunbeam_bedding_side_b_level-state] +# name: test_platform_setup_and_discovery[select.sunbeam_bedding_level_2-state] StateSnapshot({ 'attributes': ReadOnlyDict({ - 'friendly_name': 'Sunbeam Bedding Side B Level', + 'friendly_name': 'Sunbeam Bedding Level 2', 'icon': 'mdi:thermometer-lines', 'options': list([ 'level_1', @@ -4474,7 +4474,7 @@ ]), }), 'context': , - 'entity_id': 'select.sunbeam_bedding_side_b_level', + 'entity_id': 'select.sunbeam_bedding_level_2', 'last_changed': , 'last_reported': , 'last_updated': ,