This is how I’ve done it with my Smart bulbs and Smart Switches.
For Smart Bulb’s I use bulbs that are flashed with ESPHome - KaufHa & AtHom.
Any Smart Bulb that can be integrated into HA would do but with the ESPHome types they are completely local.
For Smart Switches I use Lanbon L8 that are programmed with openHASP. These switches replaces the so called dumb-switches I had before. In design they are pretty nice and comes pretty close to an actual physical switches that has a physical button or paddle for control. The Lanbon has a small display (2.8”) which can be configured to show sliders, buttons etc. To mimic the physical button I’ve simply designed what looks like a button. Pressing this button sends a message to Home Assistant which then can turn on my Smart Bulbs. When I say turn on I really mean set brightness to something higher than ‘0’. Setting brightness to ‘0’ is how I turn off the light so my bulbs are always powered.
Because each bulbs are always powered they are always connected to WiFi and Home Assistant so even when the lights are “off” Home Assistant can still control them.
I find the approach to Smart Light almost perfect with a few “I wish I could do this as well”
The display needs to be woken up by pressing the surface of the display. In theory you could leave the display on all the time but I’ve chosen not to.
There is no tactical feedback when you press the button but lights reacts immediately so not too much of a problem either.
The switch does require Neutral and unfortunately I have a few places where I don’t have Neutral.
Finally - While they replace a single switch - if you have 2 or 3 switches next to each other it would not fit. That said - a single Lanbon L8 switch has 3 independently controlled relays so they can control 3 different power domains.
A few other things.
The Lanbon L8 does have a light guide that can be controlled via openHASP and thus Home Assistant (it’s called Moonlight) and it can be used whatever way you fancy. Fx - if you have access to light levels in your room you could turn on the moonlight if lights are off and the room is dark making it easier for anyone to locate switches.
With openHASP you not limited to only control the lights connected to the same power as the switch. Anything that can be controlled in Home Assistant (more or less) can added to the UI on the switch. Example - I have only a single switch to control my light in my garage which is located near the entrance to my house. I have a door in my garage to get into my backyard that has a switch to control backyard light but these 2 switches are far away each other and are not at all linked. However with the Lanbon L8 switch controlling my back yard light I added functionality so I also can control the garage light from it. And while I was at it - I included the ability to open and close my 2 garage doors as well.
Because I use Smart Bulbs and because openHASP supports this I have UI such that I not only can control the light and brightness from the switch. I can even control the color from the switch so if you are in the mood for green light no need to find your phone, unlock it, find the App, open the App and then find the place in the App where you control the color of your light.
Further - in some of my rooms I have more than one bulb as “the light” and when you turn lights on and off all bulbs lights up as you would expect. It’s just - it doesn’t have to be this way. If I need only the light from one bulb I can turn that on (or the others off) from the switch - just like you would be able to from Home Assistant.
Note that in the UI that I have implemented on the switch I do have included the ability to completely remove power and I use this in the rare occasions where something crashes to simply reboot the bulbs. I just made it difficult to get to so no-one accidentally turns off light that way.
And yes everything is local.
What else - the switch supports power monitoring which is nice. They come in versions for the US (I’m in California) and they come in EU and AU version I believe.
Be sure to avoid the SmartLife version. Pick the version that supports HomeKit but also note that once you install openHASP HomeKit support is gone.