From 866c2ca994a656cbad1b4f5e66ccf568b2b238de Mon Sep 17 00:00:00 2001 From: clayton craft Date: Sun, 9 Dec 2018 16:27:31 -0600 Subject: [PATCH] Update radiotherm to 2.0.0 and handle change in tstat error detection (#19107) * radiotherm: bump version to 2.0.0 * 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 | 14 ++++++++------ requirements_all.txt | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/homeassistant/components/climate/radiotherm.py b/homeassistant/components/climate/radiotherm.py index f914b9b4762..f0423d32c96 100644 --- a/homeassistant/components/climate/radiotherm.py +++ b/homeassistant/components/climate/radiotherm.py @@ -17,7 +17,7 @@ from homeassistant.const import ( 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__) @@ -235,13 +235,15 @@ class RadioThermostat(ClimateDevice): 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 diff --git a/requirements_all.txt b/requirements_all.txt index 27863a99aec..ec22bccfa9a 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