From eb872b4a2e174edcf05107ea79e6a9a7709648ee Mon Sep 17 00:00:00 2001 From: balgerion <133121849+balgerion@users.noreply.github.com> Date: Wed, 30 Apr 2025 14:39:27 +0200 Subject: [PATCH] Create diagnostics.py --- custom_components/pstryk/diagnostics.py | 48 +++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 custom_components/pstryk/diagnostics.py diff --git a/custom_components/pstryk/diagnostics.py b/custom_components/pstryk/diagnostics.py new file mode 100644 index 0000000..4ae5d3e --- /dev/null +++ b/custom_components/pstryk/diagnostics.py @@ -0,0 +1,48 @@ +"""Diagnostics support for Pstryk Energy.""" +from __future__ import annotations + +import logging +from typing import Any + +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant +from homeassistant.util import dt as dt_util + +from .const import DOMAIN + +_LOGGER = logging.getLogger(__name__) + +async def async_get_config_entry_diagnostics( + hass: HomeAssistant, entry: ConfigEntry +) -> dict[str, Any]: + """Return diagnostics for a config entry.""" + diagnostics_data = { + "entry": { + "title": entry.title, + "entry_id": entry.entry_id, + "version": entry.version, + "options": entry.options, + }, + "coordinators": {}, + } + + for price_type in ("buy", "sell"): + key = f"{entry.entry_id}_{price_type}" + coordinator = hass.data[DOMAIN].get(key) + if coordinator: + coordinator_data = { + "last_update_success": coordinator.last_update_success, + "data_available": coordinator.data is not None + } + + # Sprawdzamy czy atrybut istnieje przed użyciem + if hasattr(coordinator, 'last_update') and coordinator.last_update: + coordinator_data["last_update"] = dt_util.as_local(coordinator.last_update).isoformat() + elif hasattr(coordinator, 'last_updated') and coordinator.last_updated: + coordinator_data["last_update"] = dt_util.as_local(coordinator.last_updated).isoformat() + else: + coordinator_data["last_update"] = None + + diagnostics_data["coordinators"][price_type] = coordinator_data + + return diagnostics_data