From 2fc8fce78e192273e8b63d3decd25e936490d169 Mon Sep 17 00:00:00 2001 From: Edwin Top Date: Fri, 15 Mar 2019 19:34:27 +0100 Subject: [PATCH 1/6] Turn the TV on via remote --- homeassistant/components/media_player/panasonic_viera.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/media_player/panasonic_viera.py b/homeassistant/components/media_player/panasonic_viera.py index e6546f7c1e2767..5c7869000434a2 100644 --- a/homeassistant/components/media_player/panasonic_viera.py +++ b/homeassistant/components/media_player/panasonic_viera.py @@ -30,7 +30,7 @@ SUPPORT_VOLUME_SET | SUPPORT_VOLUME_MUTE | \ SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | \ SUPPORT_TURN_OFF | SUPPORT_PLAY | \ - SUPPORT_PLAY_MEDIA | SUPPORT_STOP + SUPPORT_PLAY_MEDIA | SUPPORT_STOP | SUPPORT_TURN_ON PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_HOST): cv.string, @@ -134,15 +134,16 @@ def is_volume_muted(self): @property def supported_features(self): """Flag media player features that are supported.""" - if self._mac: - return SUPPORT_VIERATV | SUPPORT_TURN_ON return SUPPORT_VIERATV def turn_on(self): """Turn on the media player.""" if self._mac: self._wol.send_magic_packet(self._mac, ip_address=self._host) - self._state = STATE_ON + else: + # power button is actually power toggle + self._remote.turn_off() + self._state = STATE_ON def turn_off(self): """Turn off media player.""" From 5cdb871d7a212087a0a63db7556587b6fe569c79 Mon Sep 17 00:00:00 2001 From: Edwin Top Date: Fri, 15 Mar 2019 19:34:27 +0100 Subject: [PATCH 2/6] Turn the TV on via remote --- homeassistant/components/media_player/panasonic_viera.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/media_player/panasonic_viera.py b/homeassistant/components/media_player/panasonic_viera.py index e6546f7c1e2767..5c7869000434a2 100644 --- a/homeassistant/components/media_player/panasonic_viera.py +++ b/homeassistant/components/media_player/panasonic_viera.py @@ -30,7 +30,7 @@ SUPPORT_VOLUME_SET | SUPPORT_VOLUME_MUTE | \ SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | \ SUPPORT_TURN_OFF | SUPPORT_PLAY | \ - SUPPORT_PLAY_MEDIA | SUPPORT_STOP + SUPPORT_PLAY_MEDIA | SUPPORT_STOP | SUPPORT_TURN_ON PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_HOST): cv.string, @@ -134,15 +134,16 @@ def is_volume_muted(self): @property def supported_features(self): """Flag media player features that are supported.""" - if self._mac: - return SUPPORT_VIERATV | SUPPORT_TURN_ON return SUPPORT_VIERATV def turn_on(self): """Turn on the media player.""" if self._mac: self._wol.send_magic_packet(self._mac, ip_address=self._host) - self._state = STATE_ON + else: + # power button is actually power toggle + self._remote.turn_off() + self._state = STATE_ON def turn_off(self): """Turn off media player.""" From 848f1c51c6fa7bb4cf8df6eea6668eb229d7bcbf Mon Sep 17 00:00:00 2001 From: Edwin Top Date: Fri, 22 Mar 2019 11:15:49 +0100 Subject: [PATCH 3/6] Use turn_on() from panasonic-viera==0.3.2 --- homeassistant/components/panasonic_viera/media_player.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/homeassistant/components/panasonic_viera/media_player.py b/homeassistant/components/panasonic_viera/media_player.py index 5c7869000434a2..7d70dcf3eafbea 100644 --- a/homeassistant/components/panasonic_viera/media_player.py +++ b/homeassistant/components/panasonic_viera/media_player.py @@ -141,8 +141,7 @@ def turn_on(self): if self._mac: self._wol.send_magic_packet(self._mac, ip_address=self._host) else: - # power button is actually power toggle - self._remote.turn_off() + self._remote.turn_on() self._state = STATE_ON def turn_off(self): From 6e11fac6e0f7a6601f60431e717fe7bbbfe448d2 Mon Sep 17 00:00:00 2001 From: Edwin Top Date: Fri, 22 Mar 2019 12:26:58 +0100 Subject: [PATCH 4/6] make power option configurable --- .../components/panasonic_viera/media_player.py | 18 ++++++++++++++---- requirements_all.txt | 2 +- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/panasonic_viera/media_player.py b/homeassistant/components/panasonic_viera/media_player.py index 7d70dcf3eafbea..c8f07d0c474bd1 100644 --- a/homeassistant/components/panasonic_viera/media_player.py +++ b/homeassistant/components/panasonic_viera/media_player.py @@ -19,24 +19,28 @@ CONF_HOST, CONF_MAC, CONF_NAME, CONF_PORT, STATE_OFF, STATE_ON) import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['panasonic_viera==0.3.1', 'wakeonlan==1.1.6'] +REQUIREMENTS = ['panasonic_viera==0.3.2', 'wakeonlan==1.1.6'] _LOGGER = logging.getLogger(__name__) +CONF_APP_POWER = 'app_power' + DEFAULT_NAME = 'Panasonic Viera TV' DEFAULT_PORT = 55000 +DEFAULT_APP_POWER = False SUPPORT_VIERATV = SUPPORT_PAUSE | SUPPORT_VOLUME_STEP | \ SUPPORT_VOLUME_SET | SUPPORT_VOLUME_MUTE | \ SUPPORT_PREVIOUS_TRACK | SUPPORT_NEXT_TRACK | \ SUPPORT_TURN_OFF | SUPPORT_PLAY | \ - SUPPORT_PLAY_MEDIA | SUPPORT_STOP | SUPPORT_TURN_ON + SUPPORT_PLAY_MEDIA | SUPPORT_STOP PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_HOST): cv.string, vol.Optional(CONF_MAC): 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, }) @@ -47,6 +51,7 @@ def setup_platform(hass, config, add_entities, discovery_info=None): mac = config.get(CONF_MAC) name = config.get(CONF_NAME) port = config.get(CONF_PORT) + app_power = config.get(CONF_APP_POWER) if discovery_info: _LOGGER.debug('%s', discovery_info) @@ -86,6 +91,7 @@ def __init__(self, mac, name, remote, host, uuid=None): self._remote = remote self._host = host self._volume = 0 + self._app_power = app_power @property def unique_id(self) -> str: @@ -134,15 +140,19 @@ def is_volume_muted(self): @property def supported_features(self): """Flag media player features that are supported.""" + if self._mac or self._app_power: + return SUPPORT_VIERATV | SUPPORT_TURN_ON return SUPPORT_VIERATV def turn_on(self): """Turn on the media player.""" if self._mac: self._wol.send_magic_packet(self._mac, ip_address=self._host) - else: + self._state = STATE_ON + elif self._app_power: self._remote.turn_on() - self._state = STATE_ON + self._state = STATE_ON + def turn_off(self): """Turn off media player.""" diff --git a/requirements_all.txt b/requirements_all.txt index b82d38d409d7f9..a8e7efa22153f6 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -802,7 +802,7 @@ paho-mqtt==1.4.0 panacotta==0.1 # homeassistant.components.panasonic_viera.media_player -panasonic_viera==0.3.1 +panasonic_viera==0.3.2 # homeassistant.components.dunehd.media_player pdunehd==1.3 From 91639e4c78d9a31bc6cb7d8bc21e51c383220200 Mon Sep 17 00:00:00 2001 From: Edwin Top Date: Fri, 22 Mar 2019 12:35:17 +0100 Subject: [PATCH 5/6] add app_power as argument --- homeassistant/components/panasonic_viera/media_player.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/panasonic_viera/media_player.py b/homeassistant/components/panasonic_viera/media_player.py index c8f07d0c474bd1..8d2f3877d0fd67 100644 --- a/homeassistant/components/panasonic_viera/media_player.py +++ b/homeassistant/components/panasonic_viera/media_player.py @@ -64,20 +64,20 @@ def setup_platform(hass, config, add_entities, discovery_info=None): else: uuid = None remote = RemoteControl(host, port) - add_entities([PanasonicVieraTVDevice(mac, name, remote, host, uuid)]) + add_entities([PanasonicVieraTVDevice(mac, name, remote, host, app_power, uuid)]) return True host = config.get(CONF_HOST) remote = RemoteControl(host, port) - add_entities([PanasonicVieraTVDevice(mac, name, remote, host)]) + add_entities([PanasonicVieraTVDevice(mac, name, remote, host, app_power)]) return True class PanasonicVieraTVDevice(MediaPlayerDevice): """Representation of a Panasonic Viera TV.""" - def __init__(self, mac, name, remote, host, uuid=None): + def __init__(self, mac, name, remote, host, app_power, uuid=None): """Initialize the Panasonic device.""" import wakeonlan # Save a reference to the imported class From 31a94ba2076a6d7d2d48476d00ece8c28ada9598 Mon Sep 17 00:00:00 2001 From: Edwin Top Date: Fri, 22 Mar 2019 14:48:23 +0100 Subject: [PATCH 6/6] formatting --- homeassistant/components/panasonic_viera/media_player.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/panasonic_viera/media_player.py b/homeassistant/components/panasonic_viera/media_player.py index 8d2f3877d0fd67..f1ac0cd90d461a 100644 --- a/homeassistant/components/panasonic_viera/media_player.py +++ b/homeassistant/components/panasonic_viera/media_player.py @@ -64,7 +64,8 @@ def setup_platform(hass, config, add_entities, discovery_info=None): else: uuid = None remote = RemoteControl(host, port) - add_entities([PanasonicVieraTVDevice(mac, name, remote, host, app_power, uuid)]) + add_entities([PanasonicVieraTVDevice( + mac, name, remote, host, app_power, uuid)]) return True host = config.get(CONF_HOST) @@ -153,7 +154,6 @@ def turn_on(self): self._remote.turn_on() self._state = STATE_ON - def turn_off(self): """Turn off media player.""" if self._state != STATE_OFF: