1 """Diagnostics platform for Traccar Server."""
3 from __future__
import annotations
13 from .const
import DOMAIN
14 from .coordinator
import TraccarServerCoordinator
26 entity: er.RegistryEntry,
27 coordinator: TraccarServerCoordinator,
28 ) -> dict[str, Any] |
None:
29 states_to_redact = {x[
"position"][
"address"]
for x
in coordinator.data.values()}
32 "state": state.state
if state.state
not in states_to_redact
else REDACTED,
33 "attributes": state.attributes,
35 if (state := hass.states.get(entity.entity_id))
42 config_entry: ConfigEntry,
44 """Return diagnostics for a config entry."""
45 coordinator: TraccarServerCoordinator = hass.data[DOMAIN][config_entry.entry_id]
46 entity_registry = er.async_get(hass)
48 entities = er.async_entries_for_config_entry(
50 config_entry_id=config_entry.entry_id,
55 "subscription_status": coordinator.client.subscription_status,
56 "config_entry_options":
dict(config_entry.options),
57 "coordinator_data": coordinator.data,
60 "entity_id": entity.entity_id,
61 "disabled": entity.disabled,
62 "unit_of_measurement": entity.unit_of_measurement,
65 for entity
in entities
75 device: dr.DeviceEntry,
77 """Return device diagnostics."""
78 coordinator: TraccarServerCoordinator = hass.data[DOMAIN][entry.entry_id]
79 entity_registry = er.async_get(hass)
81 entities = er.async_entries_for_device(
84 include_disabled_entities=
True,
87 await hass.config_entries.async_reload(entry.entry_id)
90 "subscription_status": coordinator.client.subscription_status,
91 "config_entry_options":
dict(entry.options),
92 "coordinator_data": coordinator.data,
95 "entity_id": entity.entity_id,
96 "disabled": entity.disabled,
97 "unit_of_measurement": entity.unit_of_measurement,
100 for entity
in entities
dict async_redact_data(Mapping data, Iterable[Any] to_redact)
dict[str, Any]|None _entity_state(HomeAssistant hass, er.RegistryEntry entity, TraccarServerCoordinator coordinator)
dict[str, Any] async_get_device_diagnostics(HomeAssistant hass, ConfigEntry entry, dr.DeviceEntry device)
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, ConfigEntry config_entry)