mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 05:37:44 +00:00
Add broadcast_address for wake-on-lan (#28793)
This commit is contained in:
parent
c7f684d3f4
commit
f25a3cbfcf
@ -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()
|
||||
|
@ -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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user