1 """The SiteSage Emonitor integration."""
3 from __future__
import annotations
5 from datetime
import timedelta
8 from aioemonitor
import Emonitor
9 from aioemonitor.monitor
import EmonitorStatus
17 type EmonitorConfigEntry = ConfigEntry[DataUpdateCoordinator[EmonitorStatus]]
19 _LOGGER = logging.getLogger(__name__)
21 DEFAULT_UPDATE_RATE = 60
23 PLATFORMS = [Platform.SENSOR]
27 """Set up SiteSage Emonitor from a config entry."""
28 session = aiohttp_client.async_get_clientsession(hass)
29 emonitor = Emonitor(entry.data[CONF_HOST], session)
31 coordinator = DataUpdateCoordinator[EmonitorStatus](
36 update_method=emonitor.async_get_status,
37 update_interval=
timedelta(seconds=DEFAULT_UPDATE_RATE),
41 await coordinator.async_config_entry_first_refresh()
42 entry.runtime_data = coordinator
44 await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
49 """Unload a config entry."""
50 return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
54 """Name from short mac."""
55 return f
"Emonitor {short_mac}"
bool async_unload_entry(HomeAssistant hass, EmonitorConfigEntry entry)
bool async_setup_entry(HomeAssistant hass, EmonitorConfigEntry entry)
def name_short_mac(short_mac)