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

52 lines
1.5 KiB
Python

from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceEntry
from .core.const import DOMAIN
from .core.yandex_quasar import YandexQuasar
from .hass import hass_utils
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, config_entry: ConfigEntry
):
quasar: YandexQuasar = hass.data[DOMAIN][config_entry.unique_id]
info = get_diagnostics(hass, config_entry)
info["device"] = quasar.devices
return info
async def async_get_device_diagnostics(
hass: HomeAssistant, config_entry: ConfigEntry, device: DeviceEntry
):
did = next(did for _, did in device.identifiers)
quasar: YandexQuasar = hass.data[DOMAIN][config_entry.unique_id]
device = next(
device
for device in quasar.devices
if device["id"] == did or device.get("quasar_info", {}).get("device_id") == did
)
info = get_diagnostics(hass, config_entry)
info["device"] = device
return info
def get_diagnostics(hass: HomeAssistant, config_entry: ConfigEntry) -> dict:
try:
errors = [
entry.to_dict()
for key, entry in hass.data["system_log"].records.items()
if DOMAIN in str(key)
]
except Exception as e:
errors = repr(e)
include = [
device["id"] for _, device, _ in hass_utils.incluce_devices(hass, config_entry)
]
return {"errors": errors, "include": include}