Home Assistant Unofficial Reference 2024.12.1
diagnostics.py
Go to the documentation of this file.
1 """Provides diagnostics for Zeversolar."""
2 
3 from typing import Any
4 
5 from zeversolar import ZeverSolarData
6 
7 from homeassistant.config_entries import ConfigEntry
8 from homeassistant.core import HomeAssistant
9 from homeassistant.helpers.device_registry import DeviceEntry
10 
11 from .const import DOMAIN
12 from .coordinator import ZeversolarCoordinator
13 
14 
16  hass: HomeAssistant, config_entry: ConfigEntry
17 ) -> dict[str, Any]:
18  """Return diagnostics for a config entry."""
19 
20  coordinator: ZeversolarCoordinator = hass.data[DOMAIN][config_entry.entry_id]
21  data: ZeverSolarData = coordinator.data
22 
23  payload: dict[str, Any] = {
24  "wifi_enabled": data.wifi_enabled,
25  "serial_or_registry_id": data.serial_or_registry_id,
26  "registry_key": data.registry_key,
27  "hardware_version": data.hardware_version,
28  "software_version": data.software_version,
29  "reported_datetime": data.reported_datetime,
30  "communication_status": data.communication_status.value,
31  "num_inverters": data.num_inverters,
32  "serial_number": data.serial_number,
33  "pac": data.pac,
34  "energy_today": data.energy_today,
35  "status": data.status.value,
36  "meter_status": data.meter_status.value,
37  }
38 
39  return payload
40 
41 
43  hass: HomeAssistant, entry: ConfigEntry, device: DeviceEntry
44 ) -> dict[str, Any]:
45  """Return diagnostics for a device entry."""
46  coordinator: ZeversolarCoordinator = hass.data[DOMAIN][entry.entry_id]
47 
48  updateInterval = (
49  None
50  if coordinator.update_interval is None
51  else coordinator.update_interval.total_seconds()
52  )
53 
54  return {
55  "name": coordinator.name,
56  "always_update": coordinator.always_update,
57  "last_update_success": coordinator.last_update_success,
58  "update_interval": updateInterval,
59  }
dict[str, Any] async_get_device_diagnostics(HomeAssistant hass, ConfigEntry entry, DeviceEntry device)
Definition: diagnostics.py:44
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, ConfigEntry config_entry)
Definition: diagnostics.py:17