Home Assistant Unofficial Reference 2024.12.1
diagnostics.py
Go to the documentation of this file.
1 """Diagnostics support for TPLink."""
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.core import HomeAssistant
9 from homeassistant.helpers.device_registry import format_mac
10 
11 from . import TPLinkConfigEntry
12 
13 TO_REDACT = {
14  # Entry fields
15  "unique_id", # based on mac address
16  # Device identifiers
17  "alias",
18  "mac",
19  "mic_mac",
20  "host",
21  "hwId",
22  "oemId",
23  "deviceId",
24  "id", # child id for HS300
25  # Device location
26  "latitude",
27  "latitude_i",
28  "longitude",
29  "longitude_i",
30  # Cloud connectivity info
31  "username",
32  # SMART devices
33  "device_id",
34  "hw_id",
35  "fw_id",
36  "oem_id",
37  "ssid",
38  "nickname",
39  "ip",
40  # Child device information
41  "original_device_id",
42  "parent_device_id",
43 }
44 
45 
47  hass: HomeAssistant, entry: TPLinkConfigEntry
48 ) -> dict[str, Any]:
49  """Return diagnostics for a config entry."""
50  data = entry.runtime_data
51  coordinator = data.parent_coordinator
52  oui = format_mac(coordinator.device.mac)[:8].upper()
53  return async_redact_data(
54  {"device_last_response": coordinator.device.internal_state, "oui": oui},
55  TO_REDACT,
56  )
dict async_redact_data(Mapping data, Iterable[Any] to_redact)
Definition: util.py:14