mirror of
https://github.com/home-assistant/core.git
synced 2025-07-25 22:27:07 +00:00
Refresh Sonos source list on changes (#15605)
This commit is contained in:
parent
1325682d82
commit
fddfb9e412
@ -447,11 +447,15 @@ class SonosDevice(MediaPlayerDevice):
|
|||||||
|
|
||||||
self.update_volume()
|
self.update_volume()
|
||||||
|
|
||||||
self._favorites = []
|
self._set_favorites()
|
||||||
|
|
||||||
|
def _set_favorites(self):
|
||||||
|
"""Set available favorites."""
|
||||||
# SoCo 0.14 raises a generic Exception on invalid xml in favorites.
|
# SoCo 0.14 raises a generic Exception on invalid xml in favorites.
|
||||||
# Filter those out now so our list is safe to use.
|
# Filter those out now so our list is safe to use.
|
||||||
# pylint: disable=broad-except
|
# pylint: disable=broad-except
|
||||||
try:
|
try:
|
||||||
|
self._favorites = []
|
||||||
for fav in self.soco.music_library.get_sonos_favorites():
|
for fav in self.soco.music_library.get_sonos_favorites():
|
||||||
try:
|
try:
|
||||||
if fav.reference.get_uri():
|
if fav.reference.get_uri():
|
||||||
@ -493,6 +497,9 @@ class SonosDevice(MediaPlayerDevice):
|
|||||||
queue = _ProcessSonosEventQueue(self.update_groups)
|
queue = _ProcessSonosEventQueue(self.update_groups)
|
||||||
player.zoneGroupTopology.subscribe(auto_renew=True, event_queue=queue)
|
player.zoneGroupTopology.subscribe(auto_renew=True, event_queue=queue)
|
||||||
|
|
||||||
|
queue = _ProcessSonosEventQueue(self.update_content)
|
||||||
|
player.contentDirectory.subscribe(auto_renew=True, event_queue=queue)
|
||||||
|
|
||||||
def update(self):
|
def update(self):
|
||||||
"""Retrieve latest state."""
|
"""Retrieve latest state."""
|
||||||
available = self._check_available()
|
available = self._check_available()
|
||||||
@ -735,6 +742,11 @@ class SonosDevice(MediaPlayerDevice):
|
|||||||
slave._sonos_group = sonos_group
|
slave._sonos_group = sonos_group
|
||||||
slave.schedule_update_ha_state()
|
slave.schedule_update_ha_state()
|
||||||
|
|
||||||
|
def update_content(self, event=None):
|
||||||
|
"""Update information about available content."""
|
||||||
|
self._set_favorites()
|
||||||
|
self.schedule_update_ha_state()
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def volume_level(self):
|
def volume_level(self):
|
||||||
"""Volume level of the media player (0..1)."""
|
"""Volume level of the media player (0..1)."""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user