From dab74f6d652463c3983b2a49f45c322e849e9e83 Mon Sep 17 00:00:00 2001 From: Clayton Craft Date: Fri, 7 Dec 2018 12:52:55 -0800 Subject: [PATCH 1/2] radiotherm: bump version to 2.0.0 --- homeassistant/components/climate/radiotherm.py | 2 +- requirements_all.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/climate/radiotherm.py b/homeassistant/components/climate/radiotherm.py index f914b9b4762f84..2296aea3e19781 100644 --- a/homeassistant/components/climate/radiotherm.py +++ b/homeassistant/components/climate/radiotherm.py @@ -17,7 +17,7 @@ CONF_HOST, TEMP_FAHRENHEIT, ATTR_TEMPERATURE, PRECISION_HALVES) import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['radiotherm==1.4.1'] +REQUIREMENTS = ['radiotherm==2.0.0'] _LOGGER = logging.getLogger(__name__) diff --git a/requirements_all.txt b/requirements_all.txt index df6ba3f8133e36..3487cf77d28952 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1352,7 +1352,7 @@ quantum-gateway==0.0.3 rachiopy==0.1.3 # homeassistant.components.climate.radiotherm -radiotherm==1.4.1 +radiotherm==2.0.0 # homeassistant.components.raincloud raincloudy==0.0.5 From 4a48e2f1fc1740f13e1d4adb94bef9b778328a28 Mon Sep 17 00:00:00 2001 From: Clayton Craft Date: Fri, 7 Dec 2018 13:29:05 -0800 Subject: [PATCH 2/2] radiotherm: change handling of transient errors from tstat Radiotherm 2.0.0 now throws an exception when a transient error is detected, instead of returning -1 for the field where the error was detected. This change supports handling the exception. --- homeassistant/components/climate/radiotherm.py | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/climate/radiotherm.py b/homeassistant/components/climate/radiotherm.py index 2296aea3e19781..f0423d32c967c8 100644 --- a/homeassistant/components/climate/radiotherm.py +++ b/homeassistant/components/climate/radiotherm.py @@ -235,13 +235,15 @@ def update(self): self._name = self.device.name['raw'] # Request the current state from the thermostat. - data = self.device.tstat['raw'] + import radiotherm + try: + data = self.device.tstat['raw'] + except radiotherm.validate.RadiothermTstatError: + _LOGGER.error('%s (%s) was busy (invalid value returned)', + self._name, self.device.host) + return current_temp = data['temp'] - if current_temp == -1: - _LOGGER.error('%s (%s) was busy (temp == -1)', self._name, - self.device.host) - return # Map thermostat values into various STATE_ flags. self._current_temperature = current_temp