I’m in the process of Developing Apps and drivers for Advantage Air MyAir ducted Airconditioning system. It has a similar hierarchy where it has 3 levels of device because the My Air Systems support multiple AC units (controllers) and each AC unit can have different AC zones.
MyAir AC -> Controller # -> Zones
So my architecture for my App and Drivers (in progress) is as follows:
App for discovery of MyAir AC Systems. Creates a Child App when it finds a MyAir System on the local subnet. Also performs rediscovery to make sure the IP of the system doesn’t change and updates the child App if it does.
-> Child App is for maintaining an inventory of each MyAir System (can have multiple AC units). The inventory creates a Parent Device based (in progress and needs further development) on the inventory for each AC unit (controller)
—> (Parent) Device which is effectively a master Controller and thermostat for the AC unit
—-> Child Device for each of the Zones. There are two types of devices because one is a Dumb on/off zone and the other acts as a Themostat Zone.
I’m currently at the stage were I have The discover App, and Child App Working. I have a stand alone Parent Device and Child devices working with a couple of known problems that when i complete the Child App managing the Parent device it should sort most of my known issues out. Squeezing in development time is a little tough so I’m a few months from probably finishing it all, but I have a direction and just need to work around the limits of the Hubitat System. All up I will finish the project with 2 Apps and 3 Drivers…learning groovy along the way (sysadmin background…so I’m naturally picking up and adapting my skills on the fly). Will my Apps/drivers work…yeah, could it be more efficient from a coding aspect…definitely.
So for your custom drivers, maybe have the App handle events that relate to the Home, that can interact with other Apps and treat your room devices as the parents? Just another way to approach it maybe?