Home Assistant Unofficial Reference 2024.12.1
diagnostics.py
Go to the documentation of this file.
1 """Diagnostics support for UptimeRobot."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from pyuptimerobot import UptimeRobotException
8 
9 from homeassistant.config_entries import ConfigEntry
10 from homeassistant.core import HomeAssistant
11 
12 from .const import DOMAIN
13 from .coordinator import UptimeRobotDataUpdateCoordinator
14 
15 
17  hass: HomeAssistant,
18  entry: ConfigEntry,
19 ) -> dict[str, Any]:
20  """Return diagnostics for a config entry."""
21  coordinator: UptimeRobotDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
22  account: dict[str, Any] | str | None = None
23  try:
24  response = await coordinator.api.async_get_account_details()
25  except UptimeRobotException as err:
26  account = str(err)
27  else:
28  if (details := response.data) is not None:
29  account = {
30  "up_monitors": details.up_monitors,
31  "down_monitors": details.down_monitors,
32  "paused_monitors": details.paused_monitors,
33  }
34 
35  return {
36  "account": account,
37  "monitors": [
38  {
39  "id": monitor.id,
40  "type": str(monitor.type),
41  "interval": monitor.interval,
42  "status": monitor.status,
43  }
44  for monitor in coordinator.data
45  ],
46  }
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, ConfigEntry entry)
Definition: diagnostics.py:19