1 """Diagnostics support for Supervisor."""
3 from __future__
import annotations
7 from attr
import asdict
13 from .const
import ADDONS_COORDINATOR
14 from .coordinator
import HassioDataUpdateCoordinator
19 config_entry: ConfigEntry,
21 """Return diagnostics for a config entry."""
22 coordinator: HassioDataUpdateCoordinator = hass.data[ADDONS_COORDINATOR]
23 device_registry = dr.async_get(hass)
24 entity_registry = er.async_get(hass)
28 registry_devices = dr.async_entries_for_config_entry(
29 device_registry, config_entry.entry_id
32 for device
in registry_devices:
35 registry_entities = er.async_entries_for_device(
38 include_disabled_entities=
True,
41 for entity_entry
in registry_entities:
43 if state := hass.states.get(entity_entry.entity_id):
44 state_dict =
dict(state.as_dict())
45 state_dict.pop(
"context",
None)
47 entities.append({
"entry": asdict(entity_entry),
"state": state_dict})
49 devices.append({
"device": asdict(device),
"entities": entities})
52 "coordinator_data": coordinator.data,
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, ConfigEntry config_entry)