From a27f61cf07f108e5206fd5b19067a3514e54706e Mon Sep 17 00:00:00 2001 From: ollo69 <60491700+ollo69@users.noreply.github.com> Date: Mon, 18 Apr 2022 21:20:01 +0200 Subject: [PATCH] Improve AsusWRT diagnostics (#69826) --- .../components/asuswrt/diagnostics.py | 32 +++++++++---------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/homeassistant/components/asuswrt/diagnostics.py b/homeassistant/components/asuswrt/diagnostics.py index dc26bca5512..16f5468f87d 100644 --- a/homeassistant/components/asuswrt/diagnostics.py +++ b/homeassistant/components/asuswrt/diagnostics.py @@ -3,9 +3,16 @@ from __future__ import annotations from typing import Any +import attr + from homeassistant.components.diagnostics import async_redact_data from homeassistant.config_entries import ConfigEntry -from homeassistant.const import CONF_PASSWORD, CONF_USERNAME +from homeassistant.const import ( + ATTR_CONNECTIONS, + ATTR_IDENTIFIERS, + CONF_PASSWORD, + CONF_USERNAME, +) from homeassistant.core import HomeAssistant from homeassistant.helpers import device_registry as dr, entity_registry as er @@ -13,6 +20,7 @@ from .const import DATA_ASUSWRT, DOMAIN from .router import AsusWrtRouter TO_REDACT = {CONF_PASSWORD, CONF_USERNAME} +TO_REDACT_DEV = {ATTR_CONNECTIONS, ATTR_IDENTIFIERS} async def async_get_config_entry_diagnostics( @@ -33,11 +41,7 @@ async def async_get_config_entry_diagnostics( return data data["device"] = { - "name": hass_device.name, - "name_by_user": hass_device.name_by_user, - "disabled": hass_device.disabled, - "disabled_by": hass_device.disabled_by, - "device_info": async_redact_data(dict(router.device_info), {"identifiers"}), + **async_redact_data(attr.asdict(hass_device), TO_REDACT_DEV), "entities": {}, "tracked_devices": [], } @@ -59,16 +63,12 @@ async def async_get_config_entry_diagnostics( state_dict.pop("context", None) data["device"]["entities"][entity_entry.entity_id] = { - "name": entity_entry.name, - "original_name": entity_entry.original_name, - "disabled": entity_entry.disabled, - "disabled_by": entity_entry.disabled_by, - "entity_category": entity_entry.entity_category, - "device_class": entity_entry.device_class, - "original_device_class": entity_entry.original_device_class, - "icon": entity_entry.icon, - "original_icon": entity_entry.original_icon, - "unit_of_measurement": entity_entry.unit_of_measurement, + **async_redact_data( + attr.asdict( + entity_entry, filter=lambda attr, value: attr.name != "entity_id" + ), + TO_REDACT, + ), "state": state_dict, }