ensure group player always uses its configured group members
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Fri, 18 Oct 2024 00:29:28 +0000 (02:29 +0200)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Fri, 18 Oct 2024 00:29:28 +0000 (02:29 +0200)
music_assistant/server/providers/player_group/__init__.py

index c02b70cb08da0c7e302e1cd8aaaae94a52aa493e..faee264d9007830ce6d173d30d3478333e0490d8 100644 (file)
@@ -324,6 +324,19 @@ class PlayerGroupProvider(PlayerProvider):
         if not powered and group_player.state in (PlayerState.PLAYING, PlayerState.PAUSED):
             await self.cmd_stop(group_player.player_id)
 
+        # always (re)fetch the configured group members at power on
+        if not group_player.powered:
+            group_member_ids = self.mass.config.get_raw_player_config_value(
+                player_id, CONF_GROUP_MEMBERS
+            )
+            group_player.group_childs = {
+                x
+                for x in group_member_ids
+                if (child_player := self.mass.players.get(x))
+                and child_player.available
+                and child_player.enabled
+            }
+
         async with TaskManager(self.mass) as tg:
             if powered:
                 # handle TURN_ON of the group player by turning on all members