Squeezebox Fix duplicate server from discovery (#12063)

* Fix duplicate server from discovery

* Use hass.data instead of global

* Simplify
pull/12092/head
John Mihalic 2018-01-31 09:32:08 -05:00 committed by Pascal Vizeli
parent e9508405bc
commit 81a6178931
1 changed files with 10 additions and 0 deletions

View File

@ -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)