Home Assistant Unofficial Reference 2024.12.1
diagnostics.py
Go to the documentation of this file.
1 """Diagnostics support for myUplink."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from homeassistant.components.diagnostics import async_redact_data
8 from homeassistant.core import HomeAssistant
9 
10 from . import MyUplinkConfigEntry
11 
12 TO_REDACT = {"access_token", "refresh_token", "serialNumber"}
13 
14 
16  hass: HomeAssistant, config_entry: MyUplinkConfigEntry
17 ) -> dict[str, Any]:
18  """Return diagnostics for a config entry.
19 
20  Pick up fresh data from API and dump it.
21  """
22  api = config_entry.runtime_data.api
23  myuplink_data = {}
24  myuplink_data["my_systems"] = await api.async_get_systems_json()
25  myuplink_data["my_systems"]["devices"] = []
26  for system in myuplink_data["my_systems"]["systems"]:
27  for device in system["devices"]:
28  device_data = await api.async_get_device_json(device["id"])
29  device_points = await api.async_get_device_points_json(device["id"])
30  myuplink_data["my_systems"]["devices"].append(
31  {
32  system["systemId"]: {
33  "device_data": device_data,
34  "points": device_points,
35  }
36  }
37  )
38 
39  return {
40  "config_entry_data": async_redact_data(dict(config_entry.data), TO_REDACT),
41  "myuplink_data": async_redact_data(myuplink_data, TO_REDACT),
42  }
dict async_redact_data(Mapping data, Iterable[Any] to_redact)
Definition: util.py:14