mirror of https://github.com/home-assistant/core
43 lines
1.4 KiB
Python
43 lines
1.4 KiB
Python
"""Diagnostics support for myUplink."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from typing import Any
|
|
|
|
from homeassistant.components.diagnostics import async_redact_data
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
from . import MyUplinkConfigEntry
|
|
|
|
TO_REDACT = {"access_token", "refresh_token", "serialNumber"}
|
|
|
|
|
|
async def async_get_config_entry_diagnostics(
|
|
hass: HomeAssistant, config_entry: MyUplinkConfigEntry
|
|
) -> dict[str, Any]:
|
|
"""Return diagnostics for a config entry.
|
|
|
|
Pick up fresh data from API and dump it.
|
|
"""
|
|
api = config_entry.runtime_data.api
|
|
myuplink_data = {}
|
|
myuplink_data["my_systems"] = await api.async_get_systems_json()
|
|
myuplink_data["my_systems"]["devices"] = []
|
|
for system in myuplink_data["my_systems"]["systems"]:
|
|
for device in system["devices"]:
|
|
device_data = await api.async_get_device_json(device["id"])
|
|
device_points = await api.async_get_device_points_json(device["id"])
|
|
myuplink_data["my_systems"]["devices"].append(
|
|
{
|
|
system["systemId"]: {
|
|
"device_data": device_data,
|
|
"points": device_points,
|
|
}
|
|
}
|
|
)
|
|
|
|
return {
|
|
"config_entry_data": async_redact_data(dict(config_entry.data), TO_REDACT),
|
|
"myuplink_data": async_redact_data(myuplink_data, TO_REDACT),
|
|
}
|