mirror of
https://github.com/home-assistant/core.git
synced 2025-07-25 22:27:07 +00:00
Optimize Sonos join behavior when using media_player.join
(#74174)
Optimize Sonos media_player.join service
This commit is contained in:
parent
46b4be5b41
commit
329ecc74c4
@ -763,19 +763,14 @@ class SonosMediaPlayerEntity(SonosEntity, MediaPlayerEntity):
|
|||||||
|
|
||||||
async def async_join_players(self, group_members):
|
async def async_join_players(self, group_members):
|
||||||
"""Join `group_members` as a player group with the current player."""
|
"""Join `group_members` as a player group with the current player."""
|
||||||
async with self.hass.data[DATA_SONOS].topology_condition:
|
speakers = []
|
||||||
speakers = []
|
for entity_id in group_members:
|
||||||
for entity_id in group_members:
|
if speaker := self.hass.data[DATA_SONOS].entity_id_mappings.get(entity_id):
|
||||||
if speaker := self.hass.data[DATA_SONOS].entity_id_mappings.get(
|
speakers.append(speaker)
|
||||||
entity_id
|
else:
|
||||||
):
|
raise HomeAssistantError(f"Not a known Sonos entity_id: {entity_id}")
|
||||||
speakers.append(speaker)
|
|
||||||
else:
|
|
||||||
raise HomeAssistantError(
|
|
||||||
f"Not a known Sonos entity_id: {entity_id}"
|
|
||||||
)
|
|
||||||
|
|
||||||
await self.hass.async_add_executor_job(self.speaker.join, speakers)
|
await SonosSpeaker.join_multi(self.hass, self.speaker, speakers)
|
||||||
|
|
||||||
async def async_unjoin_player(self):
|
async def async_unjoin_player(self):
|
||||||
"""Remove this player from any group.
|
"""Remove this player from any group.
|
||||||
|
@ -883,9 +883,9 @@ class SonosSpeaker:
|
|||||||
|
|
||||||
for speaker in speakers:
|
for speaker in speakers:
|
||||||
if speaker.soco.uid != self.soco.uid:
|
if speaker.soco.uid != self.soco.uid:
|
||||||
speaker.soco.join(self.soco)
|
|
||||||
speaker.coordinator = self
|
|
||||||
if speaker not in group:
|
if speaker not in group:
|
||||||
|
speaker.soco.join(self.soco)
|
||||||
|
speaker.coordinator = self
|
||||||
group.append(speaker)
|
group.append(speaker)
|
||||||
|
|
||||||
return group
|
return group
|
||||||
|
Loading…
x
Reference in New Issue
Block a user