From 775a81829bd87560a874ed9e57c6f08ffd49bff0 Mon Sep 17 00:00:00 2001 From: Joost Lekkerkerker Date: Wed, 26 Feb 2025 16:49:00 +0100 Subject: [PATCH] Add translatable states to SmartThings media playback (#139354) Add translatable states to media playback --- .../components/smartthings/sensor.py | 14 ++++ .../smartthings/snapshots/test_sensor.ambr | 66 +++++++++++++++++-- 2 files changed, 74 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/smartthings/sensor.py b/homeassistant/components/smartthings/sensor.py index b77f3245040..0e4e4a11983 100644 --- a/homeassistant/components/smartthings/sensor.py +++ b/homeassistant/components/smartthings/sensor.py @@ -49,6 +49,10 @@ JOB_STATE_MAP = { "unknown": None, } +MEDIA_PLAYBACK_STATE_MAP = { + "fast forwarding": "fast_forwarding", +} + def power_attributes(status: dict[str, Any]) -> dict[str, Any]: """Return the power attributes.""" @@ -404,6 +408,16 @@ CAPABILITY_TO_SENSORS: dict[ SmartThingsSensorEntityDescription( key=Attribute.PLAYBACK_STATUS, translation_key="media_playback_status", + options=[ + "paused", + "playing", + "stopped", + "fast_forwarding", + "rewinding", + "buffering", + ], + device_class=SensorDeviceClass.ENUM, + value_fn=lambda value: MEDIA_PLAYBACK_STATE_MAP.get(value, value), ) ] }, diff --git a/tests/components/smartthings/snapshots/test_sensor.ambr b/tests/components/smartthings/snapshots/test_sensor.ambr index 6046b4381b5..84575008c7a 100644 --- a/tests/components/smartthings/snapshots/test_sensor.ambr +++ b/tests/components/smartthings/snapshots/test_sensor.ambr @@ -4293,7 +4293,16 @@ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, + 'capabilities': dict({ + 'options': list([ + 'paused', + 'playing', + 'stopped', + 'fast_forwarding', + 'rewinding', + 'buffering', + ]), + }), 'config_entry_id': , 'config_subentry_id': , 'device_class': None, @@ -4311,7 +4320,7 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, 'original_name': 'Media playback status', 'platform': 'smartthings', @@ -4325,7 +4334,16 @@ # name: test_all_entities[sonos_player][sensor.elliots_rum_media_playback_status-state] StateSnapshot({ 'attributes': ReadOnlyDict({ + 'device_class': 'enum', 'friendly_name': 'Elliots Rum Media playback status', + 'options': list([ + 'paused', + 'playing', + 'stopped', + 'fast_forwarding', + 'rewinding', + 'buffering', + ]), }), 'context': , 'entity_id': 'sensor.elliots_rum_media_playback_status', @@ -4388,7 +4406,16 @@ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, + 'capabilities': dict({ + 'options': list([ + 'paused', + 'playing', + 'stopped', + 'fast_forwarding', + 'rewinding', + 'buffering', + ]), + }), 'config_entry_id': , 'config_subentry_id': , 'device_class': None, @@ -4406,7 +4433,7 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, 'original_name': 'Media playback status', 'platform': 'smartthings', @@ -4420,7 +4447,16 @@ # name: test_all_entities[vd_network_audio_002s][sensor.soundbar_living_media_playback_status-state] StateSnapshot({ 'attributes': ReadOnlyDict({ + 'device_class': 'enum', 'friendly_name': 'Soundbar Living Media playback status', + 'options': list([ + 'paused', + 'playing', + 'stopped', + 'fast_forwarding', + 'rewinding', + 'buffering', + ]), }), 'context': , 'entity_id': 'sensor.soundbar_living_media_playback_status', @@ -4544,7 +4580,16 @@ 'aliases': set({ }), 'area_id': None, - 'capabilities': None, + 'capabilities': dict({ + 'options': list([ + 'paused', + 'playing', + 'stopped', + 'fast_forwarding', + 'rewinding', + 'buffering', + ]), + }), 'config_entry_id': , 'config_subentry_id': , 'device_class': None, @@ -4562,7 +4607,7 @@ 'name': None, 'options': dict({ }), - 'original_device_class': None, + 'original_device_class': , 'original_icon': None, 'original_name': 'Media playback status', 'platform': 'smartthings', @@ -4576,7 +4621,16 @@ # name: test_all_entities[vd_stv_2017_k][sensor.tv_samsung_8_series_49_media_playback_status-state] StateSnapshot({ 'attributes': ReadOnlyDict({ + 'device_class': 'enum', 'friendly_name': '[TV] Samsung 8 Series (49) Media playback status', + 'options': list([ + 'paused', + 'playing', + 'stopped', + 'fast_forwarding', + 'rewinding', + 'buffering', + ]), }), 'context': , 'entity_id': 'sensor.tv_samsung_8_series_49_media_playback_status',