Add channel switching for philips tvs.

This commit is contained in:
Johan Bloemberg
2016-11-17 20:52:05 +01:00
parent 05181bf232
commit 3972d01bb2
2 changed files with 38 additions and 8 deletions

View File

@@ -9,13 +9,14 @@ from datetime import timedelta
import voluptuous as vol
from homeassistant.components.media_player import (
PLATFORM_SCHEMA, SUPPORT_SELECT_SOURCE, SUPPORT_TURN_OFF,
SUPPORT_VOLUME_STEP, SUPPORT_VOLUME_MUTE, MediaPlayerDevice)
from homeassistant.const import (
STATE_ON, STATE_OFF, STATE_UNKNOWN, CONF_HOST, CONF_NAME)
from homeassistant.util import Throttle
import homeassistant.helpers.config_validation as cv
from homeassistant.components.media_player import (
PLATFORM_SCHEMA, SUPPORT_NEXT_TRACK, SUPPORT_PREVIOUS_TRACK,
SUPPORT_SELECT_SOURCE, SUPPORT_TURN_OFF, SUPPORT_VOLUME_MUTE,
SUPPORT_VOLUME_STEP, MediaPlayerDevice)
from homeassistant.const import (
CONF_HOST, CONF_NAME, STATE_OFF, STATE_ON, STATE_UNKNOWN)
from homeassistant.util import Throttle
REQUIREMENTS = ['ha-philipsjs==0.0.1']
@@ -24,7 +25,8 @@ _LOGGER = logging.getLogger(__name__)
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=30)
SUPPORT_PHILIPS_JS = SUPPORT_TURN_OFF | SUPPORT_VOLUME_STEP | \
SUPPORT_VOLUME_MUTE | SUPPORT_SELECT_SOURCE
SUPPORT_VOLUME_MUTE | SUPPORT_SELECT_SOURCE | \
SUPPORT_NEXT_TRACK | SUPPORT_PREVIOUS_TRACK
DEFAULT_DEVICE = 'default'
DEFAULT_HOST = '127.0.0.1'
@@ -141,10 +143,24 @@ class PhilipsTV(MediaPlayerDevice):
if not self._tv.on:
self._state = STATE_OFF
def media_previous_track(self):
"""Send rewind commmand."""
self._tv.sendKey('Previous')
def media_next_track(self):
"""Send fast forward commmand."""
self._tv.sendKey('Next')
@property
def media_title(self):
"""Title of current playing media."""
return self._source
if self._source == 'Watch TV':
if self._channel_name:
return '{} - {}'.format(self._source, self._channel_name)
else:
return self._source
else:
return self._source
@Throttle(MIN_TIME_BETWEEN_UPDATES)
def update(self):
@@ -167,3 +183,10 @@ class PhilipsTV(MediaPlayerDevice):
self._state = STATE_ON
else:
self._state = STATE_OFF
self._tv.getChannelId()
self._tv.getChannels()
if self._tv.channel_id in self._tv.channels:
self._channel_name = self._tv.channels[self._tv.channel_id]['name']
else:
self._channel_name = None

View File

@@ -10,3 +10,10 @@ exclude = .venv,.git,.tox,docs,www_static,venv,bin,lib,deps,build
[pydocstyle]
match_dir = ^((?!\.|www_static).)*$
[isort]
multi_line_output = 4
indent = " "
forced_separate = homeassistant
known_standard_library = typing
not_skip = __init__.py