From b33d89326f717063eeacf1626b117a8da95eda6b Mon Sep 17 00:00:00 2001 From: Diogo Gomes Date: Sat, 3 Feb 2018 16:51:35 +0000 Subject: [PATCH] Panasonic viera new services (#11963) * Implemented play_media Panasonic Viera TV has a full blown Web Browser that can play any media * media stop * format checks * added SUPPORT_* * bump version * Tks @rytilahti * one too many --- .../components/media_player/__init__.py | 1 + .../media_player/panasonic_viera.py | 22 +++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/media_player/__init__.py b/homeassistant/components/media_player/__init__.py index 91bcb4d8af0..06e89548785 100644 --- a/homeassistant/components/media_player/__init__.py +++ b/homeassistant/components/media_player/__init__.py @@ -88,6 +88,7 @@ MEDIA_TYPE_VIDEO = 'movie' MEDIA_TYPE_EPISODE = 'episode' MEDIA_TYPE_CHANNEL = 'channel' MEDIA_TYPE_PLAYLIST = 'playlist' +MEDIA_TYPE_URL = 'url' SUPPORT_PAUSE = 1 SUPPORT_SEEK = 2 diff --git a/homeassistant/components/media_player/panasonic_viera.py b/homeassistant/components/media_player/panasonic_viera.py index 3e5e80d7545..1a14ab0289b 100644 --- a/homeassistant/components/media_player/panasonic_viera.py +++ b/homeassistant/components/media_player/panasonic_viera.py @@ -11,7 +11,8 @@ import voluptuous as vol from homeassistant.components.media_player import ( SUPPORT_NEXT_TRACK, SUPPORT_PAUSE, SUPPORT_PREVIOUS_TRACK, SUPPORT_TURN_ON, SUPPORT_TURN_OFF, SUPPORT_PLAY, - SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET, + SUPPORT_VOLUME_MUTE, SUPPORT_VOLUME_SET, MEDIA_TYPE_URL, + SUPPORT_PLAY_MEDIA, SUPPORT_STOP, SUPPORT_VOLUME_STEP, MediaPlayerDevice, PLATFORM_SCHEMA) from homeassistant.const import ( CONF_HOST, CONF_NAME, STATE_OFF, STATE_ON, STATE_UNKNOWN, CONF_PORT) @@ -30,7 +31,8 @@ DEFAULT_PORT = 55000 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_TURN_OFF | SUPPORT_PLAY | \ + SUPPORT_PLAY_MEDIA | SUPPORT_STOP PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend({ vol.Required(CONF_HOST): cv.string, @@ -184,3 +186,19 @@ class PanasonicVieraTVDevice(MediaPlayerDevice): def media_previous_track(self): """Send the previous track command.""" self.send_key('NRC_REW-ONOFF') + + def play_media(self, media_type, media_id, **kwargs): + """Play media.""" + _LOGGER.debug("Play media: %s (%s)", media_id, media_type) + + if media_type == MEDIA_TYPE_URL: + try: + self._remote.open_webpage(media_id) + except (TimeoutError, OSError): + self._state = STATE_OFF + else: + _LOGGER.warning("Unsupported media_type: %s", media_type) + + def media_stop(self): + """Stop playback.""" + self.send_key('NRC_CANCEL-ONOFF')