Add discovery for yamaha component (#4061)

This uses the discovery code from netdisco/ha to discover yamaha
receivers. The old discovery code remains if discovery is turned of in
HA, at least for now. Though it probably is worth turning that off in
the future.
This commit is contained in:
Sean Dague 2016-10-27 02:46:44 -04:00 committed by Paulus Schoutsen
parent c6d5987109
commit 3d897e0e52
3 changed files with 17 additions and 5 deletions

View file

@ -14,7 +14,7 @@ import voluptuous as vol
from homeassistant.const import EVENT_HOMEASSISTANT_START
from homeassistant.helpers.discovery import load_platform, discover
REQUIREMENTS = ['netdisco==0.7.2']
REQUIREMENTS = ['netdisco==0.7.5']
DOMAIN = 'discovery'
@ -33,6 +33,7 @@ SERVICE_HANDLERS = {
'plex_mediaserver': ('media_player', 'plex'),
'roku': ('media_player', 'roku'),
'sonos': ('media_player', 'sonos'),
'yamaha': ('media_player', 'yamaha'),
'logitech_mediaserver': ('media_player', 'squeezebox'),
'directv': ('media_player', 'directv'),
}

View file

@ -47,7 +47,18 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
source_ignore = config.get(CONF_SOURCE_IGNORE)
source_names = config.get(CONF_SOURCE_NAMES)
if host is None:
if discovery_info is not None:
name = discovery_info[0]
model = discovery_info[1]
ctrl_url = discovery_info[2]
desc_url = discovery_info[3]
receivers = rxv.RXV(
ctrl_url,
model_name=model,
friendly_name=name,
unit_desc_url=desc_url).zone_controllers()
_LOGGER.info("Receivers: %s", receivers)
elif host is None:
receivers = []
for recv in rxv.find():
receivers.extend(recv.zone_controllers())
@ -73,8 +84,8 @@ class YamahaDevice(MediaPlayerDevice):
self._pwstate = STATE_OFF
self._current_source = None
self._source_list = None
self._source_ignore = source_ignore
self._source_names = source_names
self._source_ignore = source_ignore or []
self._source_names = source_names or {}
self._reverse_mapping = None
self.update()
self._name = name

View file

@ -271,7 +271,7 @@ mficlient==0.3.0
miflora==0.1.9
# homeassistant.components.discovery
netdisco==0.7.2
netdisco==0.7.5
# homeassistant.components.sensor.neurio_energy
neurio==0.2.10