Home Assistant Unofficial Reference 2024.12.1
diagnostics.py
Go to the documentation of this file.
1 """Diagnostics support for devolo Home Control."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from homeassistant.components.diagnostics import async_redact_data
8 from homeassistant.const import CONF_PASSWORD, CONF_USERNAME
9 from homeassistant.core import HomeAssistant
10 
11 from . import DevoloHomeControlConfigEntry
12 
13 TO_REDACT = {CONF_PASSWORD, CONF_USERNAME}
14 
15 
17  hass: HomeAssistant, entry: DevoloHomeControlConfigEntry
18 ) -> dict[str, Any]:
19  """Return diagnostics for a config entry."""
20  device_info = [
21  {
22  "gateway": {
23  "local_connection": gateway.gateway.local_connection,
24  "firmware_version": gateway.gateway.firmware_version,
25  },
26  "devices": [
27  {
28  "device_id": device_id,
29  "device_model_uid": properties.device_model_uid,
30  "device_type": properties.device_type,
31  "name": properties.name,
32  }
33  for device_id, properties in gateway.devices.items()
34  ],
35  }
36  for gateway in entry.runtime_data
37  ]
38 
39  return {
40  "entry": async_redact_data(entry.as_dict(), TO_REDACT),
41  "device_info": device_info,
42  }
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, DevoloHomeControlConfigEntry entry)
Definition: diagnostics.py:18
dict async_redact_data(Mapping data, Iterable[Any] to_redact)
Definition: util.py:14