Deciding on a home automation system

The first step to building your own home automation system is deciding what the major components will be. There are so many choices and so many different vendors that it can be overwhelming to decide what to do first.

I believe the right philosophy is to standardize of a few key technologies and build out using those. I have included affiliate links to the various pieces of hardware I have purchased and am using in my own home.

Some of the major technologies you need to decide on are:

  • What hardware will I use?
  • What hub will I use to control “all the things”?
  • What wireless communication protocol will I use?

Summary (i.e. get this)


The most important decision is what hub you will use to control your home automation. This is the most important decision because it will drive every other decision. You will have to decide what your goals are, how flexible the hub software is, how many integrations the hub has with 3rd party components and what kind of support you expect from the vendor.

Some of the major hubs are:

There are some additional hubs out there, but a key issue with them is the lack of integrations or lack of long term sustainability. A key place this could bite you is if the vendor decides to shut down support for their hub. This will kill future integrations and may completely shut down your home automation (if the hub depends on services the vendor must provide, like a cloud-based server). An example of this is the Lowe’s Iris system.

In my case, I wanted an open source system that was not dependent on any one vendor. This is mostly because I am software developer, so I have no fear of having to dig into the guts of the software and make tweaks (just ask my wife how many times I have had to dive into the PHP of her WordPress site to fix some odd bug!). The open source model helps ensure that the platform has long-term staying power because it is maintained by deeply interested people who work on it out of their free time. This also increases the likelihood of integrations working no matter what vendor is involved. Naturally, Amazon, Google & Apple don’t really want integrations between their various ecosystems because it is in their interest to keep you locked into their platform.

Therefore, for the ability to tinker with and see the source code, to increase the likelihood of long-term sustainability and have maximum integrations, I choose Home Assistant.


You will have to decide what hardware you want to use to host your hub. In many cases, this will be decided for you (Alexa runs on an Alexa device like Echo). For Home Assistant, you will have to decide what hardware to run your hub on. The most common configuration is to run it on a Raspberry Pi. You can easily buy any number of Raspberry Pi kits, I choose a kit made by Canakit, which makes many different kits for different use cases. I ended up buying a kit on Amazon, since I already had a Prime membership

Wireless communication

Finally, you will have to decide what wireless communications protocol you will want to use for your home automation equipment. Unless you are doing new construction, running lots of wires throughout your walls is probably not in the cards. Therefore, you will need wireless communication.

Many of the smart home devices you can buy tout their WiFi capabilities. This is supposed to be seen as a feature. I see this as a bug. WiFi was not meant to be used to handle the dozens of wireless communications of simple home automation equipment. Most people’s home routers cannot handle more than a few dozen clients (Linksys actually sets this at 50). You typically don’t want that many clients anyway, not without more substantial wireless hardware (Ubiquiti is my preferred home networking system and I will write a later blog post explaining why and how I have their equipment set up in my house).

Obviously, the industry has been dealing with this for a lot longer than the recent Smart Home craze, so there are 2 primary wireless protocols that are used, Z-Wave and Zigbee. Both of these are low power, wireless protocols that can be used to control smart home devices. Many vendors, in fact, sell different versions of their products that support one or the other. In general, I don’t see a compelling reason to choose one over the other; you can decide which one you prefer based upon the devices you would like to control. Z-Wave, in my mind, has better industry support and standardization, so that is the protocol I chose for my smart home devices. This is not to say that I won’t ever use Zigbee. I may eventually come up with a compelling use case or device, but I haven’t had to yet.

Therefore, you must have an antenna connected to your hub that can send and receive your given protocol. Many of the commercial hubs have this antenna already built in. In my case, since I went with the open-source Home Assistant system, I had to buy a separate Z-Wave USB stick to plug into my Raspberry Pi. I choose the Aeotec Z-Wave Gen 5 USB stick.