From: Marcel van der Veldt Date: Thu, 27 Mar 2025 20:27:10 +0000 (+0100) Subject: Fix: ignore invalid group members in hass player attributes X-Git-Url: https://git.kitaultman.com/?a=commitdiff_plain;h=ca80eca247631749a010acff77f15148d3253214;p=music-assistant-server.git Fix: ignore invalid group members in hass player attributes --- diff --git a/music_assistant/providers/hass_players/__init__.py b/music_assistant/providers/hass_players/__init__.py index a887eba9..0c9e4c8d 100644 --- a/music_assistant/providers/hass_players/__init__.py +++ b/music_assistant/providers/hass_players/__init__.py @@ -577,12 +577,25 @@ class HomeAssistantPlayers(PlayerProvider): if key == "media_content_id": player.current_item_id = value if key == "group_members": - if value and value[0] == player.player_id: - player.group_childs.set(value) + group_members: list[str] = ( + [ + # ignore integrations that incorrectly set the group members attribute + # (e.g. linkplay) + x + for x in value + if x.startswith("media_player.") + ] + if value + else [] + ) + if group_members and group_members[0] == player.player_id: + # first in the list is the group leader + player.group_childs.set(group_members) player.synced_to = None - elif value and value[0] != player.player_id: + elif group_members and group_members[0] != player.player_id: + # this player is not the group leader player.group_childs.clear() - player.synced_to = value[0] + player.synced_to = group_members[0] else: player.group_childs.clear() player.synced_to = None