SmartApp/DeviceHandler Architecture for Legrand Whole House Lighting

I’ve written a web service that runs on my home network to control my Legrand Whole House Lighting Hub. The Hub has a concept of Zones and Scenes; Zones are basically switches but there could be more than one switch that controls the light (e.g. top and bottom of stairs), and Scenes are pre-set power states and dimmer levels of multiple zones (e.g. Watch Movie scene turns off Kitchen lights and dims the Living Room lights to 20%). I have full control of the web service (which in turn just calls into my core library that does TCP commands to the hub).

I’m new to SmartThings and finding the whole programming side hard to understand… can someone suggest the best architecture for my Device/Device Handler/SmartApp (if needed) to list out the Zones and Scenes and have the user interact with them?

Ultimate scenario for me is that these Devices (scenes and zones) are available on my Harmony Elite, so when I press “Watch Movie” it’ll automate my entertainment system as it does today but also sees the scene through SmartThings and dims the lights. And alternatively I’ll speak to Google Home/Alexia and say ‘get my movie ready’ and it’ll do the same thing. A SmartApp for the lights is secondary as there is already an app from Legrand… the only thing I need an app for is setting up the IP Address and Port details of the Legrand Hub, although I can bake those into the web service config to make things simpler, maybe even avoid an app all together?

Zones are just switches (of type Dimmer or Switch) both can be on|off, and dimmers can have a dimmer level (0-100). Scenes are very simple, all you can do is “Run” the scene, the hub takes care of the changes needed in the lights.

As the number of Zones and Scenes can vary I’d like to avoid having the user setup the zones and scenes again, I can return the list in JSON from my web service, along with states. One of the core questions is; do I need to create a Device for each Zone and Scene, or can they all be part of one Device?

Any help appreciated! Links to examples would be super helpful, including any local web service access examples once I understand the target architecture I should be heading for… Thanks!

(Btw, maybe the Samsung Artik collaboration will eventually help me… but if I can get a local call from SmartThings hub to call my local web service running on my media server, then I’m sending TCP packets - much quicker than a round trip to the cloud)