Add diagnostics to KNX (#64471)

This commit is contained in:
Matthias Alphart 2022-01-19 21:46:10 +01:00 committed by GitHub
parent b245a0d0ee
commit 10538aabbf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 42 additions and 0 deletions

View File

@ -557,6 +557,7 @@ omit =
homeassistant/components/knx/__init__.py
homeassistant/components/knx/climate.py
homeassistant/components/knx/cover.py
homeassistant/components/knx/diagnostics.py
homeassistant/components/knx/expose.py
homeassistant/components/knx/knx_entity.py
homeassistant/components/knx/light.py

View File

@ -0,0 +1,41 @@
"""Diagnostics support for KNX."""
from __future__ import annotations
from typing import Any
import voluptuous as vol
from homeassistant import config as conf_util
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.system_info import async_get_system_info
from . import CONFIG_SCHEMA
from .const import DOMAIN
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, config_entry: ConfigEntry
) -> dict:
"""Return diagnostics for a config entry."""
diag: dict[str, Any] = {}
diag["home_assistant"] = await async_get_system_info(hass)
knx_module = hass.data[DOMAIN]
diag["xknx"] = {
"version": knx_module.xknx.version,
"current_address": str(knx_module.xknx.current_address),
}
diag["config_entry_data"] = dict(config_entry.data)
raw_config = await conf_util.async_hass_config_yaml(hass)
diag["configuration_yaml"] = raw_config.get(DOMAIN)
try:
CONFIG_SCHEMA(raw_config)
except vol.Invalid as ex:
diag["configuration_error"] = str(ex)
else:
diag["configuration_error"] = None
return diag