From c80d6810b3e6cac7730b1d2a9cd8c21e010d1f67 Mon Sep 17 00:00:00 2001 From: jjlawren Date: Tue, 1 Feb 2022 22:10:53 -0600 Subject: [PATCH] Fix Sonos diagnostics with offline device (#65393) Co-authored-by: J. Nick Koston --- homeassistant/components/sonos/diagnostics.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/sonos/diagnostics.py b/homeassistant/components/sonos/diagnostics.py index 707449e4002..421a0f7ed6a 100644 --- a/homeassistant/components/sonos/diagnostics.py +++ b/homeassistant/components/sonos/diagnostics.py @@ -91,9 +91,13 @@ async def async_generate_media_info( payload[attrib] = getattr(speaker.media, attrib) def poll_current_track_info(): - return speaker.soco.avTransport.GetPositionInfo( - [("InstanceID", 0), ("Channel", "Master")] - ) + try: + return speaker.soco.avTransport.GetPositionInfo( + [("InstanceID", 0), ("Channel", "Master")], + timeout=3, + ) + except OSError as ex: + return f"Error retrieving: {ex}" payload["current_track_poll"] = await hass.async_add_executor_job( poll_current_track_info