From 1ee1090ca407a768b3f49050ba23df4a9b2f09d4 Mon Sep 17 00:00:00 2001 From: kbickar Date: Wed, 1 Aug 2018 20:48:18 -0400 Subject: [PATCH 1/4] Added error handling for sense API timeouts --- homeassistant/components/sensor/sense.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/homeassistant/components/sensor/sense.py b/homeassistant/components/sensor/sense.py index 16f4ccb9b6c1b3..3d3ad3dfcc57e1 100644 --- a/homeassistant/components/sensor/sense.py +++ b/homeassistant/components/sensor/sense.py @@ -6,6 +6,8 @@ """ import logging from datetime import timedelta +from requests import ReadTimeout +from websocket import WebSocketTimeoutException import voluptuous as vol @@ -139,7 +141,11 @@ def icon(self): def update(self): """Get the latest data, update state.""" - self.update_sensor() + try: + self.update_sensor() + except (WebSocketTimeoutException, ReadTimeout): + _LOGGER.error("Timeout retrieving data") + return if self._sensor_type == ACTIVE_TYPE: if self._is_production: From 5cff9dfa8a2b0b8d3f790eef9cf1545ec3f6806f Mon Sep 17 00:00:00 2001 From: kbickar Date: Wed, 1 Aug 2018 21:46:29 -0400 Subject: [PATCH 2/4] Moved imports in function --- homeassistant/components/sensor/sense.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/sensor/sense.py b/homeassistant/components/sensor/sense.py index 3d3ad3dfcc57e1..402488d36279bb 100644 --- a/homeassistant/components/sensor/sense.py +++ b/homeassistant/components/sensor/sense.py @@ -6,8 +6,6 @@ """ import logging from datetime import timedelta -from requests import ReadTimeout -from websocket import WebSocketTimeoutException import voluptuous as vol @@ -69,6 +67,8 @@ def __init__(self, name, sensor_type): def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the Sense sensor.""" from sense_energy import Senseable + from requests import ReadTimeout + from websocket import WebSocketTimeoutException username = config.get(CONF_EMAIL) password = config.get(CONF_PASSWORD) From cb7b27303d38f8fcacca787222f0a9f4c1c9957b Mon Sep 17 00:00:00 2001 From: kbickar Date: Wed, 1 Aug 2018 22:08:30 -0400 Subject: [PATCH 3/4] Moved imports to more appropriate function --- homeassistant/components/sensor/sense.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/sensor/sense.py b/homeassistant/components/sensor/sense.py index 402488d36279bb..184aeff7207ce6 100644 --- a/homeassistant/components/sensor/sense.py +++ b/homeassistant/components/sensor/sense.py @@ -67,8 +67,6 @@ def __init__(self, name, sensor_type): def setup_platform(hass, config, add_devices, discovery_info=None): """Set up the Sense sensor.""" from sense_energy import Senseable - from requests import ReadTimeout - from websocket import WebSocketTimeoutException username = config.get(CONF_EMAIL) password = config.get(CONF_PASSWORD) @@ -141,6 +139,8 @@ def icon(self): def update(self): """Get the latest data, update state.""" + from requests import ReadTimeout + from websocket import WebSocketTimeoutException try: self.update_sensor() except (WebSocketTimeoutException, ReadTimeout): From 3fa4d0df3c6bca11b35b4064fabf3a7ed299eec9 Mon Sep 17 00:00:00 2001 From: kbickar Date: Sun, 12 Aug 2018 16:41:03 -0400 Subject: [PATCH 4/4] Change exception to custom package version --- homeassistant/components/sensor/sense.py | 7 +++---- requirements_all.txt | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/homeassistant/components/sensor/sense.py b/homeassistant/components/sensor/sense.py index 184aeff7207ce6..89e0d15bf488e7 100644 --- a/homeassistant/components/sensor/sense.py +++ b/homeassistant/components/sensor/sense.py @@ -16,7 +16,7 @@ from homeassistant.util import Throttle import homeassistant.helpers.config_validation as cv -REQUIREMENTS = ['sense_energy==0.3.1'] +REQUIREMENTS = ['sense_energy==0.4.1'] _LOGGER = logging.getLogger(__name__) @@ -139,11 +139,10 @@ def icon(self): def update(self): """Get the latest data, update state.""" - from requests import ReadTimeout - from websocket import WebSocketTimeoutException + from sense_energy import SenseAPITimeoutException try: self.update_sensor() - except (WebSocketTimeoutException, ReadTimeout): + except SenseAPITimeoutException: _LOGGER.error("Timeout retrieving data") return diff --git a/requirements_all.txt b/requirements_all.txt index 6388842e84d94c..c9c27d11012b5e 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1244,7 +1244,7 @@ sendgrid==5.4.1 sense-hat==2.2.0 # homeassistant.components.sensor.sense -sense_energy==0.3.1 +sense_energy==0.4.1 # homeassistant.components.media_player.aquostv sharp_aquos_rc==0.3.2