Any way to generate a visual relationship map for entities, devices, etc?

After configuring in hundreds of devices, entities, automations, scripts etc I find myself struggling to remember which objects relate to each other.

A typical example is when I create an esp32 configuration for a Bluetooth relay to control a Bluetooth device, that will be managed by an automation that’s triggered by a user interface button.

In practice as far as the user is concerned, they press a button. And light goes on. So that’s good. But beneath the covers there are at least a dozen configuration variables that are arbitrarily named by me, or automatically generated, to identify some aspect of some component of some configuration item in all the objects and layers involved in this action.

And while I try to maintain some standard naming convention, at times I simply lose track of what thing is related to another thing. I have to manually remember that:

  • the Bluetooth device has a hex identifier of xx:xx:xx:xx:xx:xx
  • the Bluetooth friendly name of this device
  • the esp32 device name I generated to manage this device
  • the esp32’s IP address and name
  • the entity IDs
  • the device the entities relate to
  • the device name
  • how they relate
  • the automations that use these
  • the yaml device id in the automation
  • the yaml entity id in the automation

etc.

the list goes on and on, is different for each aspect of the numerous configuration items scattered and embedded throughout HA, and becomes exponentially complex when trying to understand the relationship between them all without manually walking through dozens of clicks to view disparate settings. Where I inevitably get lost.

It’s all a big mess I’m afraid. And while I can work through much of this the old and highly inappropriate way by use of arbitrary naming conventions and a spreadsheet, the correct way from an ITIL architecture management point of view is to have a relationship or architecture map that’s generated from existing data, and not by hand.

In the ideal world this would result in a visual map of all the objects and their interrelationships.

This map, or even just a csv file, would allow me to view my entire configuration in a consistent and systematic way and facilitate naming standardization. I could also use it to quickly locate objects of interest and identify the related objects.

Does such a tool exist?

I doubt it very much.

As a starting point you might have a look at the Device Tools integration from HACS:

This is fairly new and still in development, but it allows you to create “virtual” devices to group entities together. For example, I use the Bayesian integration to estimate the probability of the house being occupied. This involves a number of template binary sensors, which I have collected into a “device” (you have to give the template sensors unique ids so that they can appear in the UI):

The Watchman integration from HACS is a useful way of identifying missing entities:

And there are various integrations for tracking batteries and the like.

By combining these with good naming conventions and a lot of !includes in configuration.yaml I’ve managed to keep a lid on things, but I don’t think there’s anything comprehensive - let alone visual. :worried:

Edit: These are all tools within HA, of course, which I suppose defeats the purpose. I already spend hours flipping backwards and forwards between dashboards etc. and often have HA open in two different browsers :roll_eyes:. But an external database of some kind would just be another monster to maintain…