Stop Recommending Home Assistant for Home Automation

This post expands and refines on a comment I made in response to a blog post by Rob Dodson in which he explains why he ripped out a $9,000 automated home lighting system. His post centers around the Z-Wave device protocol, but touches upon Home Assistant, a popular open source control center for home automation devices.

About five years ago, I was looking for a home automation system to control my lights and security system. I choose Home Assistant as a controller on a Raspberry Pi to control Z-Wave devices.

  • Home Assistant is open source, aka free.
  • Raspberry Pis are cheap.
  • Z-Wave protocol is ubiquitous across many devices like switches and sensors.

Basically, it was a cheap solution that gave me a lot of flexibility beyond just controlling lights. I regret this whole decision whenever things go wrong, and it often does.

First off is Home Assistant. There is absolutely no way a non-Linux user would be able to use this software. Despite their claims and goals, it is not designed for the average user who even is fairly tech savvy. They have tried to be more user-friendly in the past year or two by moving a lot of admin functions to the web interface. However, so much troubleshooting inherently involves command lines in Linux, it is now in this obnoxious state where some operations need to partially be done in the web interface and then continued in the command line. For example, deleting a node. You have to initially “delete” it in the web app to clean things up, then manually remove them from the Home Assistant configuration files.

Another issue with HA is how they love to completely rewrite and break things for the sake of rewriting things. In my five years with HA, I have witnessed recommended install methods get created, rebranded, and deprecated (hass.io), complete overhaul of the UI architecture, complete overhaul of the Z-Wave architecture, and non-functioning items inserted as placeholders into the web interface for features to be implemented later. You *have* to read the release notes before updating. I’ve run into occasions where pip upgrades will break the whole setup. Good luck googling for answers in this environment when you have a problem. If the answer is more than a year old, it’s probably not relevant anymore.

“Well, just don’t upgrade,” you may say. The interface nags you when an upgrade is available. It is much softer now, but previously, it inundated you with security warnings about running an out of date version. If you’re an average user, who just trusts developers at face value, you’re going to upgrade. Because security!

We wouldn’t have to google problems so often if not for the documentation and terms. The documentation is not terrible, but it is not geared towards end users. Home Assistant abstracts out everything it touches into an entity and node. If you simply want to do X, you’ll have to identify what is the entity in your setup, and what is the node. When you add a Z-Wave device to your network, Home Assistant creates an entry for that one device in the user interface under Entities, Nodes, Switches, Z-Wave, and Devices. Five years later, and I still can’t tell you definitively what the difference is between the five.

It doesn’t help Home Assistant with how flakey Z-Wave and devices themselves are. If you want Z-Wave light switches, you’ll find three brands – GE, Honeywell, and Jasco. However, they are all Jasco. The first two (and maybe also some Leviton switches) are just rebranded Jasco. The first generation of Jascos are complete garbage. I’ve had a 40% failure rate with them. They’ll randomly die or fry in a power failure. So far, knock on wood, no failures with the second generation.

It’s extremely common for switches to misreport their state to Home Assistant, and Home Assistant can’t do anything about it. A switch may tell Home Assistant, “I am off” or “I am on,” but the actual mechanism to turn the light on and off may be broken. What’s Home Assistant supposed to do? Ask the switch, “Are you lying to me?” Home Assistant is trying to herd cats. This is a problem with not just home automation, but any technology that is built on a controller/worker architecture.

Home Assistant/Z-Wave delivered on my desire for a cheap and flexible option. Is it reliable? Nope. Is it easy to maintain and fix? Ha. All too often, I see recommendations for Home Assistant when someone asks, “I’m looking for a cheap home automation system.” Unless I know that person has experience in Linux, it’s a disservice to recommend Home Assistant. On the other hand, looking at other platforms and hubs, Home Assistant still gives you the most flexibility and consolidation. This really says more about the dismal state of home automation rather than praise for Home Assistant.

It’s 2020, and home automation is nowhere near “just works.”

Leave a Reply