1 """Diagnostics support for Fronius."""
8 from .
import FroniusConfigEntry
10 TO_REDACT = {
"unique_id",
"unique_identifier",
"serial"}
14 hass: HomeAssistant, config_entry: FroniusConfigEntry
16 """Return diagnostics for a config entry."""
17 diag: dict[str, Any] = {}
18 solar_net = config_entry.runtime_data
19 fronius = solar_net.fronius
21 diag[
"config_entry"] = config_entry.as_dict()
22 diag[
"inverter_info"] = await fronius.inverter_info()
24 diag[
"coordinators"] = {
"inverters": {}}
25 for inv
in solar_net.inverter_coordinators:
26 diag[
"coordinators"][
"inverters"] |= inv.data
28 diag[
"coordinators"][
"logger"] = (
29 solar_net.logger_coordinator.data
if solar_net.logger_coordinator
else None
31 diag[
"coordinators"][
"meter"] = (
32 solar_net.meter_coordinator.data
if solar_net.meter_coordinator
else None
34 diag[
"coordinators"][
"ohmpilot"] = (
35 solar_net.ohmpilot_coordinator.data
if solar_net.ohmpilot_coordinator
else None
37 diag[
"coordinators"][
"power_flow"] = (
38 solar_net.power_flow_coordinator.data
39 if solar_net.power_flow_coordinator
42 diag[
"coordinators"][
"storage"] = (
43 solar_net.storage_coordinator.data
if solar_net.storage_coordinator
else None
dict async_redact_data(Mapping data, Iterable[Any] to_redact)
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, FroniusConfigEntry config_entry)