Files
homeassistant/custom_components/yandex_smart_home/diagnostics.py
Victor Alexandrovich Tsyrenschikov 373ed28445 python
2026-03-30 20:25:42 +05:00

36 lines
1.4 KiB
Python

"""Diagnostics support for Yandex Smart Home."""
from typing import Any
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers import issue_registry
from . import DOMAIN, YandexSmartHome
from .const import CONF_CLOUD_INSTANCE, CONF_SKILL
from .device import async_get_device_description, async_get_devices
async def async_get_config_entry_diagnostics(hass: HomeAssistant, config_entry: ConfigEntry) -> dict[str, Any]:
"""Return diagnostics for a config entry."""
component: YandexSmartHome = hass.data[DOMAIN]
entry_data = component.get_entry_data(config_entry)
diag: dict[str, Any] = {
"entry": async_redact_data(config_entry.as_dict(), [CONF_CLOUD_INSTANCE, CONF_SKILL]),
"devices": {},
"issues": [i.to_json() for i in issue_registry.async_get(hass).issues.values() if i.domain == DOMAIN],
}
diag.update(component.get_diagnostics())
for device in await async_get_devices(hass, entry_data):
diag["devices"][device.id] = {
"capabilities": [c.__repr__() for c in device.get_capabilities()],
"properties": [p.__repr__() for p in device.get_properties()],
"description": await async_get_device_description(hass, device),
"state": device.query(),
}
return async_redact_data(diag, [])