mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +00:00
Add Tibber retry (#32554)
* Add retry setup to Tibber * tibber lib * update comment * update comment * increase delay for every try * Update homeassistant/components/tibber/__init__.py Co-Authored-By: Martin Hjelmare <marhje52@gmail.com> Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
This commit is contained in:
parent
17215709e1
commit
b5118c41a6
@ -10,10 +10,13 @@ from homeassistant.const import CONF_ACCESS_TOKEN, CONF_NAME, EVENT_HOMEASSISTAN
|
|||||||
from homeassistant.helpers import discovery
|
from homeassistant.helpers import discovery
|
||||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||||
import homeassistant.helpers.config_validation as cv
|
import homeassistant.helpers.config_validation as cv
|
||||||
|
from homeassistant.helpers.event import async_call_later
|
||||||
from homeassistant.util import dt as dt_util
|
from homeassistant.util import dt as dt_util
|
||||||
|
|
||||||
DOMAIN = "tibber"
|
DOMAIN = "tibber"
|
||||||
|
|
||||||
|
FIRST_RETRY_TIME = 60
|
||||||
|
|
||||||
CONFIG_SCHEMA = vol.Schema(
|
CONFIG_SCHEMA = vol.Schema(
|
||||||
{DOMAIN: vol.Schema({vol.Required(CONF_ACCESS_TOKEN): cv.string})},
|
{DOMAIN: vol.Schema({vol.Required(CONF_ACCESS_TOKEN): cv.string})},
|
||||||
extra=vol.ALLOW_EXTRA,
|
extra=vol.ALLOW_EXTRA,
|
||||||
@ -22,7 +25,7 @@ CONFIG_SCHEMA = vol.Schema(
|
|||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
async def async_setup(hass, config):
|
async def async_setup(hass, config, retry_delay=FIRST_RETRY_TIME):
|
||||||
"""Set up the Tibber component."""
|
"""Set up the Tibber component."""
|
||||||
conf = config.get(DOMAIN)
|
conf = config.get(DOMAIN)
|
||||||
|
|
||||||
@ -40,9 +43,16 @@ async def async_setup(hass, config):
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
await tibber_connection.update_info()
|
await tibber_connection.update_info()
|
||||||
except asyncio.TimeoutError as err:
|
except asyncio.TimeoutError:
|
||||||
_LOGGER.error("Timeout connecting to Tibber: %s ", err)
|
_LOGGER.warning("Timeout connecting to Tibber. Will retry in %ss", retry_delay)
|
||||||
return False
|
|
||||||
|
async def retry_setup(now):
|
||||||
|
"""Retry setup if a timeout happens on Tibber API."""
|
||||||
|
await async_setup(hass, config, retry_delay=min(2 * retry_delay, 900))
|
||||||
|
|
||||||
|
async_call_later(hass, retry_delay, retry_setup)
|
||||||
|
|
||||||
|
return True
|
||||||
except aiohttp.ClientError as err:
|
except aiohttp.ClientError as err:
|
||||||
_LOGGER.error("Error connecting to Tibber: %s ", err)
|
_LOGGER.error("Error connecting to Tibber: %s ", err)
|
||||||
return False
|
return False
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
"domain": "tibber",
|
"domain": "tibber",
|
||||||
"name": "Tibber",
|
"name": "Tibber",
|
||||||
"documentation": "https://www.home-assistant.io/integrations/tibber",
|
"documentation": "https://www.home-assistant.io/integrations/tibber",
|
||||||
"requirements": ["pyTibber==0.13.2"],
|
"requirements": ["pyTibber==0.13.3"],
|
||||||
"dependencies": [],
|
"dependencies": [],
|
||||||
"codeowners": ["@danielhiversen"],
|
"codeowners": ["@danielhiversen"],
|
||||||
"quality_scale": "silver"
|
"quality_scale": "silver"
|
||||||
|
@ -1116,7 +1116,7 @@ pyRFXtrx==0.25
|
|||||||
# pySwitchmate==0.4.6
|
# pySwitchmate==0.4.6
|
||||||
|
|
||||||
# homeassistant.components.tibber
|
# homeassistant.components.tibber
|
||||||
pyTibber==0.13.2
|
pyTibber==0.13.3
|
||||||
|
|
||||||
# homeassistant.components.dlink
|
# homeassistant.components.dlink
|
||||||
pyW215==0.6.0
|
pyW215==0.6.0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user