It's not as shiny and takes more work than using the big name solutions (ie: Nest/Google), but the options are out there.
The RadioThermostat works over your choice of WiFi, Z-Wave, or Zigbee (pick up to 2 protocols). The cloud service is easy to setup and includes a convenient app, but the API is fully documented and compatible with a number of open source home automation servers. You can easily disable the cloud service if desired, or reconfigure it to point to a server of your choosing (local or remote).
I'd say it'll be another year or two for the various open source home automation servers to mature to the point that they'll be as convenient to setup as the commercial systems. For now, unfortunately, it's still very much a developers-only world of roll your own solutions, unless you happen to be using the same devices that are supported by a single software package.
I currently have a Z-Wave lights, RadioThermostat, a discontinued system providing leak and motion detectors over a custom serial protocol, TI SensorTags, RF blinds and LED lighting that I plan on controlling via my home server. The hardest part I'm finding is actually controlling the RF devices, while I've given up on the ebay LED light strip controllers and am working on custom Arduino-based controllers there.
Eventually I want to add a Smart lock to my front door to give me keyless entry, but I've yet to find a smart lock that I feel is both secure and not dependent on a third-party server literally holding your (master encryption) keys hostage so you can't freely create your own digital keys at will (looking at you, Kevo).