mirror of
https://github.com/home-assistant/core.git
synced 2026-07-01 11:46:40 +01:00
52 lines
1.7 KiB
Python
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()
|
|
),
|
|
}
|