From df3c683023e85f745e0b14be2eebe91204df312a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20H=C3=B8yer=20Iversen?= Date: Mon, 3 Dec 2018 20:53:18 +0100 Subject: [PATCH] Improve err handling --- homeassistant/components/sensor/tibber.py | 11 ++++++++--- homeassistant/components/tibber/__init__.py | 8 ++++++-- requirements_all.txt | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/homeassistant/components/sensor/tibber.py b/homeassistant/components/sensor/tibber.py index d900067f98b..2c921e95863 100644 --- a/homeassistant/components/sensor/tibber.py +++ b/homeassistant/components/sensor/tibber.py @@ -12,6 +12,7 @@ from datetime import timedelta import aiohttp from homeassistant.components.tibber import DOMAIN as TIBBER_DOMAIN +from homeassistant.exceptions import PlatformNotReady from homeassistant.helpers.entity import Entity from homeassistant.util import dt as dt_util from homeassistant.util import Throttle @@ -38,13 +39,17 @@ async def async_setup_platform(hass, config, async_add_entities, for home in tibber_connection.get_homes(): try: await home.update_info() - except (asyncio.TimeoutError, aiohttp.ClientError): - pass + except asyncio.TimeoutError as err: + _LOGGER.error("Timeout connecting to Tibber home: %s ", err) + raise PlatformNotReady() + except aiohttp.ClientError as err: + _LOGGER.error("Error connecting to Tibber home: %s ", err) + raise PlatformNotReady() dev.append(TibberSensorElPrice(home)) if home.has_real_time_consumption: dev.append(TibberSensorRT(home)) - async_add_entities(dev, True) + async_add_entities(dev, False) class TibberSensorElPrice(Entity): diff --git a/homeassistant/components/tibber/__init__.py b/homeassistant/components/tibber/__init__.py index 4f6761f0b40..27595dc09c7 100644 --- a/homeassistant/components/tibber/__init__.py +++ b/homeassistant/components/tibber/__init__.py @@ -16,7 +16,7 @@ from homeassistant.const import (EVENT_HOMEASSISTANT_STOP, CONF_ACCESS_TOKEN, from homeassistant.helpers import discovery from homeassistant.helpers.aiohttp_client import async_get_clientsession -REQUIREMENTS = ['pyTibber==0.8.3'] +REQUIREMENTS = ['pyTibber==0.8.4'] DOMAIN = 'tibber' @@ -45,7 +45,11 @@ async def async_setup(hass, config): try: await tibber_connection.update_info() - except (asyncio.TimeoutError, aiohttp.ClientError): + except asyncio.TimeoutError as err: + _LOGGER.error("Timeout connecting to Tibber: %s ", err) + return False + except aiohttp.ClientError as err: + _LOGGER.error("Error connecting to Tibber: %s ", err) return False except tibber.InvalidLogin as exp: _LOGGER.error("Failed to login. %s", exp) diff --git a/requirements_all.txt b/requirements_all.txt index 06b49b6d514..ee2f5991e15 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -827,7 +827,7 @@ pyRFXtrx==0.23 pySwitchmate==0.4.4 # homeassistant.components.tibber -pyTibber==0.8.3 +pyTibber==0.8.4 # homeassistant.components.switch.dlink pyW215==0.6.0