From 8ea16daae4c852a4307f406e38b2684f16535218 Mon Sep 17 00:00:00 2001 From: OzGav Date: Tue, 4 Nov 2025 23:07:15 +1000 Subject: [PATCH] Correctly map repeat mode in Music Assistant (#155777) --- homeassistant/components/music_assistant/media_player.py | 9 ++++++++- .../music_assistant/fixtures/player_queues.json | 2 +- .../music_assistant/snapshots/test_media_player.ambr | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/music_assistant/media_player.py b/homeassistant/components/music_assistant/media_player.py index c929dfd4d2f..0eaea6b4e91 100644 --- a/homeassistant/components/music_assistant/media_player.py +++ b/homeassistant/components/music_assistant/media_player.py @@ -115,6 +115,13 @@ QUEUE_OPTION_MAP = { MediaPlayerEnqueue.REPLACE: QueueOption.REPLACE, } +REPEAT_MODE_MAPPING_TO_HA = { + MassRepeatMode.OFF: RepeatMode.OFF, + MassRepeatMode.ONE: RepeatMode.ONE, + MassRepeatMode.ALL: RepeatMode.ALL, + # UNKNOWN is intentionally not mapped - will return None +} + SERVICE_PLAY_MEDIA_ADVANCED = "play_media" SERVICE_PLAY_ANNOUNCEMENT = "play_announcement" SERVICE_TRANSFER_QUEUE = "transfer_queue" @@ -657,7 +664,7 @@ class MusicAssistantPlayer(MusicAssistantEntity, MediaPlayerEntity): # player has an MA queue active (either its own queue or some group queue) self._attr_app_id = DOMAIN self._attr_shuffle = queue.shuffle_enabled - self._attr_repeat = queue.repeat_mode.value + self._attr_repeat = REPEAT_MODE_MAPPING_TO_HA.get(queue.repeat_mode) if not (cur_item := queue.current_item): # queue is empty return diff --git a/tests/components/music_assistant/fixtures/player_queues.json b/tests/components/music_assistant/fixtures/player_queues.json index 5251560365c..ccc4e245535 100644 --- a/tests/components/music_assistant/fixtures/player_queues.json +++ b/tests/components/music_assistant/fixtures/player_queues.json @@ -134,7 +134,7 @@ "links": null, "chapters": null, "performers": null, - "preview": "https://p.scdn.co/mp3-preview/98deb9c370bbaa350be058b3470fbe3bc1e28d9d?cid=2eb96f9b37494be1824999d58028a305", + "preview": "https://p.scdn.co/mp3-preview/98deb9c370bbaa350be058b3470fbe3bc1e28d9d", "popularity": 77, "last_refresh": null }, diff --git a/tests/components/music_assistant/snapshots/test_media_player.ambr b/tests/components/music_assistant/snapshots/test_media_player.ambr index 6307f055b38..8547fd1c161 100644 --- a/tests/components/music_assistant/snapshots/test_media_player.ambr +++ b/tests/components/music_assistant/snapshots/test_media_player.ambr @@ -126,7 +126,7 @@ 'media_position': 232, 'media_position_updated_at': datetime.datetime(2024, 10, 30, 18, 31, 49, 565951, tzinfo=datetime.timezone.utc), 'media_title': 'November Rain', - 'repeat': 'all', + 'repeat': , 'shuffle': True, 'supported_features': , 'volume_level': 0.06,