1 """Provides diagnostics for Version."""
3 from __future__
import annotations
7 from attr
import asdict
12 from .
import VersionConfigEntry
17 config_entry: VersionConfigEntry,
19 """Return diagnostics for a config entry."""
20 coordinator = config_entry.runtime_data
21 device_registry = dr.async_get(hass)
22 entity_registry = er.async_get(hass)
26 registry_devices = dr.async_entries_for_config_entry(
27 device_registry, config_entry.entry_id
30 for device
in registry_devices:
33 registry_entities = er.async_entries_for_device(
36 include_disabled_entities=
True,
39 for entity
in registry_entities:
41 if state := hass.states.get(entity.entity_id):
42 state_dict =
dict(state.as_dict())
43 state_dict.pop(
"context",
None)
45 entities.append({
"entry": asdict(entity),
"state": state_dict})
47 devices.append({
"device": asdict(device),
"entities": entities})
50 "entry": config_entry.as_dict(),
52 "version": coordinator.version,
53 "version_data": coordinator.version_data,
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, VersionConfigEntry config_entry)