“What is Home Assistant?” That is a question I frequently see asked in the replies, whenever someone posts an impressive automation or script to Twitter or Reddit. This article shall serve as a starting off point for newcomers asking exactly that question. It will cover the basics of what Home Assistant is, and why local and self-hosted software is better than software relying on cloud services. To round things off, there will be a short comparison of Home Assistant and its most popular alternatives.
On Home Assistant Guide, I have covered many aspects of Home Assistant in hundreds of articles. 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. I see the importance of introducing new users to this fantastic platform, as it pressures vendors to open up their ecosystems and allow for better cross-platform integration.
Please take note that I am just an enthusiastic user and in no way, shape, or form affiliated with Home Assistant or Nabu Casa. I have also not contributed to the development of Home Assistant. What I am is an avid user of Home Assistant and I have been one for some time now, which I believe gives me the right to answer the underlying question of this article: What is Home Assistant?
Table of Contents
- What is Home Assistant?
- The case against cloud services
- What can Home Assistant do?
- Is Home Assistant hard?
- How to access Home Assistant outside of the home?
- What are the alternatives to Home Assistant?
What 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 Platform. 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. For example, I’m running my installation on an Unraid home server. To get started, you can use any existing hardware you might have lying around, such as an old laptop or desktop.
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 or sold to unknown, shady entities. It is not just those that are up to no good that you should be protecting yourself from. In the past, there have been reports of cloud-backed security cameras suddenly broadcasting to random accounts, due to the developer’s negligence.
Home Assistant is written in the popular Python programming language and hosted on GitHub. Due to Python’s popularity and the ever-increasing Home Assistant user base, there are many contributors contributing to the project. As of writing, there have been over 2,700 in total.
With that, we have answered the first part of the question “what is Home Assistant?”: It is a hardware-agnostic, universal home automation software, written in Python and capable of being installed on most modern operating systems. Next, I will detail the flavours Home Assistant comes in.
What is Home Assistant Core, Supervised, and Operating System?
Home Assistant comes in multiple forms, namely Core, Supervised and there is also the Home Assistant Operating System. But what are the differences between these Home Assistant options? Let me explain as quickly as possible. If you want more details on the differences, you might be interested in my in-depth article on the topic.
What is Home Assistant Core?
Home Assistant Core is always present, regardless of which option you go for. As the name suggests, it is the core application itself. Using Home Assistant Core, you can write scripts, set up automations, and add integrations. If you are planning to run Home Assistant in a Docker environment, the Home Assistant Core container is what you will go for. But, Home Assistant does not come with a Supervisor and as such does not support add-ons, and it can’t be updated from within Home Assistant.
What is Home Assistant Operating System?
The Home Assistant Operating System is a minimal operating system optimized to power Home Assistant. It can either run on bare metal, for example on a Raspberry Pi, or on a virtual machine.
This option is by far the easiest and, thus, best for beginners. It includes the Home Assistant Supervisor, which gives you access to Home Assistant add-ons. A Raspberry Pi with Home Assistant is how I started out, and it is what I recommend as a first setup. Other platforms the Home Assistant Operating system can be installed on are:
The latter option is popular with those who need some extra oomph after starting out with a Raspberry Pi. The Intel NUC series of mini-PCs have powerful and efficient CPUs, expandable RAM and storage, and fit inside a case not much larger than a couple of stacked DVD cases.
If you opt for the Home Assistant Operating System, you are not alone. Despite being the best option for beginners, advanced users will also use the same option. Home Assistant Operating System is the most popular installation option.
What is Home Assistant Supervisor?
If you want to have access to Home Assistant add-ons, but don’t want to run the Home Assistant Operating System, then the Home Assistant Supervisor is for you. As this is not a recommended setup, while also being quite complicated, I will not be detailing it here.
What is Home Assistant Blue and Home Assistant Yellow?
In more recent years, the team behind Home Assistant has been producing their own, dedicated hardware. The first release, Home Assistant Blue, used an ODROID-N2+ single-board computer inside a custom case, with the Home Assistant Operating System preinstalled. For storage, it has a 128 GB eMMC SSD and 4 GB of DDR4 RAM to make sure everything runs smoothly.
The upcoming Home Assistant Yellow, previously named Home Assistant Amber, is built on top of the Raspberry Pi Compute Module 4. The Compute Module 4 sits on top of a custom-built board, which includes a Zigbee radio chip from Silicon Labs. That chip will also support the upcoming Matter smart home connectivity standard once it is finalized. An M.2 extension port allows you to add heaps of storage, and a heat sink makes sure the SoC stays nice and cool.
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, in the worst-case scenario, be sold.
Having devices connected to cloud services not only introduces unnecessary security concerns, it also can make them useless if your internet drops. Only a few systems, such as Philips Hue, keep working when the internet goes out. Without an internet connection, most cloud-controlled devices will just stop working.
Another risk you could run in to with devices that require the cloud to work, is planned obsolescence or a company shutting down its servers. There have been many examples of this happening in the past couple of years. For example, Logitech announced in 2018 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, who made the hubs customers had bought with their hard-earned money useless. There are too many scenarios to mention them all, but one thing is for sure, there will be even more in the future.
Why local with Home Assistant is better
Home Assistant will never go away. It is locally hosted and will only stop working once 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).
Even if the development of Home Assistant were to cease, which is hopefully not happening anytime soon, you could continue using it, and, if you wanted to, continue developing. As open-source software, you can modify the underlying code however you want.
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 many things. In broad terms, there are three main functions Home Assistant adds to your smart home:
- Home Assistant integrates and connects devices using different protocols and from different vendors.
- A smart home isn’t smart if nothing is automated, and Home Assistant provides you with a mighty automation engine.
- While automations are nice, there is still a place for control and observation. Thankfully, Home Assistant has a slick web-based dashboard and apps for mobile devices.
What is Home Assistant? Home Assistant connects your devices, operating systems, and apps
The first thing you will want to do with Home Assistant, is to integrate all your existing devices. Currently, Home Assistant supports over 1,800 integrations from a broad variety of categories. When using Home Assistant, it doesn’t matter if you use Philips Hue Zigbee lights, Wi-Fi LED strip controllers from Yeelight, or a lamp retrofitted with a Z-Wave wall switches. Home Assistant is capable of communicating with each platform and sees them for what they are: lights.
What is Home Assistant? Home Assistant is a powerful automation engine
Home Assistant doesn’t just integrate and control devices, you can create automations. It gives you to ability to toggle a Wi-Fi capable bulb using a Zigbee bulb. It can send a notification to your Windows if your Android phone is low on battery. And it can dim your IKEA bulbs when watching a film on Plex. The latter example is another where Home Assistant can be much more useful than proprietary systems: It doesn’t just integrate with physical devices, but also numerous applications and services. For example, you could limit Transmission’s download speed whenever you are home, or someone is streaming from your Plex server. You can recreate the “Bitcoin is volatile” scene from Silicon Valley by integrating the Bitcoin network.
What is Home Assistant? Home Assistant is a central dashboard for everything
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 (minimum 2 GB of RAM, more recommended) and an SD card. For those interested, the Home Assistant website lists the suggested hardware. 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 numerous 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 from 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.
Similarly 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 have read, the biggest advantage Domoticz has over others is that it is very lightweight.
openHAB is another free and open-source application which boasts numerous integrations (or add-ons as they seem to call them). It is developed in Java and runs on many devices. Of the applications mentioned, it is the most comparable to Home Assistant.