diff --git a/.coveragerc b/.coveragerc index 7d661932183..093ef8aef9b 100644 --- a/.coveragerc +++ b/.coveragerc @@ -785,6 +785,7 @@ omit = homeassistant/components/onvif/event.py homeassistant/components/onvif/parsers.py homeassistant/components/onvif/sensor.py + homeassistant/components/open_meteo/diagnostics.py homeassistant/components/open_meteo/weather.py homeassistant/components/opencv/* homeassistant/components/openevse/sensor.py diff --git a/homeassistant/components/open_meteo/diagnostics.py b/homeassistant/components/open_meteo/diagnostics.py new file mode 100644 index 00000000000..a429b0c368f --- /dev/null +++ b/homeassistant/components/open_meteo/diagnostics.py @@ -0,0 +1,30 @@ +"""Diagnostics support for Open-Meteo.""" +from __future__ import annotations + +import json +from typing import Any + +from open_meteo import Forecast + +from homeassistant.components.diagnostics import async_redact_data +from homeassistant.config_entries import ConfigEntry +from homeassistant.const import CONF_LATITUDE, CONF_LONGITUDE +from homeassistant.core import HomeAssistant +from homeassistant.helpers.update_coordinator import DataUpdateCoordinator + +from .const import DOMAIN + +TO_REDACT = { + CONF_LATITUDE, + CONF_LONGITUDE, +} + + +async def async_get_config_entry_diagnostics( + hass: HomeAssistant, entry: ConfigEntry +) -> dict[str, Any]: + """Return diagnostics for a config entry.""" + coordinator: DataUpdateCoordinator[Forecast] = hass.data[DOMAIN][entry.entry_id] + # Round-trip via JSON to trigger serialization + data: dict[str, Any] = json.loads(coordinator.data.json()) + return async_redact_data(data, TO_REDACT)