I would not be too hung up on working only with HomeKit. There are a lot of alternatives out there, so I would suggest you do some research and figure out which automation system meets your needs first before diving in. I recently added a lot of home automation pieces to my house over the summer, so I'll share my experience.
I started by replacing two aging Honeywell thermostats with new units. I considered the Ecobee because it works with HomeKit. However, they do not support variable speed air handlers and are a bit dicey with whole house steam humidifiers, both of which I have in my HVAC system. So the Ecobees were out. I ended up going with Trane XL850 units, which work with my existing Trane HVAC gear seamlessly and are wifi enabled to work on the Nexia system. In addition to controlling the HVAC remotely, I get local weather and alerts via the internet right on the screen, and I can link into my HVAC service technician's network for diagnostics if he needs that.
Nexia is great, btw. They have an iOS app with voice control so you can use it with voice commands, as well as Geofencing. Nexia supports Z-Wave devices, and there are plenty of those. The Trane thermostats act as hubs for all the other devices. After the thermostats were installed, I added two garage door openers.
Regarding lights, my advice is to NOT use Hue lights in any light with a wall mounted switch like a ceiling light or an outdoor fixture. They may be fine in table lamps, but for wall or ceiling lights, they are a terrible solution IMHO because you have to keep the wall switch in the ON position in order to activate the Hue bulb. Instead, I recommend adding wifi switches to replace the regular wall switches that activate the lights. Leviton, Lutron, GE, and a few others make these, and you can get them at Home Depot or Lowes. Once installed, just add them to your wifi network.
I also added a couple of wifi enabled wall receptacles. The one I like best is outside near my front door, where I can plug in holiday lights and not have to use a separate timer. Yep, just add it to the wifi network and program it however you like. Now, the trick with this one was that in my town's building code, outside plugs need to be GFCI due to possible water hazard on outdoor plugs. However, there are no GFCI wifi receptacles. I searched and could not find any. So instead, I had my electrician install a GFCI breaker on that circuit, which meets code.
I next added a Kwikset motorized deadbolt to my garage door, and a sensor strip to our patio slider door. Now I can open the garage and unlock the door remotely, and tell if I left my slider open.
My advice is to start with a couple of basic devices and build out from there as your needs grow.