From 81a6178931093549ae37e08e3836756f0235d4d1 Mon Sep 17 00:00:00 2001 From: John Mihalic Date: Wed, 31 Jan 2018 09:32:08 -0500 Subject: [PATCH] Squeezebox Fix duplicate server from discovery (#12063) * Fix duplicate server from discovery * Use hass.data instead of global * Simplify --- homeassistant/components/media_player/squeezebox.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/homeassistant/components/media_player/squeezebox.py b/homeassistant/components/media_player/squeezebox.py index cc61610b369..1fd61b3ead1 100644 --- a/homeassistant/components/media_player/squeezebox.py +++ b/homeassistant/components/media_player/squeezebox.py @@ -47,6 +47,8 @@ SERVICE_CALL_METHOD = 'squeezebox_call_method' DATA_SQUEEZEBOX = 'squeezebox' +KNOWN_SERVERS = 'squeezebox_known_servers' + ATTR_PARAMETERS = 'parameters' SQUEEZEBOX_CALL_METHOD_SCHEMA = MEDIA_PLAYER_SCHEMA.extend({ @@ -67,6 +69,10 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): """Set up the squeezebox platform.""" import socket + known_servers = hass.data.get(KNOWN_SERVERS) + if known_servers is None: + hass.data[KNOWN_SERVERS] = known_servers = set() + if DATA_SQUEEZEBOX not in hass.data: hass.data[DATA_SQUEEZEBOX] = [] @@ -92,6 +98,10 @@ def async_setup_platform(hass, config, async_add_devices, discovery_info=None): "Could not communicate with %s:%d: %s", host, port, error) return False + if ipaddr in known_servers: + return + + known_servers.add(ipaddr) _LOGGER.debug("Creating LMS object for %s", ipaddr) lms = LogitechMediaServer(hass, host, port, username, password)