Home Assistant Unofficial Reference 2024.12.1
diagnostics.py
Go to the documentation of this file.
1 """Diagnostics support for P1 Monitor."""
2 
3 from __future__ import annotations
4 
5 from dataclasses import asdict
6 from typing import Any
7 
8 from homeassistant.components.diagnostics import async_redact_data
9 from homeassistant.const import CONF_IP_ADDRESS
10 from homeassistant.core import HomeAssistant
11 
12 from . import HomeWizardConfigEntry
13 
14 TO_REDACT = {
15  CONF_IP_ADDRESS,
16  "serial",
17  "wifi_ssid",
18  "unique_meter_id",
19  "unique_id",
20  "gas_unique_id",
21 }
22 
23 
25  hass: HomeAssistant, entry: HomeWizardConfigEntry
26 ) -> dict[str, Any]:
27  """Return diagnostics for a config entry."""
28  data = entry.runtime_data.data
29 
30  state: dict[str, Any] | None = None
31  if data.state:
32  state = asdict(data.state)
33 
34  system: dict[str, Any] | None = None
35  if data.system:
36  system = asdict(data.system)
37 
38  return async_redact_data(
39  {
40  "entry": async_redact_data(entry.data, TO_REDACT),
41  "data": {
42  "device": asdict(data.device),
43  "data": asdict(data.data),
44  "state": state,
45  "system": system,
46  },
47  },
48  TO_REDACT,
49  )
dict async_redact_data(Mapping data, Iterable[Any] to_redact)
Definition: util.py:14
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, HomeWizardConfigEntry entry)
Definition: diagnostics.py:26