1 """Diagnostics support for deCONZ."""
3 from __future__
import annotations
12 from .hub
import DeconzHub
14 REDACT_CONFIG = {CONF_API_KEY, CONF_UNIQUE_ID}
15 REDACT_DECONZ_CONFIG = {
"bridgeid",
"mac",
"panid"}
19 hass: HomeAssistant, config_entry: ConfigEntry
21 """Return diagnostics for a config entry."""
22 hub = DeconzHub.get_hub(hass, config_entry)
23 diag: dict[str, Any] = {}
26 diag[
"deconz_config"] =
async_redact_data(hub.api.config.raw, REDACT_DECONZ_CONFIG)
27 diag[
"websocket_state"] = (
28 hub.api.websocket.state.value
if hub.api.websocket
else "Unknown"
30 diag[
"deconz_ids"] = hub.deconz_ids
31 diag[
"entities"] = hub.entities
34 "event_id": event.event_id,
35 "event_type": type(event).__name__,
37 for event
in hub.events
39 diag[
"alarm_systems"] = {k: v.raw
for k, v
in hub.api.alarm_systems.items()}
40 diag[
"groups"] = {k: v.raw
for k, v
in hub.api.groups.items()}
41 diag[
"lights"] = {k: v.raw
for k, v
in hub.api.lights.items()}
42 diag[
"scenes"] = {k: v.raw
for k, v
in hub.api.scenes.items()}
43 diag[
"sensors"] = {k: v.raw
for k, v
in hub.api.sensors.items()}
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, ConfigEntry config_entry)
dict async_redact_data(Mapping data, Iterable[Any] to_redact)