diff --git a/homeassistant/components/linkplay/media_player.py b/homeassistant/components/linkplay/media_player.py index 2986db76520..b27616f1e09 100644 --- a/homeassistant/components/linkplay/media_player.py +++ b/homeassistant/components/linkplay/media_player.py @@ -125,6 +125,8 @@ SERVICE_PLAY_PRESET_SCHEMA = cv.make_entity_service_schema( } ) +RETRY_POLL_MAXIMUM = 3 + async def async_setup_entry( hass: HomeAssistant, @@ -156,6 +158,7 @@ class LinkPlayMediaPlayerEntity(LinkPlayBaseEntity, MediaPlayerEntity): super().__init__(bridge) self._attr_unique_id = bridge.device.uuid + self._retry_count = 0 self._attr_source_list = [ SOURCE_MAP[playing_mode] for playing_mode in bridge.device.playmode_support @@ -166,9 +169,12 @@ class LinkPlayMediaPlayerEntity(LinkPlayBaseEntity, MediaPlayerEntity): """Update the state of the media player.""" try: await self._bridge.player.update_status() + self._retry_count = 0 self._update_properties() except LinkPlayRequestException: - self._attr_available = False + self._retry_count += 1 + if self._retry_count >= RETRY_POLL_MAXIMUM: + self._attr_available = False @exception_wrap async def async_select_source(self, source: str) -> None: