Home Assistant Unofficial Reference 2024.12.1
diagnostics.py
Go to the documentation of this file.
1 """Diagnostics support for Home Connect Diagnostics."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from homeconnect.api import HomeConnectAppliance
8 
9 from homeassistant.core import HomeAssistant
10 from homeassistant.helpers.device_registry import DeviceEntry
11 
12 from . import HomeConnectConfigEntry, _get_appliance
13 from .api import HomeConnectDevice
14 
15 
16 def _generate_appliance_diagnostics(appliance: HomeConnectAppliance) -> dict[str, Any]:
17  return {
18  "status": appliance.status,
19  "programs": appliance.get_programs_available(),
20  }
21 
22 
24  devices: list[HomeConnectDevice],
25 ) -> dict[str, dict[str, Any]]:
26  return {
27  device.appliance.haId: _generate_appliance_diagnostics(device.appliance)
28  for device in devices
29  }
30 
31 
33  hass: HomeAssistant, entry: HomeConnectConfigEntry
34 ) -> dict[str, Any]:
35  """Return diagnostics for a config entry."""
36  return await hass.async_add_executor_job(
37  _generate_entry_diagnostics, entry.runtime_data.devices
38  )
39 
40 
42  hass: HomeAssistant, entry: HomeConnectConfigEntry, device: DeviceEntry
43 ) -> dict[str, Any]:
44  """Return diagnostics for a device."""
45  appliance = _get_appliance(hass, device_entry=device, entry=entry)
46  return await hass.async_add_executor_job(_generate_appliance_diagnostics, appliance)
dict[str, dict[str, Any]] _generate_entry_diagnostics(list[HomeConnectDevice] devices)
Definition: diagnostics.py:25
dict[str, Any] async_get_device_diagnostics(HomeAssistant hass, HomeConnectConfigEntry entry, DeviceEntry device)
Definition: diagnostics.py:43
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, HomeConnectConfigEntry entry)
Definition: diagnostics.py:34
dict[str, Any] _generate_appliance_diagnostics(HomeConnectAppliance appliance)
Definition: diagnostics.py:16
api.HomeConnectAppliance _get_appliance(HomeAssistant hass, str|None device_id=None, dr.DeviceEntry|None device_entry=None, HomeConnectConfigEntry|None entry=None)
Definition: __init__.py:103