diff --git a/homeassistant/components/discovery.py b/homeassistant/components/discovery.py
index 32e1bbd5f6ae3afd03cd2338759df9ec008eae5d..65a5af79bfb490dce3c692bfbb3f6c12c57290ca 100644
--- a/homeassistant/components/discovery.py
+++ b/homeassistant/components/discovery.py
@@ -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'),
 }
diff --git a/homeassistant/components/media_player/yamaha.py b/homeassistant/components/media_player/yamaha.py
index 027fd6077309c27a7596f69d8b7b9730b74a8a73..40ca9151e50b62f084d8f62e1d1291503f6d5b6a 100644
--- a/homeassistant/components/media_player/yamaha.py
+++ b/homeassistant/components/media_player/yamaha.py
@@ -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
diff --git a/requirements_all.txt b/requirements_all.txt
index 6528b07fb08775f37ee29702db899e5abb686c4e..a746d7bbf343efca32e29db468ea0550e680a813 100644
--- a/requirements_all.txt
+++ b/requirements_all.txt
@@ -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