Coverage for custom_components/autoarm/diagnostics.py: 100%
12 statements
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-26 20:57 +0000
« prev ^ index » next coverage.py v7.16.2, created at 2026-10-26 20:57 +0000
1"""Diagnostics support for AutoArm."""
3from typing import Any
5from homeassistant.components.diagnostics import async_redact_data
6from homeassistant.core import HomeAssistant
8from .autoarming import AutoArmConfigEntry
9from .config_flow import CONF_PANEL_CODE
10from .const import YAML_DATA_KEY
13async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: AutoArmConfigEntry) -> dict[str, Any]:
14 """Return diagnostics for a config entry."""
15 yaml_config = hass.data.get(YAML_DATA_KEY, {})
16 data: dict[str, Any] = {
17 "entry_data": dict(entry.data),
18 "entry_options": async_redact_data(dict(entry.options), {CONF_PANEL_CODE}),
19 "yaml_keys": list(yaml_config.keys()),
20 }
22 if armer := getattr(entry, "runtime_data", None):
23 data["armer"] = {
24 "alarm_panel": armer.alarm_panel,
25 "calendar_count": len(armer.calendars),
26 "occupants": armer.occupants,
27 "failures": armer.app_health_tracker.failures,
28 "initialization_errors": armer.app_health_tracker.initialization_errors,
29 }
31 return data