1
0
mirror of https://github.com/home-assistant/core.git synced 2026-07-01 11:46:40 +01:00
Files
core/homeassistant/components/zeversolar/diagnostics.py
T

52 lines
1.7 KiB
Python

"""Provides diagnostics for Zeversolar."""
from typing import Any
from zeversolar import ZeverSolarData
from homeassistant.core import HomeAssistant
from homeassistant.helpers.device_registry import DeviceEntry
from .coordinator import ZeversolarConfigEntry
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, config_entry: ZeversolarConfigEntry
) -> dict[str, Any]:
"""Return diagnostics for a config entry."""
data: ZeverSolarData = config_entry.runtime_data.data
return {
"wifi_enabled": data.wifi_enabled,
"serial_or_registry_id": data.serial_or_registry_id,
"registry_key": data.registry_key,
"hardware_version": data.hardware_version,
"software_version": data.software_version,
"reported_datetime": data.reported_datetime,
"communication_status": data.communication_status.value,
"num_inverters": data.num_inverters,
"serial_number": data.serial_number,
"pac": data.pac,
"energy_today": data.energy_today,
"status": data.status.value,
"meter_status": data.meter_status.value,
}
async def async_get_device_diagnostics(
hass: HomeAssistant, entry: ZeversolarConfigEntry, device: DeviceEntry
) -> dict[str, Any]:
"""Return diagnostics for a device entry."""
coordinator = entry.runtime_data
return {
"name": coordinator.name,
"always_update": coordinator.always_update,
"last_update_success": coordinator.last_update_success,
"update_interval": (
None
if coordinator.update_interval is None
else coordinator.update_interval.total_seconds()
),
}