1 """Diagnostics support for KNX."""
3 from __future__
import annotations
7 import voluptuous
as vol
9 from homeassistant
import config
as conf_util
14 from .
import CONFIG_SCHEMA
16 CONF_KNX_KNXKEY_PASSWORD,
17 CONF_KNX_ROUTING_BACKBONE_KEY,
18 CONF_KNX_SECURE_DEVICE_AUTHENTICATION,
19 CONF_KNX_SECURE_USER_PASSWORD,
25 CONF_KNX_ROUTING_BACKBONE_KEY,
26 CONF_KNX_KNXKEY_PASSWORD,
27 CONF_KNX_SECURE_USER_PASSWORD,
28 CONF_KNX_SECURE_DEVICE_AUTHENTICATION,
33 hass: HomeAssistant, config_entry: ConfigEntry
35 """Return diagnostics for a config entry."""
36 diag: dict[str, Any] = {}
37 knx_module = hass.data[KNX_MODULE_KEY]
39 "version": knx_module.xknx.version,
40 "current_address":
str(knx_module.xknx.current_address),
45 if proj_info := knx_module.project.info:
48 diag[
"project_info"] =
None
50 raw_config = await conf_util.async_hass_config_yaml(hass)
51 diag[
"configuration_yaml"] = raw_config.get(DOMAIN)
54 except vol.Invalid
as ex:
55 diag[
"configuration_error"] =
str(ex)
57 diag[
"configuration_error"] =
None
dict async_redact_data(Mapping data, Iterable[Any] to_redact)
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, ConfigEntry config_entry)