1 """Diagnostics support for Velbus."""
3 from __future__
import annotations
7 from velbusaio.channels
import Channel
as VelbusChannel
8 from velbusaio.module
import Module
as VelbusModule
14 from .const
import DOMAIN
18 hass: HomeAssistant, entry: ConfigEntry
20 """Return diagnostics for a config entry."""
21 controller = hass.data[DOMAIN][entry.entry_id][
"cntrl"]
22 data: dict[str, Any] = {
"entry": entry.as_dict(),
"modules": []}
23 for module
in controller.get_modules().values():
29 hass: HomeAssistant, entry: ConfigEntry, device: DeviceEntry
31 """Return diagnostics for a device entry."""
32 controller = hass.data[DOMAIN][entry.entry_id][
"cntrl"]
33 channel =
list(next(iter(device.identifiers)))[1]
34 modules = controller.get_modules()
39 """Build per module diagnostics info."""
40 data: dict[str, Any] = {
41 "type": module.get_type_name(),
42 "address": module.get_addresses(),
43 "name": module.get_name(),
44 "sw_version": module.get_sw_version(),
45 "is_loaded": module.is_loaded(),
52 channels: dict[str, VelbusChannel],
54 """Build diagnostics info for all channels."""
55 data: dict[str, Any] = {}
56 for channel
in channels.values():
57 data[
str(channel.get_channel_number())] = channel.get_channel_info()
dict[str, Any] _build_channels_diagnostics_info(dict[str, VelbusChannel] channels)
dict[str, Any] async_get_device_diagnostics(HomeAssistant hass, ConfigEntry entry, DeviceEntry device)
dict[str, Any] _build_module_diagnostics_info(VelbusModule module)
dict[str, Any] async_get_config_entry_diagnostics(HomeAssistant hass, ConfigEntry entry)