player_id, player.provider, player.name, player.enabled_by_default
)
# mark player as unavailable during the add process
- if not player.available:
- # this shouldn't happen, but let's guard it anyways
- raise RuntimeError(f"Attempt to register an unavailable player: {player.name}")
+ player_available = player.available
player.available = False
player.enabled = self.mass.config.get(f"{CONF_PLAYERS}/{player_id}/enabled", True)
player_id,
player.display_name,
)
- player.available = True
+ player.available = player_available
self.mass.signal_event(EventType.PLAYER_ADDED, object_id=player.player_id, data=player)
# always call update to fix special attributes like display name, group volume etc.
self.update(player.player_id)
if "multizone" in status and "groups" in status["multizone"]:
for group in status["multizone"]["groups"]:
+ if "multichannel_group" not in group:
+ continue
if group["multichannel_group"] and (udn := group.get("uuid")):
uuid = UUID(udn.replace("-", ""))
multichannel_groups.add(uuid)
- except (urllib.error.HTTPError, urllib.error.URLError, OSError, ValueError):
+ except (urllib.error.HTTPError, urllib.error.URLError, OSError, KeyError, ValueError):
pass
return (dynamic_groups, multichannel_groups)