From c69d4943a52bedcef2e14243277fcbcf66263747 Mon Sep 17 00:00:00 2001 From: Chris Talkington Date: Sun, 10 May 2020 18:56:38 -0500 Subject: [PATCH] Update rokuecp to 0.4.0 (#35436) --- homeassistant/components/roku/__init__.py | 15 ++++++++++++++- homeassistant/components/roku/manifest.json | 2 +- requirements_all.txt | 2 +- requirements_test_all.txt | 2 +- 4 files changed, 17 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/roku/__init__.py b/homeassistant/components/roku/__init__.py index dfd7e3d1ef7..ef233f64a1b 100644 --- a/homeassistant/components/roku/__init__.py +++ b/homeassistant/components/roku/__init__.py @@ -18,6 +18,7 @@ from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.entity import Entity from homeassistant.helpers.typing import HomeAssistantType from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed +from homeassistant.util.dt import utcnow from .const import ( ATTR_IDENTIFIERS, @@ -100,14 +101,26 @@ class RokuDataUpdateCoordinator(DataUpdateCoordinator): """Initialize global Roku data updater.""" self.roku = Roku(host=host, session=async_get_clientsession(hass)) + self.full_update_interval = timedelta(minutes=15) + self.last_full_update = None + super().__init__( hass, _LOGGER, name=DOMAIN, update_interval=SCAN_INTERVAL, ) async def _async_update_data(self) -> Device: """Fetch data from Roku.""" + full_update = self.last_full_update is None or utcnow() >= ( + self.last_full_update + self.full_update_interval + ) + try: - return await self.roku.update() + data = await self.roku.update(full_update=full_update) + + if full_update: + self.last_full_update = utcnow() + + return data except RokuError as error: raise UpdateFailed(f"Invalid response from API: {error}") diff --git a/homeassistant/components/roku/manifest.json b/homeassistant/components/roku/manifest.json index 364da0ddef3..62b3cc58fc8 100644 --- a/homeassistant/components/roku/manifest.json +++ b/homeassistant/components/roku/manifest.json @@ -2,7 +2,7 @@ "domain": "roku", "name": "Roku", "documentation": "https://www.home-assistant.io/integrations/roku", - "requirements": ["rokuecp==0.3.2"], + "requirements": ["rokuecp==0.4.0"], "ssdp": [ { "st": "roku:ecp", diff --git a/requirements_all.txt b/requirements_all.txt index de0bdcf1587..a9330f4b37e 100644 --- a/requirements_all.txt +++ b/requirements_all.txt @@ -1859,7 +1859,7 @@ rjpl==0.3.5 rocketchat-API==0.6.1 # homeassistant.components.roku -rokuecp==0.3.2 +rokuecp==0.4.0 # homeassistant.components.roomba roombapy==1.5.3 diff --git a/requirements_test_all.txt b/requirements_test_all.txt index 45ea03adab1..1aa5ee4c2fa 100644 --- a/requirements_test_all.txt +++ b/requirements_test_all.txt @@ -747,7 +747,7 @@ rflink==0.0.52 ring_doorbell==0.6.0 # homeassistant.components.roku -rokuecp==0.3.2 +rokuecp==0.4.0 # homeassistant.components.roomba roombapy==1.5.3