custom_components/DIRECTORY to hold all the parts for a component?

I’ve built a (still-in-progress) module for Vantage control systems and for Ketra lighting systems. For ease of distribution and installation, I’d like to be able to put the files in self-contained sub-directories of .homeassistant/custom_components. E.g., as I understand it, right now they need to be co-mingled as:

.homeassistant/
      custom_components/
           vantage.py
           ketra.py
                light/
                     vantage.py     
                     ketra.py

But it seems better if it could be:

.homeassistant/
       custom_componentss/
              vantage/
                  vantage.py
                  light/
                        vantage.py
              ketra/
                  ketra.py
                  light/
                         ketra.py

That way I can just clone the repos for vantage/ and ketra/ each under custom_components, and pull those updates into the location. Obviously, it’s not a huge deal to write a little deployment script, but I’m wondering if I’m missing something about the preferred way of developing and distributing custom components.

Seems like a straightforward change to the loader would enable the segmented (instead of interleaved) structure.

Thoughts?

Hi gjbadros - I have a Vantage Controls lighting system that I would like to use with HA. Have you a working module that you would be willing to share?

Yep it works for my relatively complex DC file and I do plan to put it up on GitHub. Folks who have the system and can help finish and improve the code will encourage me to do it sooner rather than later (so of you’re reading this and that’s you, let me know!l, but I expect I’ll have time to prioritize getting an early version up within a month or so.

1 Like

PLEASE count me in. I’d love to be able to integrate my lights with everything else. I’ve played around with Wireshark to try and reverse engineer it a bit but I’m out of my depth.

I just posted about my Vantage module… I never did find much time to generalize this for external consumption, but see this post:

for pointers.