mirror of
https://github.com/home-assistant/core.git
synced 2026-07-02 04:06:41 +01:00
d766aae436
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: frenck <195327+frenck@users.noreply.github.com>
50 lines
1.6 KiB
Python
50 lines
1.6 KiB
Python
"""Diagnostics support for BSBLan."""
|
|
|
|
from typing import Any
|
|
|
|
from homeassistant.core import HomeAssistant
|
|
|
|
from . import BSBLanConfigEntry
|
|
|
|
|
|
async def async_get_config_entry_diagnostics(
|
|
hass: HomeAssistant, entry: BSBLanConfigEntry
|
|
) -> dict[str, Any]:
|
|
"""Return diagnostics for a config entry."""
|
|
data = entry.runtime_data
|
|
|
|
# Build diagnostic data from both coordinators
|
|
diagnostics = {
|
|
"info": data.info.model_dump(),
|
|
"device": data.device.model_dump(),
|
|
"fast_coordinator_data": {
|
|
"states": {
|
|
str(circuit): state.model_dump()
|
|
for circuit, state in data.fast_coordinator.data.states.items()
|
|
},
|
|
"sensor": data.fast_coordinator.data.sensor.model_dump(),
|
|
"dhw": data.fast_coordinator.data.dhw.model_dump()
|
|
if data.fast_coordinator.data.dhw
|
|
else None,
|
|
},
|
|
"static": {
|
|
str(circuit): static.model_dump() if static is not None else None
|
|
for circuit, static in data.static.items()
|
|
},
|
|
"available_circuits": data.available_circuits,
|
|
}
|
|
|
|
# Add DHW config and schedule from slow coordinator if available
|
|
if data.slow_coordinator.data:
|
|
slow_data = {}
|
|
if data.slow_coordinator.data.dhw_config:
|
|
slow_data["dhw_config"] = data.slow_coordinator.data.dhw_config.model_dump()
|
|
if data.slow_coordinator.data.dhw_schedule:
|
|
slow_data["dhw_schedule"] = (
|
|
data.slow_coordinator.data.dhw_schedule.model_dump()
|
|
)
|
|
if slow_data:
|
|
diagnostics["slow_coordinator_data"] = slow_data
|
|
|
|
return diagnostics
|