Best is a subjective term with home automation, but I'm very happy with my Fibaro system of dimmer modules. They accept commands from normal light switches, so grandma can turn the lights on. They accept commands via a webpage, so any kind of browser can turn the lights on. They accept commands from the fibaro app on iOS and android, so my iPad can turn the lights on and they apparently accept commands via HomeKit (a homebridge adapter is required) so Siri could turn the lights on.
Fibaro lighting control is via a matchbox sized module that sits in series with the lightbulb. It can be placed inside a switch back box or the ceiling depending on how your house is wired. It can work with normal flip flop switches but works better if you swap the switches for retroactive ones (ones that let go when you stop pressing, like a doorbell)
There is a hub in my system; fibaro home centre lite, it has some programming capabilities so it could e.g. Dim the lights and roll the blinds down when I hit play on a movie in Kodi.. the same hub can have a program for random lighting.
The hub is necessary for controlling the lights via wifi/internet. The modules that do the dimming must be paired with it and then the hub will emit the zwave control commands when interacted with over a network. Newer fibaro dimmers also track power consumption of the connected lights, if you care about that sort of thing. Older dimmers calculated it; you told the dimmer how many watts of lighting you had connected and it reported consumption based on the output percentage duty cycle multiplied by declared wattage connected..
Would I get a smart lighting system so I could turn some lights on randomly when on holiday..? No. There are timers with random functions available from the pound shop(virtually) for that. Would I get a smart lighting system so I can climb into bed, think "*******s, I forgot to turn the kitchen lights off" and a single swipe of a thumb/ask Siri to do it/triple click the bedroom light switch to turn all the house lights off? Yes. It also simplifies multi switch control. I can have ten switches controlling one bulb, and only need one bit of 2core cable