core/homeassistant/components/utility_meter/diagnostics.py

39 lines
1.1 KiB
Python

"""Diagnostics support for Utility Meter."""
from __future__ import annotations
from typing import Any
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from .const import DATA_TARIFF_SENSORS, DATA_UTILITY
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, entry: ConfigEntry
) -> dict[str, Any]:
"""Return diagnostics for a config entry."""
tariff_sensors = []
for sensor in hass.data[DATA_UTILITY][entry.entry_id][DATA_TARIFF_SENSORS]:
restored_last_extra_data = await sensor.async_get_last_extra_data()
tariff_sensors.append(
{
"name": sensor.name,
"entity_id": sensor.entity_id,
"extra_attributes": sensor.extra_state_attributes,
"last_sensor_data": restored_last_extra_data,
"period": sensor._period, # noqa: SLF001
"cron": sensor._cron_pattern, # noqa: SLF001
"source": sensor._sensor_source_id, # noqa: SLF001
}
)
return {
"config_entry": entry,
"tariff_sensors": tariff_sensors,
}