Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 20 additions & 13 deletions homeassistant/components/media_player/russound_rnet.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
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__)

Expand Down Expand Up @@ -85,23 +85,30 @@ def __init__(self, hass, russ, sources, zone_id, extra):

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:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Preference:
Our preferred style is the pattern shown below. This saves us from having to indent the rest of the function. This will also line up the indentation of the comments below with the code.

if ret is None:
    _LOGGER.error("Could not update status for zone %s", self._zone_id)
    return

_LOGGER.debug("Updating status for zone %s", self._zone_id)
…

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @armills , thank you for your feedback. Could it be possible to do the merge like this just for this moment, so that I can concentrate on additional enhancements to the Russound RNET component? Right now this component cannot reconnect if there is a communications error (forcing you to a full Hass restart), and would like to make fixing this my first priority. I will have the update ready in a week from now (including this style change). Do you agree?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, that's no problem. Not a blocker to merge. Thanks for the contribution! 🎉

_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):
Expand Down
2 changes: 1 addition & 1 deletion requirements_all.txt
Original file line number Diff line number Diff line change
Expand Up @@ -879,7 +879,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
Expand Down