From b7ba044f2435cfff1d0e574cf133435c24a5f34b Mon Sep 17 00:00:00 2001 From: Tom Matheussen <13683094+Tommatheussen@users.noreply.github.com> Date: Sat, 21 Feb 2026 12:04:03 +0100 Subject: [PATCH] Fix HEOS source switching back to Local Music after starting stream (#3206) --- music_assistant/providers/heos/player.py | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/music_assistant/providers/heos/player.py b/music_assistant/providers/heos/player.py index b6f7163b..abca4c10 100644 --- a/music_assistant/providers/heos/player.py +++ b/music_assistant/providers/heos/player.py @@ -64,7 +64,7 @@ class HeosPlayer(Player): async def setup(self) -> None: """Set up the player.""" self.set_device_info() - self.set_dynamic_attributes() + self.set_dynamic_attributes(update_media=True) await self.mass.players.register_or_update(self) @@ -144,6 +144,12 @@ class HeosPlayer(Player): case const.EVENT_PLAYER_VOLUME_CHANGED: self._update_player_volume() + case const.EVENT_PLAYER_PLAYBACK_ERROR: + self.logger.error( + "[%s] Playback error: %s", self._device.name, self._device.playback_error + ) + self.set_dynamic_attributes() + case _: # Update everything on other events self.set_dynamic_attributes() @@ -215,11 +221,14 @@ class HeosPlayer(Player): else None ) - def set_dynamic_attributes(self) -> None: + def set_dynamic_attributes(self, update_media: bool = False) -> None: """Update all player dynamic attributes.""" self._update_player_volume() self._update_player_state() - self._update_player_current_media() + + if update_media: + self._update_player_current_media() + self._update_player_playing_progress() async def volume_set(self, volume_level: int) -> None: -- 2.34.1