Enable polling and fix metadata updating.

Remove unnecessary methods.
Include SoCo in requirements_all.txt for CI.
Lock down SoCo version to 0.11.1
Add sonos.py to exclusions in .coveragerc
This commit is contained in:
Roy Hooper 2015-09-11 19:38:42 -04:00
parent ae058b7847
commit a25f7eed2b
3 changed files with 14 additions and 20 deletions

View file

@ -49,6 +49,7 @@ omit =
homeassistant/components/media_player/kodi.py
homeassistant/components/media_player/mpd.py
homeassistant/components/media_player/squeezebox.py
homeassistant/components/media_player/sonos.py
homeassistant/components/notify/file.py
homeassistant/components/notify/instapush.py
homeassistant/components/notify/nma.py

View file

@ -15,7 +15,7 @@ media_player:
import logging
import datetime
REQUIREMENTS = ['SoCo>=0.11.1']
REQUIREMENTS = ['SoCo==0.11.1']
from homeassistant.components.media_player import (
MediaPlayerDevice, SUPPORT_PAUSE, SUPPORT_SEEK, SUPPORT_VOLUME_SET,
@ -44,17 +44,17 @@ def setup_platform(hass, config, add_devices, discovery_info=None):
# pylint: disable=too-many-instance-attributes
# pylint: disable=too-many-public-methods
class SonosDevice(MediaPlayerDevice):
""" Represents a SqueezeBox device. """
""" Represents a Sonos device. """
# pylint: disable=too-many-arguments
def __init__(self, player):
super(SonosDevice, self).__init__()
self._player = player
self._name = player.get_speaker_info()['zone_name'].replace(
' (R)', '').replace(' (L)', '')
self._status = player.get_current_transport_info().get(
'current_transport_state')
self._trackinfo = player.get_current_track_info()
self.update()
@property
def should_poll(self):
return True
@property
def name(self):
@ -74,8 +74,11 @@ class SonosDevice(MediaPlayerDevice):
def update(self):
""" Retrieve latest state. """
self._name = self._player.get_speaker_info()['zone_name'].replace(
' (R)', '').replace(' (L)', '')
self._status = self._player.get_current_transport_info().get(
'current_transport_state')
self._trackinfo = self._player.get_current_track_info()
@property
def volume_level(self):
@ -129,7 +132,6 @@ class SonosDevice(MediaPlayerDevice):
def turn_off(self):
""" turn_off media player. """
self._player.pause()
self.update_ha_state()
def volume_up(self):
""" volume_up media player. """
@ -151,14 +153,6 @@ class SonosDevice(MediaPlayerDevice):
self._player.mute = mute
self.update_ha_state()
def media_play_pause(self):
""" media_play_pause media player. """
if self.state == STATE_PAUSED:
self._player.play()
else:
self._player.pause()
self.update_ha_state()
def media_play(self):
""" media_play media player. """
self._player.play()
@ -188,7 +182,3 @@ class SonosDevice(MediaPlayerDevice):
""" turn the media player on. """
self._player.play()
self.update_ha_state()
def play_youtube(self, media_id):
""" Plays a YouTube media. """
raise NotImplementedError()

View file

@ -130,3 +130,6 @@ https://github.com/balloob/home-assistant-nzb-clients/archive/616cad591540925992
# sensor.vera
# light.vera
https://github.com/balloob/home-assistant-vera-api/archive/a8f823066ead6c7da6fb5e7abaf16fef62e63364.zip#python-vera==0.1
# Sonos bindings (media_player.sonos)
SoCo==0.11.1