Home Assistant Unofficial Reference 2024.12.1
diagnostics.py
Go to the documentation of this file.
1 """Support for the Autarco diagnostics."""
2 
3 from __future__ import annotations
4 
5 from typing import Any
6 
7 from homeassistant.core import HomeAssistant
8 
9 from . import AutarcoConfigEntry, AutarcoDataUpdateCoordinator
10 
11 
13  hass: HomeAssistant, config_entry: AutarcoConfigEntry
14 ) -> dict[str, Any]:
15  """Return diagnostics for a config entry."""
16  autarco_data: list[AutarcoDataUpdateCoordinator] = config_entry.runtime_data
17 
18  return {
19  "sites_data": [
20  {
21  "id": coordinator.account_site.site_id,
22  "name": coordinator.account_site.system_name,
23  "health": coordinator.account_site.health,
24  "solar": {
25  "power_production": coordinator.data.solar.power_production,
26  "energy_production_today": coordinator.data.solar.energy_production_today,
27  "energy_production_month": coordinator.data.solar.energy_production_month,
28  "energy_production_total": coordinator.data.solar.energy_production_total,
29  },
30  "inverters": [
31  {
32  "serial_number": inverter.serial_number,
33  "out_ac_power": inverter.out_ac_power,
34  "out_ac_energy_total": inverter.out_ac_energy_total,
35  "grid_turned_off": inverter.grid_turned_off,
36  "health": inverter.health,
37  }
38  for inverter in coordinator.data.inverters.values()
39  ],
40  **(
41  {
42  "battery": {
43  "flow_now": coordinator.data.battery.flow_now,
44  "net_charged_now": coordinator.data.battery.net_charged_now,
45  "state_of_charge": coordinator.data.battery.state_of_charge,
46  "discharged_today": coordinator.data.battery.discharged_today,
47  "discharged_month": coordinator.data.battery.discharged_month,
48  "discharged_total": coordinator.data.battery.discharged_total,
49  "charged_today": coordinator.data.battery.charged_today,
50  "charged_month": coordinator.data.battery.charged_month,
51  "charged_total": coordinator.data.battery.charged_total,
52  }
53  }
54  if coordinator.data.battery is not None
55  else {}
56  ),
57  }
58  for coordinator in autarco_data
59  ],
60  }
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, AutarcoConfigEntry config_entry)
Definition: diagnostics.py:14