Merge pull request #1566 from jaharkes/squeezebox-discovery
Add discovery for squeezebox (logitech media) servers.pull/1528/merge
commit
792954adc9
|
@ -25,6 +25,7 @@ SERVICE_CAST = 'google_cast'
|
||||||
SERVICE_NETGEAR = 'netgear_router'
|
SERVICE_NETGEAR = 'netgear_router'
|
||||||
SERVICE_SONOS = 'sonos'
|
SERVICE_SONOS = 'sonos'
|
||||||
SERVICE_PLEX = 'plex_mediaserver'
|
SERVICE_PLEX = 'plex_mediaserver'
|
||||||
|
SERVICE_SQUEEZEBOX = 'logitech_mediaserver'
|
||||||
|
|
||||||
SERVICE_HANDLERS = {
|
SERVICE_HANDLERS = {
|
||||||
SERVICE_WEMO: "wemo",
|
SERVICE_WEMO: "wemo",
|
||||||
|
@ -33,6 +34,7 @@ SERVICE_HANDLERS = {
|
||||||
SERVICE_NETGEAR: 'device_tracker',
|
SERVICE_NETGEAR: 'device_tracker',
|
||||||
SERVICE_SONOS: 'media_player',
|
SERVICE_SONOS: 'media_player',
|
||||||
SERVICE_PLEX: 'media_player',
|
SERVICE_PLEX: 'media_player',
|
||||||
|
SERVICE_SQUEEZEBOX: 'media_player',
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ DISCOVERY_PLATFORMS = {
|
||||||
discovery.SERVICE_CAST: 'cast',
|
discovery.SERVICE_CAST: 'cast',
|
||||||
discovery.SERVICE_SONOS: 'sonos',
|
discovery.SERVICE_SONOS: 'sonos',
|
||||||
discovery.SERVICE_PLEX: 'plex',
|
discovery.SERVICE_PLEX: 'plex',
|
||||||
|
discovery.SERVICE_SQUEEZEBOX: 'squeezebox',
|
||||||
}
|
}
|
||||||
|
|
||||||
SERVICE_PLAY_MEDIA = 'play_media'
|
SERVICE_PLAY_MEDIA = 'play_media'
|
||||||
|
|
|
@ -22,19 +22,32 @@ SUPPORT_SQUEEZEBOX = SUPPORT_PAUSE | SUPPORT_VOLUME_SET | \
|
||||||
SUPPORT_VOLUME_MUTE | SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | \
|
SUPPORT_VOLUME_MUTE | SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | \
|
||||||
SUPPORT_SEEK | SUPPORT_TURN_ON | SUPPORT_TURN_OFF
|
SUPPORT_SEEK | SUPPORT_TURN_ON | SUPPORT_TURN_OFF
|
||||||
|
|
||||||
|
KNOWN_DEVICES = []
|
||||||
|
|
||||||
|
|
||||||
def setup_platform(hass, config, add_devices, discovery_info=None):
|
def setup_platform(hass, config, add_devices, discovery_info=None):
|
||||||
"""Setup the squeezebox platform."""
|
"""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(
|
_LOGGER.error(
|
||||||
"Missing required configuration items in %s: %s",
|
"Missing required configuration items in %s: %s",
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
CONF_HOST)
|
CONF_HOST)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
# Only add a media server once
|
||||||
|
if (host, port) in KNOWN_DEVICES:
|
||||||
|
return False
|
||||||
|
KNOWN_DEVICES.append((host, port))
|
||||||
|
|
||||||
lms = LogitechMediaServer(
|
lms = LogitechMediaServer(
|
||||||
config.get(CONF_HOST),
|
host, port,
|
||||||
config.get('port', '9090'),
|
|
||||||
config.get(CONF_USERNAME),
|
config.get(CONF_USERNAME),
|
||||||
config.get(CONF_PASSWORD))
|
config.get(CONF_PASSWORD))
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue