In my previous post, I explained my viewes on “Easy” vs. “Good” home automation and what it takes for a system to be “Good”. So how does one actually accomplish this? You need the right brain, the right protocols and infrastructure, and the right devices. In this article I’ll explore the first of these, and will address the rest in subsequent posts.
What is the “Brain” and Why Do You Need One?
Most home automation systems require some sort of centralized “Brain” as part of the system. The Brain is the software that takes in inputs from various sensors and controls, runs automations and other scripts, provides some sort of UI to the user, and sends commands to various devices and services.
While it’s possible to have a completely distributed system with no central brain, this is uncommon and, in my opinion, limiting.
In most “Easy” systems the Brains live in the cloud on one or more manufacturer’s server. In a “Good” system, the Brain, or, far more commonly, the “hub”, lives in your house/apartment/office/etc. where it can connect to things locally and is entirely under your control.
There are a number of options for the hub. Some are proprietary, some are Free Open Source Software (FOSS).
Proprietary Hubs
Among the proprietary ones, Hubitat appears to be popular, and most likely to meet our requirement of being entirely local. However, being proprietary, I don’t know whether the manufacturer can brick the device.
There are also hubs from Wink and Vera that appear to be mostly-local, and I’ve heard that Samsung SmartThings now allows automations to run locally – I don’t know if that means it can be disconnected from the internet entirely.
The advantage to proprietary hubs is that they are all-in-one device, hardware and software, and may be easier to set up and configure than FOSS hubs. They may form a decent middle ground between “Good” and “Easy”.
FOSS Hubs
There are several free, open source, hubs out there today. The ones I’m aware of are Home Assistant, openHAB, Domoticz, LinuxMCE, and Ago Control. All 5 are software, requiring you to provide your own hardware to run. Some can be run on a one-board computer like a Raspberry Pi, all can be run on a stand-alone PC or Virtual Machine, some can be run in a Docker container.
I first encountered the world of FOSS home automation by way of LinuxMCE. This seemed like an excellent platform, but when I tried setting it up I found it to be problematic. It’s very resource intensive, in part because its main focus is less automation and more media distribution. It requires a dedicated PC or VM to run on, and frankly, seems a bit outdated today. While it has a good community, I found that they were unable to help me overcome what appeared to be very basic issues with installation.
Ago Control was an outgrowth of LinuxMCE, intended to be a lighter-weight automation-only system, but I know little about it. It doesn’t appear to be very popular.
openHAB is one of the oldest FOSS home automation systems, and appears to be quite good. However, it seems to have lost some popularity of late, leading to fewer new integration and less community support.
Domoticz also looks like an excellent system, although it seems to be less capable than openHAB or Home Assistant. Its followers love it though, and if it fits your needs it’s probably an excellent choice.
Finally, the system I prefer and use is Home Assistant. It’s an incredibly powerful home automation platform, capable of integrating with thousands of different kinds of devices and services. It is in very active development, with new integrations appearing weekly and a very robust and supportive community that’s able to answer most questions very, very quickly.
Most of us started with Home Assistant (HA) running on a Raspberry Pi – a $35 single-board computer. This works, and some users have stuck with the Pi for years. It’s a very cheap and easy way to get into HA, get things set up and working. Many of us later moved our HA systems to more capable hardware. While it’s not necessary, I do recommend doing so if possible. It can run on a standalone PC (many use small PCs like the Intel NUC or old laptops), as a VM under ESXi, Proxmox, or Unraid, or as a Docker container.
For me, the choice came down to openHAB or HA. I chose HA because it seems to be more actively developed and have a more active community. Also, openHAB is written in Java, while HA is written in Python. As I don’t much care for Java, that affected my choice slightly, in case I ever want to contribute to the project in the future.
Conclusion
So which should you choose? Well, obviously, you should follow my lead and get Home Assistant 🙂
More seriously, while I do think it’s the best option out there, it may not be the best option for you. Do some research, figure out what fits your needs. I don’t think you can go too far wrong with HA, openHAB, or Domoticz. Hubitat is probably also an OK choice, though I strongly prefer FOSS solutions.