just use pip within path
authorMarcel van der Veldt <m.vanderveldt@outlook.com>
Mon, 25 Mar 2024 22:35:37 +0000 (23:35 +0100)
committerMarcel van der Veldt <m.vanderveldt@outlook.com>
Mon, 25 Mar 2024 22:35:37 +0000 (23:35 +0100)
music_assistant/server/controllers/players.py
music_assistant/server/helpers/util.py

index 28e33a78033a96ee5efb923440b18d9d1c4e172a..cd3f83eacf9850a69870864255e64b8ecab2682e 100644 (file)
@@ -38,6 +38,7 @@ from music_assistant.constants import (
     CONF_PLAYERS,
     ROOT_LOGGER_NAME,
     SYNCGROUP_PREFIX,
+    UGP_PREFIX,
 )
 from music_assistant.server.helpers.api import api_command
 from music_assistant.server.models.core_controller import CoreController
@@ -527,11 +528,17 @@ class PlayerController(CoreController):
 
     @api_command("players/cmd/group_power")
     async def cmd_group_power(self, player_id: str, power: bool) -> None:
-        """Handle power command for a PlayerGroup."""
+        """Handle power command for a PlayerGroup/SyncGroup."""
         group_player = self.get(player_id, True)
 
         if group_player.powered == power:
             return  # nothing to do
+
+        if group_player.type == PlayerType.GROUP and not player_id.startswith(UGP_PREFIX):
+            # this is a native group player (and not UGP), redirect
+            await self.cmd_power(player_id, power)
+            return
+
         # make sure to update the group power state
         group_player.powered = power
 
index c59219c7bd79184282832ec5ad48d1124a436df1..fa1c0163a7fd85ceb841b3f4390f2d78bf62bd8b 100644 (file)
@@ -33,7 +33,7 @@ HA_WHEELS = "https://wheels.home-assistant.io/musllinux/"
 async def install_package(package: str) -> None:
     """Install package with pip, raise when install failed."""
     LOGGER.debug("Installing python package %s", package)
-    args = ["python3", "-m", "pip", "install", "--find-links", HA_WHEELS, package]
+    args = ["pip", "install", "--find-links", HA_WHEELS, package]
     return_code, output = await check_output(args)
 
     if return_code != 0: