I have covered many aspects of Home Assistant in the hundred or so articles on this blog. In doing so, I have come to realize that I never took the time to actually explain the very basics of what Home Assistant is and what it can do for you and your smart home.
This article shall serve as a starting off point for newcomers to the world of Home Assistant. I will cover the basics of what Home Assistant is, why local software is better than cloud software, and what the alternatives to Home Assistant are.
Please note that I am just an enthusiastic user and in no way, shape, or form affiliated with Home Assistant. I have also not contributed to the development of Home Assistant. I wouldn’t call myself an expert because there are many much more knowledgable people in the community. But I have been an avid user of Home Assistant for some time now, so I am not exactly a beginner either.
What actually is Home Assistant?
If I had to describe Home Assistant in as few words as possible I would say that Home Assistant is a Universal Home Automation Hub. Or perhaps Universal Home Automation Software would describe it better because Home Assistant isn’t an actual physical hub, it is just a piece of software. It is free to use, open-source, and, if you choose so, never has to connect to the internet.
The actual physical hub you use is your decision. A popular device for beginners is the Raspberry Pi. Though Home Assistant can run on just about any hardware and OS thanks to Docker. I’m running my installation on my Unraid server.
Home Assistant gives you the power of home automation without having to connect to any cloud services. So, you don’t have to expose your smart home devices to the internet and your usage won’t be tracked. Home Assistant is written in the popular Python programming language. And because that programming language is so popular there are many contributors contributing to the project.
The case against cloud services
Smart devices which connect to the cloud do have advantages such as an easier setup for the end-user and more control for the manufacturer. A device that connects to a remote server can also be tracked which allows the manufacturer to gather data which in turn can be used to adjust their marketing, sales, or whatnot. Whether you see that as an advantage or disadvantage is up to you.
Having devices connected to cloud services not only introduces unnecessary security concerns it also can make them useless in the case of an internet outage. Only a few systems, such as Philips Hue, keep working when the internet goes out. Without an internet connection, a majority of cloud-controlled devices will just stop working.
With devices that require the cloud to work there is also the risk of planned obsolescence or a company shutting down its servers. There have been many examples of this happening in the past couple of years.
In 2018 Logitech announced that they will shut down their Harmony Link service which meant that Harmony Link devices would stop working. IFTTT, a web service which can also be used for automation, recently announced that free accounts would be limited to just three automations. Revolv, the makers of a home automation hub, were bought up by Nest and their hub was made useless just shortly thereafter. There are more examples to be found and there will be more cases in the future.
Local is better
Home Assistant will, in theory, never go away. It is locally hosted and will only stop working when you pull the plug. No one working on Home Assistant has the power to disable any of your devices. And assuming you have a safe network, Home Assistant will always be more secure because no information leaves your home (unless you allow it to).
Because Home Assistant communicates through your local network and no data is sent to or received from the cloud, it will, in most cases, also be faster than any cloud services.
What can Home Assistant do?
The answer to that question isn’t a simple one because Home Assistant can do so much. It acts a central home or brain for all of your smart devices. Everything is connected to Home Assistant. That way it doesn’t matter if you use ZigBee lights from Philips, WiFi lights from Yeelight, or Z-Wave wall switches. In Home Assistant they are all light entities and can be controlled or used in automations.
Speaking of automations, Home Assistant doesn’t just control devices, it can automate your devices. Let’s say you have a movement sensor from Xiaomi and a Philips Hue light. Because both can be integrated with Home Assistant you can set the light to turn on when the sensor senses movement. And there are so many things you can automate. You can get a smartphone notification when a sensor detects a leak in your cellar, you can turn the lights red when your phone needs charging, you can set the lights to only turn on at 5% when you’re sleeping, and on and on.
And finally, Home Assistant gives your smart home a pretty face. The Lovelace UI, which is what the interface is called, is modern, sleek, and easy to use. The web interface acts as a central dashboard for all of your devices. You can control devices from it, monitor sensors and other entities such as the weather.
Is Home Assistant hard?
Getting started with Home Assistant is as easy as buying a Raspberry Pi 4 Model B (2 GB) and an SD card. For those interested, the full suggested hardware is listed on the Home Assistant website. But be warned, once you get hooked on it you’ll find a new self-hosted application you want to try daily. If you have some old hardware lying around at home it is effortless to get Home Assistant running on a Linux installation.
Home Assistant will auto-discover devices such as Chromecasts and those from the TP-Link Kasa line. Devices that aren’t auto-discovered either have to be added using the web interface or with a few lines of code. But fear not, Home Assistant uses YAML, a very basic language. In most cases, you will be copying the example from the Home Assistant website and just entering the required information.
Home Assistant is expandable
Just like many other smart home hubs, Home Assistant is expandable. You can buy a cheap Z-Wave or ZigBee USB stick, plug it in, enable it in Home Assistant, and start pairing lightbulbs, sensors, or whathaveyou.
I use ZigBee devices from IKEA, Xiaomi, and Philips. Were I not to be using Home Assistant I would need an individual hub from every manufacturer. But thanks to Home Assistant I can connect them all to a single and central controller.
Once you really get into Home Assistant you’ll soon realize that there is a whole community working on a number of unofficial add-ons, integrations, and cards for the web interface.
No official support but a great community
As a free and open-source product, Home Assistant doesn’t have any official support channel or call centres you can ring up. But Home Assistant does have one of the friendliest and enthusiastic communities I’ve ever come across.
How to access Home Assistant outside of the home?
Not everyone wants to keep everything local. There are valid reasons for wanting to access your Home Assistant from outside the home. And if you want to use the Google Assistant or Amazon Alexa to control your devices, Home Assistant will also have to be exposed to the web.
In this scenario you have two options: You can either set up internet access on your own or you can subscribe to Nabu Casa for $5 per month. Nabu Casa was founded by the founders of Home Assistant and the money they earn from subscribers is reinvested into keeping the lights on.
What are the alternatives to Home Assistant?
Perhaps you’ve heard of one or the other alternatives to Home Assistant. All the following applications serve a similar purpose in the smart home. Some of these services use the cloud and others keep all of your data locally. There are pros and cons to each approach.
SmartThings is a subsidiary of Samsung Electronics and their primary products include a free SmartThings app, a SmartThings Hub, as well as various sensors and smart devices. Compared to the other alternatives listed below, SmartThings is not an open-source project.
In late 2020, SmartThings announced that they would be pivoting entirely into software. Aeotec now sells a “Works as a SmartThings Hub” in Australia, Europe, and North America.
Homebridge allows you to integrate with smart home devices that do not natively support HomeKit. Homebridge can, similarly to Home Assistant, be run off of a Raspberry Pi. This project is only of interest to users of Apple’s HomeKit (which I am not).
Hubitat, which is closed-source but locally controlled is developed by ex-developers of SmartThings. Hubitat requires a hub and can’t be installed on generic hardware. It appears to be a good alternative if you find Home Assistant to be too intimidating.
In a similar fashion to Home Assistant, Domoticz is free and open-source software. I have no experience using this product but in my eyes, it looks to be more complicated than Home Assistant. From what I’ve read the biggest advantage Domoticz has over others is that it is very lightweight.
openHAB is another free and open-source application which boasts a large number of integrations (or add-ons as they seem to call them). It is developed in Java and runs on many different devices. Of the applications mentioned, it is the most comparable to Home Assistant.