1 """Diagnostics support for Comelit integration."""
3 from __future__
import annotations
7 from aiocomelit
import (
8 ComelitSerialBridgeObject,
10 ComelitVedoZoneObject,
12 from aiocomelit.const
import BRIDGE
19 from .const
import DOMAIN
20 from .coordinator
import ComelitBaseCoordinator
22 TO_REDACT = {CONF_PIN}
26 hass: HomeAssistant, entry: ConfigEntry
28 """Return diagnostics for a config entry."""
30 coordinator: ComelitBaseCoordinator = hass.data[DOMAIN][entry.entry_id]
32 dev_list: list[dict[str, Any]] = []
33 dev_type_list: list[dict[int, Any]] = []
35 for dev_type
in coordinator.data:
37 for sensor_data
in coordinator.data[dev_type].values():
38 if isinstance(sensor_data, ComelitSerialBridgeObject):
42 "name": sensor_data.name,
43 "status": sensor_data.status,
44 "human_status": sensor_data.human_status,
45 "protected": sensor_data.protected,
46 "val": sensor_data.val,
47 "zone": sensor_data.zone,
48 "power": sensor_data.power,
49 "power_unit": sensor_data.power_unit,
53 if isinstance(sensor_data, ComelitVedoAreaObject):
57 "name": sensor_data.name,
58 "human_status": sensor_data.human_status.value,
61 "ready": sensor_data.ready,
62 "armed": sensor_data.armed,
63 "alarm": sensor_data.alarm,
64 "alarm_memory": sensor_data.alarm_memory,
65 "sabotage": sensor_data.sabotage,
66 "anomaly": sensor_data.anomaly,
67 "in_time": sensor_data.in_time,
68 "out_time": sensor_data.out_time,
72 if isinstance(sensor_data, ComelitVedoZoneObject):
76 "name": sensor_data.name,
77 "human_status": sensor_data.human_status.value,
78 "status": sensor_data.status,
79 "status_api": sensor_data.status_api,
83 dev_list.append({dev_type: dev_type_list})
87 "type": entry.data.get(CONF_TYPE, BRIDGE),
89 "last_update success": coordinator.last_update_success,
90 "last_exception": repr(coordinator.last_exception),
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, ConfigEntry entry)
dict async_redact_data(Mapping data, Iterable[Any] to_redact)