Home Assistant Unofficial Reference 2024.12.1
diagnostics.py
Go to the documentation of this file.
1 """Diagnostics support for Husqvarna Automower."""
2 
3 from __future__ import annotations
4 
5 import logging
6 from typing import Any
7 
8 from homeassistant.components.diagnostics import async_redact_data
9 from homeassistant.config_entries import ConfigEntry
10 from homeassistant.const import CONF_ACCESS_TOKEN
11 from homeassistant.core import HomeAssistant
12 from homeassistant.helpers.device_registry import DeviceEntry
13 
14 from . import AutomowerConfigEntry
15 from .const import DOMAIN
16 
17 CONF_REFRESH_TOKEN = "refresh_token"
18 POSITIONS = "positions"
19 
20 TO_REDACT = {
21  CONF_ACCESS_TOKEN,
22  CONF_REFRESH_TOKEN,
23  POSITIONS,
24 }
25 _LOGGER = logging.getLogger(__name__)
26 
27 
29  hass: HomeAssistant, entry: ConfigEntry
30 ) -> dict[str, Any]:
31  """Return diagnostics for a config entry."""
32  return async_redact_data(entry.as_dict(), TO_REDACT)
33 
34 
36  hass: HomeAssistant, entry: AutomowerConfigEntry, device: DeviceEntry
37 ) -> dict[str, Any]:
38  """Return diagnostics for a device entry."""
39  coordinator = entry.runtime_data
40  for identifier in device.identifiers:
41  if identifier[0] == DOMAIN:
42  if (
43  coordinator.data[identifier[1]].system.serial_number
44  == device.serial_number
45  ):
46  mower_id = identifier[1]
47  return async_redact_data(coordinator.data[mower_id].to_dict(), TO_REDACT)
dict async_redact_data(Mapping data, Iterable[Any] to_redact)
Definition: util.py:14
dict[str, Any] async_get_device_diagnostics(HomeAssistant hass, AutomowerConfigEntry entry, DeviceEntry device)
Definition: diagnostics.py:37
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, ConfigEntry entry)
Definition: diagnostics.py:30