diff --git a/.coveragerc b/.coveragerc index 7f8d7902831..97b0b9d2486 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1266,6 +1266,7 @@ omit = homeassistant/components/tractive/__init__.py homeassistant/components/tractive/binary_sensor.py homeassistant/components/tractive/device_tracker.py + homeassistant/components/tractive/diagnostics.py homeassistant/components/tractive/entity.py homeassistant/components/tractive/sensor.py homeassistant/components/tractive/switch.py diff --git a/homeassistant/components/tractive/diagnostics.py b/homeassistant/components/tractive/diagnostics.py new file mode 100644 index 00000000000..879e9d82e7b --- /dev/null +++ b/homeassistant/components/tractive/diagnostics.py @@ -0,0 +1,28 @@ +"""Diagnostics support for Tractive.""" +from __future__ import annotations + +from homeassistant.components.diagnostics import async_redact_data +from homeassistant.config_entries import ConfigEntry +from homeassistant.const import CONF_EMAIL, CONF_PASSWORD +from homeassistant.core import HomeAssistant + +from .const import DOMAIN, TRACKABLES + +TO_REDACT = {CONF_PASSWORD, CONF_EMAIL, "title", "_id"} + + +async def async_get_config_entry_diagnostics( + hass: HomeAssistant, config_entry: ConfigEntry +) -> dict: + """Return diagnostics for a config entry.""" + trackables = hass.data[DOMAIN][config_entry.entry_id][TRACKABLES] + + diagnostics_data = async_redact_data( + { + "config_entry": config_entry.as_dict(), + "trackables": [item.trackable for item in trackables], + }, + TO_REDACT, + ) + + return diagnostics_data