Skip to content

Commit

Permalink
Add broadcast_address for wake-on-lan (#28793)
Browse files Browse the repository at this point in the history
  • Loading branch information
uSpike authored and fabaff committed Nov 17, 2019
1 parent c7f684d commit f25a3cb
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 3 deletions.
15 changes: 12 additions & 3 deletions homeassistant/components/panasonic_viera/media_player.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
SUPPORT_VOLUME_STEP,
)
from homeassistant.const import (
CONF_BROADCAST_ADDRESS,
CONF_HOST,
CONF_MAC,
CONF_NAME,
Expand All @@ -36,6 +37,7 @@

DEFAULT_NAME = "Panasonic Viera TV"
DEFAULT_PORT = 55000
DEFAULT_BROADCAST_ADDRESS = "255.255.255.255"
DEFAULT_APP_POWER = False

SUPPORT_VIERATV = (
Expand All @@ -55,6 +57,9 @@
{
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,
Expand All @@ -65,6 +70,7 @@
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)
Expand All @@ -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
Expand All @@ -105,6 +113,7 @@ def __init__(self, mac, name, remote, host, app_power, uuid=None):
self._state = None
self._remote = remote
self._host = host
self._broadcast = broadcast
self._volume = 0
self._app_power = app_power

Expand Down Expand Up @@ -162,7 +171,7 @@ def supported_features(self):
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()
Expand Down
1 change: 1 addition & 0 deletions homeassistant/const.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
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"
Expand Down

0 comments on commit f25a3cb

Please sign in to comment.