Files
ha_config/custom_components/better_thermostat/diagnostics.py
T
2025-11-20 20:09:50 +01:00

52 lines
1.6 KiB
Python

"""Diagnostics support for Brother."""
from __future__ import annotations
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from .utils.const import CONF_HEATER, CONF_SENSOR, CONF_SENSOR_WINDOW
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, config_entry: ConfigEntry
) -> dict:
"""Return diagnostics for a config entry."""
trvs = {}
for trv_id in config_entry.data[CONF_HEATER]:
trv = hass.states.get(trv_id["trv"])
if trv is None:
continue
trv_id["adapter"] = trv_id["integration"]
if trv_id["adapter"] is None:
trv_id["adapter"] = "unknown"
trvs[trv_id["trv"]] = {
"name": trv.name,
"state": trv.state,
"attributes": trv.attributes,
"bt_config": trv_id["advanced"],
"bt_adapter": trv_id["adapter"],
"bt_integration": trv_id["integration"],
"model": trv_id["model"],
}
external_temperature = hass.states.get(config_entry.data[CONF_SENSOR])
window = "-"
window_entity_id = config_entry.data.get(CONF_SENSOR_WINDOW, False)
if window_entity_id:
try:
window = hass.states.get(window_entity_id)
except KeyError:
pass
_cleaned_data = dict(config_entry.data.copy())
del _cleaned_data[CONF_HEATER]
diagnostics_data = {
"info": _cleaned_data,
"thermostat": trvs,
"external_temperature_sensor": external_temperature,
"window_sensor": window,
}
return diagnostics_data