You can mix & match with the right selection of components. I use the following, and I won't hesitate to recommend it:
- For generic Home Automation stuff, use Z-Wave: a non-open radio protocol that has proven to be pretty robust. Z-Wave devices form a mesh network so range generally isn't a problem. And with the latest version of the standard, some security has been added as well. There are tons of items out there: switches, dimmers, thermostats, locks, sensors, remotes, and so on, from many brands, in many ranges of prices and quality.
- You need a Z-Wave hub, and again you have several choices that do not require the cloud: Homeseer (reliable but you get nickle & dimed to death for addons, and it's less accessible to tinkering), Vera (pretty reliable, and best of all it is open to tinkering. You can write your own plugins for this hub and there is an active community of plugin developers), or OpenHAB + a Z-Wave stick (Open! But using it is still somewhat reminiscent of installing Linux in its early days). I am currently using a Vera hub
- Your hub needs to be able to address non Z-wave devices. Most hubs do this with plugins, allowing you to include these in your setup: WiFi-enabled thermostats, Philips Hue bulbs, Alarm systems, anything networked that has an API, really.
- For your DYI devices, use Arduino + a NRF24L01 radio module running the MySensors libraries. MySensors is an open DYI project using Arduinos, having them form a reliable mesh radio network (way better than WiFi), and you can build pretty much anything you can imagine with it, usig the libraries and a handful of lines of code. MySensors interfaces nicely with Vera, there's a plugin that will expose MySensors devices like switches and sensors as native Vera devices, allowing you to use them in scenes. For the MySensors gateway to be used with Vera, I recommend using an Ethernet Arduino for maximum reliability.
Oh, and for anything that needs to be somewhat reliable, avoid WiFi devices. WiFi is not a very good HA platform.