1 """Provides diagnostics for Overkiz."""
3 from __future__
import annotations
7 from pyoverkiz.enums
import APIType
8 from pyoverkiz.obfuscate
import obfuscate_id
14 from .
import HomeAssistantOverkizData
15 from .const
import CONF_API_TYPE, CONF_HUB, DOMAIN
19 hass: HomeAssistant, entry: ConfigEntry
21 """Return diagnostics for a config entry."""
22 entry_data: HomeAssistantOverkizData = hass.data[DOMAIN][entry.entry_id]
23 client = entry_data.coordinator.client
26 "setup": await client.get_diagnostic_data(),
27 "server": entry.data[CONF_HUB],
28 "api_type": entry.data.get(CONF_API_TYPE, APIType.CLOUD),
32 if client.api_type == APIType.CLOUD:
34 repr(execution)
for execution
in await client.get_execution_history()
36 data[
"execution_history"] = execution_history
42 hass: HomeAssistant, entry: ConfigEntry, device: DeviceEntry
44 """Return diagnostics for a device entry."""
45 entry_data: HomeAssistantOverkizData = hass.data[DOMAIN][entry.entry_id]
46 client = entry_data.coordinator.client
48 device_url =
min(device.identifiers)[1]
52 "controllable_name": device.hw_version,
53 "firmware": device.sw_version,
54 "device_url": obfuscate_id(device_url),
55 "model": device.model,
57 "setup": await client.get_diagnostic_data(),
58 "server": entry.data[CONF_HUB],
59 "api_type": entry.data.get(CONF_API_TYPE, APIType.CLOUD),
63 if client.api_type == APIType.CLOUD:
64 data[
"execution_history"] = [
66 for execution
in await client.get_execution_history()
67 if any(command.device_url == device_url
for command
in execution.commands)
dict[str, Any] async_get_device_diagnostics(HomeAssistant hass, ConfigEntry entry, DeviceEntry device)
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, ConfigEntry entry)