1 """Diagnostics support for AndroidTV."""
3 from __future__
import annotations
14 from .
import AndroidTVConfigEntry
15 from .const
import DOMAIN, PROP_ETHMAC, PROP_SERIALNO, PROP_WIFIMAC
17 TO_REDACT = {CONF_UNIQUE_ID}
18 TO_REDACT_DEV = {ATTR_CONNECTIONS, ATTR_IDENTIFIERS}
19 TO_REDACT_DEV_PROP = {PROP_ETHMAC, PROP_SERIALNO, PROP_WIFIMAC}
23 hass: HomeAssistant, entry: AndroidTVConfigEntry
24 ) -> dict[str, dict[str, Any]]:
25 """Return diagnostics for a config entry."""
29 aftv = entry.runtime_data.aftv
30 data[
"device_properties"] = {
32 "device_class": aftv.DEVICE_CLASS,
36 device_registry = dr.async_get(hass)
37 entity_registry = er.async_get(hass)
38 hass_device = device_registry.async_get_device(
39 identifiers={(DOMAIN,
str(entry.unique_id))}
49 hass_entities = er.async_entries_for_device(
51 device_id=hass_device.id,
52 include_disabled_entities=
True,
55 for entity_entry
in hass_entities:
56 state = hass.states.get(entity_entry.entity_id)
59 state_dict =
dict(state.as_dict())
61 state_dict.pop(
"entity_id",
None)
63 state_dict.pop(
"context",
None)
65 data[
"device"][
"entities"][entity_entry.entity_id] = {
68 entity_entry, filter=
lambda attr, value: attr.name !=
"entity_id"
dict[str, dict[str, Any]] async_get_config_entry_diagnostics(HomeAssistant hass, AndroidTVConfigEntry entry)
dict async_redact_data(Mapping data, Iterable[Any] to_redact)