Add diagnostics to proximity (#109393)
This commit is contained in:
parent
4809327124
commit
e567236cac
3 changed files with 197 additions and 0 deletions
49
homeassistant/components/proximity/diagnostics.py
Normal file
49
homeassistant/components/proximity/diagnostics.py
Normal file
|
@ -0,0 +1,49 @@
|
|||
"""Diagnostics support for Proximity."""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
from homeassistant.components.device_tracker import ATTR_GPS, ATTR_IP, ATTR_MAC
|
||||
from homeassistant.components.diagnostics import async_redact_data
|
||||
from homeassistant.components.person import ATTR_USER_ID
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import ATTR_LATITUDE, ATTR_LONGITUDE
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
||||
from .const import DOMAIN
|
||||
from .coordinator import ProximityDataUpdateCoordinator
|
||||
|
||||
TO_REDACT = {
|
||||
ATTR_GPS,
|
||||
ATTR_IP,
|
||||
ATTR_LATITUDE,
|
||||
ATTR_LONGITUDE,
|
||||
ATTR_MAC,
|
||||
ATTR_USER_ID,
|
||||
"context",
|
||||
}
|
||||
|
||||
|
||||
async def async_get_config_entry_diagnostics(
|
||||
hass: HomeAssistant, entry: ConfigEntry
|
||||
) -> dict[str, Any]:
|
||||
"""Return diagnostics for a config entry."""
|
||||
coordinator: ProximityDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
|
||||
|
||||
diag_data = {
|
||||
"entry": entry.as_dict(),
|
||||
}
|
||||
|
||||
tracked_states: dict[str, dict] = {}
|
||||
for tracked_entity_id in coordinator.tracked_entities:
|
||||
if (state := hass.states.get(tracked_entity_id)) is None:
|
||||
continue
|
||||
tracked_states[tracked_entity_id] = state.as_dict()
|
||||
|
||||
diag_data["data"] = {
|
||||
"proximity": coordinator.data.proximity,
|
||||
"entities": coordinator.data.entities,
|
||||
"entity_mapping": coordinator.entity_mapping,
|
||||
"tracked_states": async_redact_data(tracked_states, TO_REDACT),
|
||||
}
|
||||
return diag_data
|
Loading…
Add table
Add a link
Reference in a new issue