diff --git a/homeassistant/components/smartthings/icons.json b/homeassistant/components/smartthings/icons.json index 96e63e6f9668..40939b6750e3 100644 --- a/homeassistant/components/smartthings/icons.json +++ b/homeassistant/components/smartthings/icons.json @@ -105,6 +105,9 @@ "robot_cleaner_driving_mode": { "default": "mdi:car-cog" }, + "robot_cleaner_sound_mode": { + "default": "mdi:bell-cog" + }, "robot_cleaner_water_spray_level": { "default": "mdi:spray-bottle" }, diff --git a/homeassistant/components/smartthings/select.py b/homeassistant/components/smartthings/select.py index 1648de5b2ce8..b91cd641080f 100644 --- a/homeassistant/components/smartthings/select.py +++ b/homeassistant/components/smartthings/select.py @@ -26,6 +26,12 @@ LAMP_TO_HA = { "off": "off", } +SOUND_MODE_TO_HA = { + "voice": "voice", + "beep": "tone", + "mute": "mute", +} + DRIVING_MODE_TO_HA = { "areaThenWalls": "area_then_walls", "wallFirst": "walls_first", @@ -244,6 +250,16 @@ CAPABILITIES_TO_SELECT: dict[Capability | str, SmartThingsSelectDescription] = { entity_category=EntityCategory.CONFIG, value_is_integer=True, ), + Capability.SAMSUNG_CE_ROBOT_CLEANER_SYSTEM_SOUND_MODE: SmartThingsSelectDescription( + key=Capability.SAMSUNG_CE_ROBOT_CLEANER_SYSTEM_SOUND_MODE, + translation_key="robot_cleaner_sound_mode", + options_attribute=Attribute.SUPPORTED_SOUND_MODES, + status_attribute=Attribute.SOUND_MODE, + command=Command.SET_SOUND_MODE, + options_map=SOUND_MODE_TO_HA, + entity_category=EntityCategory.CONFIG, + entity_registry_enabled_default=False, + ), Capability.SAMSUNG_CE_ROBOT_CLEANER_CLEANING_TYPE: SmartThingsSelectDescription( key=Capability.SAMSUNG_CE_ROBOT_CLEANER_CLEANING_TYPE, translation_key="robot_cleaner_cleaning_type", diff --git a/homeassistant/components/smartthings/strings.json b/homeassistant/components/smartthings/strings.json index b33129051f54..b102aec1adbd 100644 --- a/homeassistant/components/smartthings/strings.json +++ b/homeassistant/components/smartthings/strings.json @@ -254,6 +254,14 @@ "walls_first": "Walls first" } }, + "robot_cleaner_sound_mode": { + "name": "Sound mode", + "state": { + "mute": "Mute", + "tone": "Tone", + "voice": "Voice" + } + }, "robot_cleaner_water_spray_level": { "name": "Water level", "state": { diff --git a/tests/components/smartthings/snapshots/test_select.ambr b/tests/components/smartthings/snapshots/test_select.ambr index 82a73de2fe5d..8826e831a207 100644 --- a/tests/components/smartthings/snapshots/test_select.ambr +++ b/tests/components/smartthings/snapshots/test_select.ambr @@ -725,6 +725,66 @@ 'state': 'medium', }) # --- +# name: test_all_entities[da_rvc_map_01011][select.robot_vacuum_sound_mode-entry] + EntityRegistryEntrySnapshot({ + 'aliases': set({ + }), + 'area_id': None, + 'capabilities': dict({ + 'options': list([ + 'mute', + 'tone', + 'voice', + ]), + }), + 'config_entry_id': , + 'config_subentry_id': , + 'device_class': None, + 'device_id': , + 'disabled_by': None, + 'domain': 'select', + 'entity_category': , + 'entity_id': 'select.robot_vacuum_sound_mode', + 'has_entity_name': True, + 'hidden_by': None, + 'icon': None, + 'id': , + 'labels': set({ + }), + 'name': None, + 'object_id_base': 'Sound mode', + 'options': dict({ + }), + 'original_device_class': None, + 'original_icon': None, + 'original_name': 'Sound mode', + 'platform': 'smartthings', + 'previous_unique_id': None, + 'suggested_object_id': None, + 'supported_features': 0, + 'translation_key': 'robot_cleaner_sound_mode', + 'unique_id': '01b28624-5907-c8bc-0325-8ad23f03a637_main_samsungce.robotCleanerSystemSoundMode_soundMode_soundMode', + 'unit_of_measurement': None, + }) +# --- +# name: test_all_entities[da_rvc_map_01011][select.robot_vacuum_sound_mode-state] + StateSnapshot({ + 'attributes': ReadOnlyDict({ + 'friendly_name': 'Robot Vacuum Sound mode', + 'options': list([ + 'mute', + 'tone', + 'voice', + ]), + }), + 'context': , + 'entity_id': 'select.robot_vacuum_sound_mode', + 'last_changed': , + 'last_reported': , + 'last_updated': , + 'state': 'tone', + }) +# --- # name: test_all_entities[da_rvc_map_01011][select.robot_vacuum_water_level-entry] EntityRegistryEntrySnapshot({ 'aliases': list([