From 4c625d09aac82a5c384b86b130df84069008bbb5 Mon Sep 17 00:00:00 2001 From: Simon Szustkowski Date: Wed, 21 Sep 2016 07:26:43 +0200 Subject: [PATCH] Add the ability to manually specify a Yamaha AVR via it's IP address (#3451) * Added the possibility to manually specify a Yamaha Receiver * Added the possibility to manually specify a Yamaha AVR * Using string formatting * Hostname checks for None now * Do not use add_devices for each if-branch separately * Fixed linting --- homeassistant/components/media_player/yamaha.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/media_player/yamaha.py b/homeassistant/components/media_player/yamaha.py index 9cf8d3db8b5..c40d932ab92 100644 --- a/homeassistant/components/media_player/yamaha.py +++ b/homeassistant/components/media_player/yamaha.py @@ -11,7 +11,7 @@ import voluptuous as vol from homeassistant.components.media_player import ( SUPPORT_TURN_OFF, SUPPORT_TURN_ON, SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET, SUPPORT_SELECT_SOURCE, MediaPlayerDevice, PLATFORM_SCHEMA) -from homeassistant.const import (CONF_NAME, STATE_OFF, STATE_ON) +from homeassistant.const import (CONF_NAME, CONF_HOST, STATE_OFF, STATE_ON) import homeassistant.helpers.config_validation as cv REQUIREMENTS = ['rxv==0.1.11'] @@ -28,6 +28,7 @@ DEFAULT_NAME = 'Yamaha Receiver' PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, + vol.Optional(CONF_HOST): cv.string, vol.Optional(CONF_SOURCE_IGNORE, default=[]): vol.All(cv.ensure_list, [cv.string]), vol.Optional(CONF_SOURCE_NAMES, default={}): {cv.string: cv.string}, @@ -39,12 +40,20 @@ def setup_platform(hass, config, add_devices, discovery_info=None): import rxv name = config.get(CONF_NAME) + host = config.get(CONF_HOST) source_ignore = config.get(CONF_SOURCE_IGNORE) source_names = config.get(CONF_SOURCE_NAMES) + if host is None: + receivers = rxv.find() + else: + receivers = \ + [rxv.RXV("http://{}:80/YamahaRemoteControl/ctrl".format(host), + name)] + add_devices( YamahaDevice(name, receiver, source_ignore, source_names) - for receiver in rxv.find()) + for receiver in receivers) class YamahaDevice(MediaPlayerDevice):