mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 12:17:07 +00:00
fix: exception after kaiterra api call timeout (#27622)
This commit is contained in:
parent
cf76f22c89
commit
afa7e0bfe8
@ -1,35 +1,33 @@
|
|||||||
"""Support for Kaiterra devices."""
|
"""Support for Kaiterra devices."""
|
||||||
import voluptuous as vol
|
import voluptuous as vol
|
||||||
|
|
||||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
|
||||||
from homeassistant.helpers.event import async_track_time_interval
|
|
||||||
from homeassistant.helpers.discovery import async_load_platform
|
|
||||||
from homeassistant.helpers import config_validation as cv
|
|
||||||
|
|
||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
CONF_API_KEY,
|
CONF_API_KEY,
|
||||||
CONF_DEVICES,
|
|
||||||
CONF_DEVICE_ID,
|
CONF_DEVICE_ID,
|
||||||
|
CONF_DEVICES,
|
||||||
|
CONF_NAME,
|
||||||
CONF_SCAN_INTERVAL,
|
CONF_SCAN_INTERVAL,
|
||||||
CONF_TYPE,
|
CONF_TYPE,
|
||||||
CONF_NAME,
|
|
||||||
)
|
)
|
||||||
|
from homeassistant.helpers import config_validation as cv
|
||||||
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||||
|
from homeassistant.helpers.discovery import async_load_platform
|
||||||
|
from homeassistant.helpers.event import async_track_time_interval
|
||||||
|
|
||||||
|
from .api_data import KaiterraApiData
|
||||||
from .const import (
|
from .const import (
|
||||||
AVAILABLE_AQI_STANDARDS,
|
AVAILABLE_AQI_STANDARDS,
|
||||||
AVAILABLE_UNITS,
|
|
||||||
AVAILABLE_DEVICE_TYPES,
|
AVAILABLE_DEVICE_TYPES,
|
||||||
|
AVAILABLE_UNITS,
|
||||||
CONF_AQI_STANDARD,
|
CONF_AQI_STANDARD,
|
||||||
CONF_PREFERRED_UNITS,
|
CONF_PREFERRED_UNITS,
|
||||||
DOMAIN,
|
|
||||||
DEFAULT_AQI_STANDARD,
|
DEFAULT_AQI_STANDARD,
|
||||||
DEFAULT_PREFERRED_UNIT,
|
DEFAULT_PREFERRED_UNIT,
|
||||||
DEFAULT_SCAN_INTERVAL,
|
DEFAULT_SCAN_INTERVAL,
|
||||||
|
DOMAIN,
|
||||||
KAITERRA_COMPONENTS,
|
KAITERRA_COMPONENTS,
|
||||||
)
|
)
|
||||||
|
|
||||||
from .api_data import KaiterraApiData
|
|
||||||
|
|
||||||
KAITERRA_DEVICE_SCHEMA = vol.Schema(
|
KAITERRA_DEVICE_SCHEMA = vol.Schema(
|
||||||
{
|
{
|
||||||
vol.Required(CONF_DEVICE_ID): cv.string,
|
vol.Required(CONF_DEVICE_ID): cv.string,
|
||||||
|
@ -1,16 +1,14 @@
|
|||||||
"""Support for Kaiterra Air Quality Sensors."""
|
"""Support for Kaiterra Air Quality Sensors."""
|
||||||
from homeassistant.components.air_quality import AirQualityEntity
|
from homeassistant.components.air_quality import AirQualityEntity
|
||||||
|
from homeassistant.const import CONF_DEVICE_ID, CONF_NAME
|
||||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
||||||
|
|
||||||
from homeassistant.const import CONF_DEVICE_ID, CONF_NAME
|
|
||||||
|
|
||||||
from .const import (
|
from .const import (
|
||||||
DOMAIN,
|
|
||||||
ATTR_VOC,
|
|
||||||
ATTR_AQI_LEVEL,
|
ATTR_AQI_LEVEL,
|
||||||
ATTR_AQI_POLLUTANT,
|
ATTR_AQI_POLLUTANT,
|
||||||
|
ATTR_VOC,
|
||||||
DISPATCHER_KAITERRA,
|
DISPATCHER_KAITERRA,
|
||||||
|
DOMAIN,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,21 +1,17 @@
|
|||||||
"""Data for all Kaiterra devices."""
|
"""Data for all Kaiterra devices."""
|
||||||
|
import asyncio
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
|
|
||||||
import asyncio
|
|
||||||
|
|
||||||
import async_timeout
|
|
||||||
|
|
||||||
from aiohttp.client_exceptions import ClientResponseError
|
from aiohttp.client_exceptions import ClientResponseError
|
||||||
|
import async_timeout
|
||||||
|
from kaiterra_async_client import AQIStandard, KaiterraAPIClient, Units
|
||||||
|
|
||||||
from kaiterra_async_client import KaiterraAPIClient, AQIStandard, Units
|
from homeassistant.const import CONF_API_KEY, CONF_DEVICE_ID, CONF_DEVICES, CONF_TYPE
|
||||||
|
|
||||||
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
||||||
|
|
||||||
from homeassistant.const import CONF_API_KEY, CONF_DEVICES, CONF_DEVICE_ID, CONF_TYPE
|
|
||||||
|
|
||||||
from .const import (
|
from .const import (
|
||||||
AQI_SCALE,
|
|
||||||
AQI_LEVEL,
|
AQI_LEVEL,
|
||||||
|
AQI_SCALE,
|
||||||
CONF_AQI_STANDARD,
|
CONF_AQI_STANDARD,
|
||||||
CONF_PREFERRED_UNITS,
|
CONF_PREFERRED_UNITS,
|
||||||
DISPATCHER_KAITERRA,
|
DISPATCHER_KAITERRA,
|
||||||
@ -60,9 +56,10 @@ class KaiterraApiData:
|
|||||||
with async_timeout.timeout(10):
|
with async_timeout.timeout(10):
|
||||||
data = await self._api.get_latest_sensor_readings(self._devices)
|
data = await self._api.get_latest_sensor_readings(self._devices)
|
||||||
except (ClientResponseError, asyncio.TimeoutError):
|
except (ClientResponseError, asyncio.TimeoutError):
|
||||||
_LOGGER.debug("Couldn't fetch data")
|
_LOGGER.debug("Couldn't fetch data from Kaiterra API")
|
||||||
self.data = {}
|
self.data = {}
|
||||||
async_dispatcher_send(self._hass, DISPATCHER_KAITERRA)
|
async_dispatcher_send(self._hass, DISPATCHER_KAITERRA)
|
||||||
|
return
|
||||||
|
|
||||||
_LOGGER.debug("New data retrieved: %s", data)
|
_LOGGER.debug("New data retrieved: %s", data)
|
||||||
|
|
||||||
@ -102,8 +99,7 @@ class KaiterraApiData:
|
|||||||
device["aqi_pollutant"] = {"value": main_pollutant}
|
device["aqi_pollutant"] = {"value": main_pollutant}
|
||||||
|
|
||||||
self.data[self._devices_ids[i]] = device
|
self.data[self._devices_ids[i]] = device
|
||||||
|
|
||||||
async_dispatcher_send(self._hass, DISPATCHER_KAITERRA)
|
|
||||||
except IndexError as err:
|
except IndexError as err:
|
||||||
_LOGGER.error("Parsing error %s", err)
|
_LOGGER.error("Parsing error %s", err)
|
||||||
|
|
||||||
async_dispatcher_send(self._hass, DISPATCHER_KAITERRA)
|
async_dispatcher_send(self._hass, DISPATCHER_KAITERRA)
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
"""Support for Kaiterra Temperature ahn Humidity Sensors."""
|
"""Support for Kaiterra Temperature ahn Humidity Sensors."""
|
||||||
|
from homeassistant.const import CONF_DEVICE_ID, CONF_NAME, TEMP_CELSIUS, TEMP_FAHRENHEIT
|
||||||
|
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
||||||
from homeassistant.helpers.entity import Entity
|
from homeassistant.helpers.entity import Entity
|
||||||
|
|
||||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
from .const import DISPATCHER_KAITERRA, DOMAIN
|
||||||
|
|
||||||
from homeassistant.const import CONF_DEVICE_ID, CONF_NAME, TEMP_CELSIUS, TEMP_FAHRENHEIT
|
|
||||||
|
|
||||||
from .const import DOMAIN, DISPATCHER_KAITERRA
|
|
||||||
|
|
||||||
SENSORS = [
|
SENSORS = [
|
||||||
{"name": "Temperature", "prop": "rtemp", "device_class": "temperature"},
|
{"name": "Temperature", "prop": "rtemp", "device_class": "temperature"},
|
||||||
|
Loading…
x
Reference in New Issue
Block a user