From 206547a5d8abbcf7bc0463d312cc9f68cdcfce07 Mon Sep 17 00:00:00 2001 From: jjlawren Date: Sun, 10 Nov 2019 04:35:12 -0600 Subject: [PATCH] Skip updating idle Plex clients (#28664) * Skip updating idle clients * Different operators --- homeassistant/components/plex/server.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/plex/server.py b/homeassistant/components/plex/server.py index 5df55589bb4..69838fbf27f 100644 --- a/homeassistant/components/plex/server.py +++ b/homeassistant/components/plex/server.py @@ -44,6 +44,7 @@ class PlexServer: self._hass = hass self._plex_server = None self._known_clients = set() + self._known_idle = set() self._url = server_config.get(CONF_URL) self._token = server_config.get(CONF_TOKEN) self._server_name = server_config.get(CONF_SERVER) @@ -123,6 +124,7 @@ class PlexServer: return for device in devices: + self._known_idle.discard(device.machineIdentifier) available_clients[device.machineIdentifier] = {"device": device} if device.machineIdentifier not in self._known_clients: @@ -131,6 +133,7 @@ class PlexServer: for session in sessions: for player in session.players: + self._known_idle.discard(player.machineIdentifier) available_clients.setdefault( player.machineIdentifier, {"device": player} ) @@ -151,9 +154,12 @@ class PlexServer: self._known_clients.update(new_clients) - idle_clients = self._known_clients.difference(available_clients) + idle_clients = (self._known_clients - self._known_idle).difference( + available_clients + ) for client_id in idle_clients: self.refresh_entity(client_id, None, None) + self._known_idle.add(client_id) if new_entity_configs: dispatcher_send(