Separate energy classes does not work for integrated products?

I want to integrate a couple of hybrid inverters. They have both solar and batteries in one unit. There’s one unit that also has a EV charger built in. A device can only have one class so I can’t give it “solarpanels” && “battery” && “evcharger”.

I could have the user pair 3 separate devices, one for solar, one for battery, one for evcharger, but then it becomes a bit confusing when the user should for example force discharge the battery - would they do the change on the battery or on the inverter?

I can’t have 3 separate connections to the device, so I would have to have a single communication socket open in one of the devices (or the driver) and somehow patch data between devices through the driver?

The default measure_power and meter_power capabilities mean different things in the different classes. I could add them all as subcapabilities to a single sensor unit, but then it would not use the energy tab features fully as I could not add meterPowerImportedCapability three times to the energy prop?

What’s the Athom idea of how to best setup the driver.compose.json file for devices that have solar, batteries and evcharger all in one?

I made several devices in that case, one ‘main’ device (doing the API things) and child devices, just holding the data and flow triggers.
The main device is reading API data and is calling a function in child device.