1 """Sense Coordinators."""
3 from datetime
import timedelta
6 from sense_energy
import (
8 SenseAuthenticationException,
9 SenseMFARequiredException,
18 SENSE_CONNECT_EXCEPTIONS,
19 SENSE_TIMEOUT_EXCEPTIONS,
20 SENSE_WEBSOCKET_EXCEPTIONS,
24 _LOGGER = logging.getLogger(__name__)
28 """Sense Trend Coordinator."""
31 self, hass: HomeAssistant, gateway: ASyncSenseable, name: str, update: int
37 name=f
"Sense {name} {gateway.sense_monitor_id}",
38 update_interval=
timedelta(seconds=update),
45 """Sense Trend Coordinator."""
47 def __init__(self, hass: HomeAssistant, gateway: ASyncSenseable) ->
None:
49 super().
__init__(hass, gateway,
"Trends", TREND_UPDATE_RATE)
52 """Update the trend data."""
54 await self.
_gateway_gateway.update_trend_data()
55 except (SenseAuthenticationException, SenseMFARequiredException)
as err:
56 _LOGGER.warning(
"Sense authentication expired")
58 except SENSE_CONNECT_EXCEPTIONS
as err:
63 """Sense Realtime Coordinator."""
65 def __init__(self, hass: HomeAssistant, gateway: ASyncSenseable) ->
None:
67 super().
__init__(hass, gateway,
"Realtime", ACTIVE_UPDATE_RATE)
70 """Retrieve latest state."""
72 await self.
_gateway_gateway.update_realtime()
73 except SENSE_TIMEOUT_EXCEPTIONS
as ex:
74 _LOGGER.error(
"Timeout retrieving data: %s", ex)
75 except SENSE_WEBSOCKET_EXCEPTIONS
as ex:
76 _LOGGER.error(
"Failed to update data: %s", ex)
None __init__(self, HomeAssistant hass, ASyncSenseable gateway, str name, int update)
None _async_update_data(self)
None __init__(self, HomeAssistant hass, ASyncSenseable gateway)
None _async_update_data(self)
None __init__(self, HomeAssistant hass, ASyncSenseable gateway)