Improve diagnostics (#43)

* Improve diagnostics

* fix style
This commit is contained in:
Vincent Le Bourlot 2022-08-03 11:06:21 +02:00 committed by GitHub
parent dc222cb03c
commit 95a8c624b0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,11 +3,15 @@ from __future__ import annotations
from typing import Any from typing import Any
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from .common import is_humidifier
from .const import DOMAIN from .const import DOMAIN
TO_REDACT = {"cid", "uuid", "mac_id"}
def _if_has_attr_else_none(obj, attr): def _if_has_attr_else_none(obj, attr):
return getattr(obj, attr) if hasattr(obj, attr) else None return getattr(obj, attr) if hasattr(obj, attr) else None
@ -18,14 +22,12 @@ async def async_get_config_entry_diagnostics(
) -> dict[str, Any]: ) -> dict[str, Any]:
"""Return diagnostics for a config entry.""" """Return diagnostics for a config entry."""
data = hass.data[DOMAIN][entry.entry_id] data = hass.data[DOMAIN][entry.entry_id]
devices = {"fans": [], "outlets": [], "switches": [], "bulbs": []} devices = {}
for type in ["fans", "outlets", "switches", "bulbs"]: for type in ["fans", "outlets", "switches", "bulbs"]:
for d in data["manager"]._dev_list[type]: for d in data["manager"]._dev_list[type]:
devices[type].append( t = "humidifier" if is_humidifier(d.device_type) else type
{ devices = {
"config_dict": _if_has_attr_else_none(d, "config_dict") or {}, **devices,
"config": _if_has_attr_else_none(d, "config") or {}, **{t: [{k: v for k, v in d.__dict__.items() if k != "manager"}]},
"details": _if_has_attr_else_none(d, "details") or {}, }
} return async_redact_data(devices, TO_REDACT)
)
return devices