54 lines
1.3 KiB
Python
54 lines
1.3 KiB
Python
"""Diagnostics support for Netatmo."""
|
|
from __future__ import annotations
|
|
|
|
from homeassistant.components.diagnostics import async_redact_data
|
|
from homeassistant.config_entries import ConfigEntry
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
from .const import DATA_HANDLER, DOMAIN
|
|
from .data_handler import CLIMATE_TOPOLOGY_CLASS_NAME, NetatmoDataHandler
|
|
|
|
TO_REDACT = {
|
|
"access_token",
|
|
"refresh_token",
|
|
"restricted_access_token",
|
|
"restricted_refresh_token",
|
|
"webhook_id",
|
|
"cloudhook_url",
|
|
"lat_ne",
|
|
"lat_sw",
|
|
"lon_ne",
|
|
"lon_sw",
|
|
"coordinates",
|
|
"name",
|
|
"timetable",
|
|
"zones",
|
|
"pseudo",
|
|
"url",
|
|
}
|
|
|
|
|
|
async def async_get_config_entry_diagnostics(
|
|
hass: HomeAssistant, config_entry: ConfigEntry
|
|
) -> dict:
|
|
"""Return diagnostics for a config entry."""
|
|
data_handler: NetatmoDataHandler = hass.data[DOMAIN][config_entry.entry_id][
|
|
DATA_HANDLER
|
|
]
|
|
|
|
return {
|
|
"info": async_redact_data(
|
|
{
|
|
**config_entry.as_dict(),
|
|
"webhook_registered": data_handler.webhook,
|
|
},
|
|
TO_REDACT,
|
|
),
|
|
"data": {
|
|
CLIMATE_TOPOLOGY_CLASS_NAME: async_redact_data(
|
|
getattr(data_handler.data[CLIMATE_TOPOLOGY_CLASS_NAME], "raw_data"),
|
|
TO_REDACT,
|
|
)
|
|
},
|
|
}
|