diff --git a/homeassistant/components/media_player/russound_rnet.py b/homeassistant/components/media_player/russound_rnet.py index 77a9939c36c..932872467bd 100644 --- a/homeassistant/components/media_player/russound_rnet.py +++ b/homeassistant/components/media_player/russound_rnet.py @@ -15,7 +15,7 @@ from homeassistant.const import ( CONF_HOST, CONF_PORT, STATE_OFF, STATE_ON, CONF_NAME) import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['russound==0.1.7'] +REQUIREMENTS = ['russound==0.1.9'] _LOGGER = logging.getLogger(__name__) @@ -85,23 +85,30 @@ class RussoundRNETDevice(MediaPlayerDevice): def update(self): """Retrieve latest state.""" - if self._russ.get_power('1', self._zone_id) == 0: - self._state = STATE_OFF - else: - self._state = STATE_ON - - self._volume = self._russ.get_volume('1', self._zone_id) / 100.0 - + # Updated this function to make a single call to get_zone_info, so that + # with a single call we can get On/Off, Volume and Source, reducing the + # amount of traffic and speeding up the update process. + ret = self._russ.get_zone_info('1', self._zone_id, 4) + _LOGGER.debug("ret= %s", ret) + if ret is not None: + _LOGGER.debug("Updating status for zone %s", self._zone_id) + if ret[0] == 0: + self._state = STATE_OFF + else: + self._state = STATE_ON + self._volume = ret[2] * 2 / 100.0 # Returns 0 based index for source. - index = self._russ.get_source('1', self._zone_id) + index = ret[1] # Possibility exists that user has defined list of all sources. # If a source is set externally that is beyond the defined list then # an exception will be thrown. # In this case return and unknown source (None) - try: - self._source = self._sources[index] - except IndexError: - self._source = None + try: + self._source = self._sources[index] + except IndexError: + self._source = None + else: + _LOGGER.error("Could not update status for zone %s", self._zone_id) @property def name(self): diff --git a/requirements_all.txt b/requirements_all.txt index f0cb207f451..e3dbfa34ab1 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -912,7 +912,7 @@ roombapy==1.3.1 # rpi-rf==0.9.6 # homeassistant.components.media_player.russound_rnet -russound==0.1.7 +russound==0.1.9 # homeassistant.components.media_player.russound_rio russound_rio==0.1.4