From b5b20903d4a60cf69d9bc715c4f963d09ad6c781 Mon Sep 17 00:00:00 2001 From: Marvin Schenkel Date: Tue, 10 Feb 2026 19:10:43 +0100 Subject: [PATCH] Fix DLNA players not reconnecting (#3132) * Fix DLNA players not reconnecting * Change to public method for availability --- music_assistant/providers/dlna/player.py | 4 ++++ music_assistant/providers/dlna/provider.py | 9 +++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/music_assistant/providers/dlna/player.py b/music_assistant/providers/dlna/player.py index 69948c37..a2966503 100644 --- a/music_assistant/providers/dlna/player.py +++ b/music_assistant/providers/dlna/player.py @@ -86,6 +86,10 @@ class DLNAPlayer(Player): self.last_seen = time.time() self.last_command = time.time() + def set_available(self, available: bool) -> None: + """Set the availability of the player.""" + self._attr_available = available + async def _device_connect(self) -> None: """Connect DLNA/DMR Device.""" self.logger.debug("Connecting to device at %s", self.description_url) diff --git a/music_assistant/providers/dlna/provider.py b/music_assistant/providers/dlna/provider.py index 752f7686..4216fc6c 100644 --- a/music_assistant/providers/dlna/provider.py +++ b/music_assistant/providers/dlna/provider.py @@ -103,11 +103,11 @@ class DLNAPlayerProvider(PlayerProvider): finally: self._discovery_running = False - def reschedule() -> None: - self.mass.create_task(self.discover_players(use_multicast=not use_multicast)) + def reschedule() -> None: + self.mass.create_task(self.discover_players(use_multicast=not use_multicast)) - # reschedule self once finished - self.mass.loop.call_later(300, reschedule) + # reschedule self once finished + self.mass.loop.call_later(300, reschedule) async def _device_disconnect(self, dlna_player: DLNAPlayer) -> None: """ @@ -125,6 +125,7 @@ class DLNAPlayerProvider(PlayerProvider): dlna_player.device.on_event = None old_device = dlna_player.device dlna_player.device = None + dlna_player.set_available(False) await old_device.async_unsubscribe_services() async def _device_discovered(self, udn: str, description_url: str) -> None: -- 2.34.1