diff --git a/homeassistant/components/panasonic_viera/media_player.py b/homeassistant/components/panasonic_viera/media_player.py index 0b19a8fa552..d0615edfc33 100644 --- a/homeassistant/components/panasonic_viera/media_player.py +++ b/homeassistant/components/panasonic_viera/media_player.py @@ -21,6 +21,7 @@ from homeassistant.components.media_player.const import ( SUPPORT_VOLUME_STEP, ) from homeassistant.const import ( + CONF_BROADCAST_ADDRESS, CONF_HOST, CONF_MAC, CONF_NAME, @@ -36,6 +37,7 @@ CONF_APP_POWER = "app_power" DEFAULT_NAME = "Panasonic Viera TV" DEFAULT_PORT = 55000 +DEFAULT_BROADCAST_ADDRESS = "255.255.255.255" DEFAULT_APP_POWER = False SUPPORT_VIERATV = ( @@ -55,6 +57,9 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( { vol.Required(CONF_HOST): cv.string, vol.Optional(CONF_MAC): cv.string, + vol.Optional( + CONF_BROADCAST_ADDRESS, default=DEFAULT_BROADCAST_ADDRESS + ): cv.string, vol.Optional(CONF_NAME, default=DEFAULT_NAME): cv.string, vol.Optional(CONF_PORT, default=DEFAULT_PORT): cv.port, vol.Optional(CONF_APP_POWER, default=DEFAULT_APP_POWER): cv.boolean, @@ -65,6 +70,7 @@ PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( def setup_platform(hass, config, add_entities, discovery_info=None): """Set up the Panasonic Viera TV platform.""" mac = config.get(CONF_MAC) + broadcast = config.get(CONF_BROADCAST_ADDRESS) name = config.get(CONF_NAME) port = config.get(CONF_PORT) app_power = config.get(CONF_APP_POWER) @@ -86,14 +92,16 @@ def setup_platform(hass, config, add_entities, discovery_info=None): host = config.get(CONF_HOST) remote = RemoteControl(host, port) - add_entities([PanasonicVieraTVDevice(mac, name, remote, host, app_power)]) + add_entities( + [PanasonicVieraTVDevice(mac, name, remote, host, broadcast, app_power)] + ) return True class PanasonicVieraTVDevice(MediaPlayerDevice): """Representation of a Panasonic Viera TV.""" - def __init__(self, mac, name, remote, host, app_power, uuid=None): + def __init__(self, mac, name, remote, host, broadcast, app_power, uuid=None): """Initialize the Panasonic device.""" # Save a reference to the imported class self._wol = wakeonlan @@ -105,6 +113,7 @@ class PanasonicVieraTVDevice(MediaPlayerDevice): self._state = None self._remote = remote self._host = host + self._broadcast = broadcast self._volume = 0 self._app_power = app_power @@ -162,7 +171,7 @@ class PanasonicVieraTVDevice(MediaPlayerDevice): def turn_on(self): """Turn on the media player.""" if self._mac: - self._wol.send_magic_packet(self._mac, ip_address=self._host) + self._wol.send_magic_packet(self._mac, ip_address=self._broadcast) self._state = STATE_ON elif self._app_power: self._remote.turn_on() diff --git a/homeassistant/const.py b/homeassistant/const.py index 449e7a90087..c15d1e55bd1 100644 --- a/homeassistant/const.py +++ b/homeassistant/const.py @@ -40,6 +40,7 @@ CONF_BELOW = "below" CONF_BINARY_SENSORS = "binary_sensors" CONF_BLACKLIST = "blacklist" CONF_BRIGHTNESS = "brightness" +CONF_BROADCAST_ADDRESS = "broadcast_address" CONF_CLIENT_ID = "client_id" CONF_CLIENT_SECRET = "client_secret" CONF_CODE = "code"