Merge pull request #1566 from jaharkes/squeezebox-discovery

Add discovery for squeezebox (logitech media) servers.
pull/1528/merge
Paulus Schoutsen 2016-03-17 21:12:13 -07:00
commit 792954adc9
3 changed files with 19 additions and 3 deletions

View File

@ -25,6 +25,7 @@ SERVICE_CAST = 'google_cast'
SERVICE_NETGEAR = 'netgear_router'
SERVICE_SONOS = 'sonos'
SERVICE_PLEX = 'plex_mediaserver'
SERVICE_SQUEEZEBOX = 'logitech_mediaserver'
SERVICE_HANDLERS = {
SERVICE_WEMO: "wemo",
@ -33,6 +34,7 @@ SERVICE_HANDLERS = {
SERVICE_NETGEAR: 'device_tracker',
SERVICE_SONOS: 'media_player',
SERVICE_PLEX: 'media_player',
SERVICE_SQUEEZEBOX: 'media_player',
}

View File

@ -28,6 +28,7 @@ DISCOVERY_PLATFORMS = {
discovery.SERVICE_CAST: 'cast',
discovery.SERVICE_SONOS: 'sonos',
discovery.SERVICE_PLEX: 'plex',
discovery.SERVICE_SQUEEZEBOX: 'squeezebox',
}
SERVICE_PLAY_MEDIA = 'play_media'

View File

@ -22,19 +22,32 @@ SUPPORT_SQUEEZEBOX = SUPPORT_PAUSE | SUPPORT_VOLUME_SET | \
SUPPORT_VOLUME_MUTE | SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | \
SUPPORT_SEEK | SUPPORT_TURN_ON | SUPPORT_TURN_OFF
KNOWN_DEVICES = []
def setup_platform(hass, config, add_devices, discovery_info=None):
"""Setup the squeezebox platform."""
if not config.get(CONF_HOST):
if discovery_info is not None:
host = discovery_info[0]
port = 9090
else:
host = config.get(CONF_HOST)
port = int(config.get('port', 9090))
if not host:
_LOGGER.error(
"Missing required configuration items in %s: %s",
DOMAIN,
CONF_HOST)
return False
# Only add a media server once
if (host, port) in KNOWN_DEVICES:
return False
KNOWN_DEVICES.append((host, port))
lms = LogitechMediaServer(
config.get(CONF_HOST),
config.get('port', '9090'),
host, port,
config.get(CONF_USERNAME),
config.get(CONF_PASSWORD))