What is Home Assistant in 2022?

Disclosure: This post contains affiliate links. If you click through and make a purchase, I will earn a commission, at no additional cost to you. Read my full disclosure here.

A modern smart house with the lights on.

In this guide, I'll break down the basics of Home Assistant and how it could potentially revolutionize your life. I'll also shed some light on why local and self-hosted software reigns supreme over cloud-based services. And to top it all off, I'll throw in a quick face-off between Home Assistant and its top competitors.

Just a heads-up, though. I'm not on the Home Assistant payroll, nor am I part of the Nabu Casa team. I haven't contributed to the development of Home Assistant, either. What I am, however, is a die-hard user—a fan if you will. I've been using Home Assistant for a good while now, and I reckon that puts me in a pretty good position to answer the burning question: What is Home Assistant, anyway?

Contents

Screenshot of a Home Assistant Dashboard. The left panel shows 'Scenes & automations' with toggles for 'Sunrise alarm' and 'Office lights', indicating that both are on. The central panel is labelled 'Lights', displaying sliders for 'Office lights', 'Ceiling lamp', and 'Window strip' set to 100%, and a 'Desk strip' at 30%. There's also a 'Desk switch' with a power consumption reading of '120.83'. The bottom section is titled 'Media' with controls for an 'Office speaker' and a 'Text to speak' input field. On the bottom right, a user 'Liam Alexander Colman' is shown as 'Home' with a green indicator.

What is Home Assistant?

In the simplest terms, Home Assistant is like the unsung superhero of your smart home setup. Picture it as a universal translator, where it's not exactly a hub in your smart home ecosystem, but a nifty piece of platform-agnostic software, with Python as its mother tongue. Thanks to Home Assistant, you can make different smart platforms that normally wouldn't give each other the time of day, work in perfect harmony. Imagine, Philips Hue, LIFX, Nanoleaf, and Xiaomi all dancing to the same beat, all under the command of Home Assistant's interface. Say goodbye to juggling multiple apps just to create that perfect cosy ambiance at night.

But that's just the tip of the iceberg. Apart from manual control, Home Assistant takes the term automation to a whole new level. We're not talking about bossing your voice assistant around. For instance, a Shelly motion sensor can fire up your Yeelight bulb, or your robot vacuum cleaner could spring into action the moment your house becomes an empty nest. If you've been on the fence about Home Assistant due to tales of complex YAML coding for automation, take heart. Recent updates have turned Home Assistant into a friendly neighbourhood code-whisperer, making the creation of automations a breeze.

What Ist Home Assistant 04
Screenshot of the 'Triggers' configuration section in the Home Assistant user interface. It includes an introductory text explaining that triggers start the processing of an automation rule. The configuration section below shows a 'Trigger type' dropdown set to 'Device', with the specific device listed as 'Office chair occupancy'. Below that, the specific trigger condition is described as 'Office chair occupancy became occupied' with no duration specified, indicating an immediate trigger. There is an option to 'Add Trigger' below.

If Home Assistant isn't a hub, where does it run?

The heart of your Home Assistant setup can be anything you've got on hand. For those just getting their feet wet in the world of home automation, the Raspberry Pi, particularly the Raspberry Pi 4 Model B, is a common starting point. This little beast has had some serious upgrades to its USB and networking capabilities over its predecessor, making it a solid choice for running Home Assistant. But don't fret if you don't have one because Home Assistant is pretty versatile – it can run on any hardware that can handle Docker containers.

To give you a slice of my own tech pie, I've got my Home Assistant, or Home Assistant Container to be more precise, humming away on an Unraid home server using Docker. But the beauty of this system is in its flexibility – you can also have the Home Assistant Operating System (we'll delve into that a bit later) running as a virtual machine. If you're not keen on shelling out any cash just yet, you can even repurpose some old tech gathering dust in your drawer. An old laptop or desktop can serve as a great Home Assistant system – if it can run Linux, it can run Home Assistant. So, don't be afraid to give that old gear a new lease on life.

Home Assistant rests not on a cloud

With Home Assistant running on your hardware and being connected to your network, it is truly yours, not like other home automation services that require you to use what they have chosen. To further solidify the true ownership of Home Assistant, it requires no cloud services. You can cut off Home Assistant from the outside world, and it will continue functioning. Similarly, development could cease today, and what you have already set up will continue working.

It's not just the hardware that is yours, but also the data stored on it. If not set up to do otherwise, Home Assistant will never call home. Your analytics data won't be sold to any shady entities. If you think of having your most valuable data exposed to the internet isn't a big deal, it's worth noting that there have been reports of cloud-backed security cameras suddenly broadcasting to random accounts, due to the developer's negligence.

There is a voluntary analytics program, you can opt in to. This tracks how many active installations of Home Assistant there are, and which integrations are being used. The data you share is not used to advertise products or show you targeted ads. It does help the developers of Home Assistant in making decisions on whether certain integrations should remain maintained or be phased out. As Home Assistant is free software, I do encourage new users to share their data in return for being able to use Home Assistant without paying a penny or having to view any ads.

What Ist Home Assistant 06 Edit

What programming language is Home Assistant written in?

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,800 in total.

With that, we have answered the first part of the question “what is Home Assistant?”: It is hardware-agnostic, universal home automation software, written in Python and capable of being installed on most modern operating systems.

The case against cloud services

Smart devices which connect to the cloud do frequently 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 and privacy concerns, it also can make them useless if your internet cuts out. 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.

Image of a Philips Hue smart bridge. The device is square with rounded corners, primarily white, with a large circular button in the centre illuminated with a blue light. Above the button are three small icons indicating power, internet connectivity, and bridge status. The Philips logo is prominently displayed below the central button.

The cloud makes subject to economically driven decisions

Other risks you face when using devices that require the cloud, are planned obsolescence, a company shutting down its servers, or going bust altogether. 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 bricked the hubs customers had bought with their hard-earned money. There are too many scenarios to mention them all, but one thing is for sure, there will be even more in the future.

An image depicting a smartphone displaying a smart home control app alongside a Revolv smart home hub. The phone's screen shows a 'HOME' dashboard with various controls such as 'hub', 'front door', 'Sonos', 'arriving home', 'date night', 'vacation mode', 'garage door', and 'thermostat', accompanied by corresponding icons. There is a timeline of recent activities like 'Turning on lights' and 'Adjusting the thermostat'. The hub in the background is glowing with a red light, indicating it's powered on and active.

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 securer 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 isn’t simple 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 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 2,100 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 lamps retrofitted with Z-Wave wall switches. Home Assistant is capable of communicating with each platform and sees them for what they are: lights.

Home Assistant has a powerful automation engine

Home Assistant doesn't just integrate and control devices, you can create automations. It gives you the ability to toggle a Wi-Fi connected bulb using a Zigbee motion sensor. It can send a notification to your Windows if your Android phone is low on battery. And it can dim your IKEA TRÅDFRI bulbs when watching a film on Plex.

The latter example is another case 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 also recreate the “bitcoin is volatile” scene from Silicon Valley.

Home Assistant is your central Dashboard for everything

And finally, Home Assistant gives your smart home a pretty face. The Dashboard, previously called Lovelace UI, 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, or your current solar production.

What Ist Home Assistant 07
Screenshot of the Home Assistant Dashboard displaying a weather forecast. The current temperature is 20.8 °C in Buchs with cloudy conditions. The daily forecast shows a high of 27.4 °C and a low of 16.1 °C, with 70% humidity, 0 mm of precipitation, and 25% cloud cover. The hourly forecast displays temperatures ranging from 21 °C at 10:00 to 27.2 °C at 16:00, decreasing to 21.9 °C by 20:00. The five-day forecast shows varying weather, with Wednesday being cloudy, Thursday and Friday indicating rain, and the weekend partly cloudy, with temperatures fluctuating between 11.8 °C and 27.4 °C.
A screenshot of the Home Assistant Dashboard showing a media player card displaying the currently playing song 'No Surprises' by Radiohead. There is a volume control slider, media playback controls, and a 'Text to speak' input field with a send button. The album cover for Radiohead's 'OK Computer' is partially visible in the background.

Is Home Assistant difficult?

Home Assistant might be harder to get into than other, payed-for alternatives. But once you get to grips with the basics, Home Assistant is much more powerful and boasts more integrations than the alternatives. With the most recent releases, Home Assistant has made strides in terms of user-friendliness. Many integrations can now be configured using the web interface, and there are easy-to-use editors for scripts and automations.

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 will 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.

Screenshot of a YAML configuration file for Home Assistant. It contains directives for setting up a default configuration for the frontend, API, and other components. The configuration specifies themes with 'include_dir_merge_named themes', packages, customization files, and scenes with 'include scenes.yaml'. It also features a text to speech configuration using the Google Translate platform and a section for video streaming with 'stream:'.

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, Aqara, 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 will soon realize that there is a whole community working on numerous unofficial add-ons, integrations, and cards for the Dashboard.

Home Assistant has 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 have ever come across.

What Ist Home Assistant 15 Edit

How to access Home Assistant outside 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 intend 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 using a service such as Duck DNS, or you can subscribe to Nabu Casa for US$6.50 per month. The founders of Home Assistant started Nabu Casa, and the money they earn from subscribers is reinvested into keeping the lights on and supporting development of their product.

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 – Same goal, different 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. Different to Home Assistant and other alternatives, SmartThings is not an open-source project. It is also reliant on cloud services, and won't function without an internet connection.

In late 2020, Samsung announced that SmartThings would be pivoting entirely into software. Aeotec now sells a “Works as a SmartThings Hub” in Australia, Europe, and North America.

Homebridge – Bringing HomeKit support where there is none

Homebridge allows you to integrate with smart home devices that do not natively support HomeKit. Examples include Nest Cameras from Google, UniFi Protect, Ring, and Belkin Wemo. Homebridge can, similarly to Home Assistant, be run from a Raspberry Pi and many other operating systems. This project is only of interest to users of Apple’s HomeKit (which I am not).

Although Homebridge does have a web-based interface, it isn't intended to be the equivalent of the Home Assistant Dashboard. It does let you see the status of your various devices and plugins, but the main interface is Apple's Home app.

Hubitat – A closed-source alternative

Hubitat, which is closed-source but locally controlled, was created by ex-developers of SmartThings. Hubitat requires a Hubitat Elevation® hub (~US$150) and can’t be installed on generic hardware. It appears to be a suitable alternative if you find Home Assistant to be too intimidating, though I can't claim to have any personal experience.

What Ist Home Assistant 13 Edit

Domoticz - Smaller community, fewer releases

Domoticz first appeared around the same time as Home Assistant and was also founded by a Dutchman. The similarities don't stop there. Domoticz is free and open-source software and can run on various systems. Each commit to the code is checked and reviewed by the founder, and over 330 developers have contributed in one way or the other.

I have no experience using Domoticz, but from studying screenshots and videos, it looks to be more complicated than Home Assistant to set up. All in all, Home Assistant is currently the stronger platform with more frequent releases, a bigger user base, and many more contributors. Domoticz is primarily written in C++, as opposed to Python.

What Ist Home Assistant 11 2 2
What Ist Home Assistant 12 2

openHAB – A different approach to automations

openHAB is another free and open-source application which boasts numerous integrations (or add-ons as they call them). It is developed in the Java programming language and runs on many devices and operating systems. Of the applications mentioned, it is the most comparable to Home Assistant.

The official openHAB logo

One big difference to the other alternatives I have listed is that openHAB does not use its own automation engine. Instead, it relies on Blockly, a visual programming editor developed by Google. This does have the advantage of not having to reinvent the wheel, when something that does the job already exists.

As with Domoticz, I have not tested openHAB. Similarly, stable releases aren't as frequent as Home Assistant, and it also has fewer contributors.

A screenshot of Blockly, a web-based, graphical programming language developed by Google.

Frequently asked questions

In the simplest terms, Home Assistant is a universal translator, where it's not exactly a hub in your smart home ecosystem, but a nifty piece of platform-agnostic software, written in Python. Thanks to Home Assistant, you can make different smart platforms that normally wouldn't give each other the time of day, work in perfect harmony. Imagine, Philips Hue, LIFX, Nanoleaf, Xiaomi, and more all commanded by Home Assistant's interface. Apart from manual control, Home Assistant takes the term automation to a whole new level. For instance, a Shelly motion sensor can fire up your Yeelight bulb, or your robot vacuum cleaner could spring into action the moment your house becomes an empty nest.
The central component of a Home Assistant setup can be any available device. For beginners in home automation, a commonly used device is the Raspberry Pi, specifically the Raspberry Pi 4 Model B. This device has been significantly upgraded in terms of its USB and networking capabilities compared to older models, making it a reliable option for running Home Assistant. However, if you do not have a Raspberry Pi, Home Assistant can also run on any hardware that supports Docker containers.
Home Assistant operates on user-owned hardware and is connected to the user's personal network, unlike other home automation services that necessitate the use of pre-selected hardware. Home Assistant does not rely on cloud services for its operation, allowing it to function independently even when disconnected from external networks. Even if future development were to cease, the existing setup would continue to function without interruption.
Home Assistant is coded in the Python programming language and is available on GitHub. Given the widespread use of Python and the growing Home Assistant user community, numerous contributors have made additions to the project. To date, the project has received over 2,800 contributions.
Devices connected to the cloud often offer benefits such as simplified setup for the user and increased control for the manufacturer. These devices can be tracked when connected to a remote server, enabling manufacturers to collect data for marketing, sales adjustment, or potentially for sale in extreme circumstances.

However, such cloud-connected devices can also pose security and privacy risks, and may become inoperative if the internet connection is lost. Some systems, like Philips Hue, remain functional without the internet, but most devices reliant on cloud control cease to work without an internet connection.

Home Assistant may initially present a higher learning curve compared to its paid counterparts. However, once the basic understanding is established, it offers more robust features and a wider range of integrations. Recent upgrades have enhanced its user-friendliness. A number of integrations can now be set up using the web interface, and scripts and automations have simplified editors. Home Assistant can automatically detect devices like Chromecasts and those from the TP-Link Kasa range. Devices not auto-discovered can be added via the web interface or with a few lines of code. Home Assistant employs YAML, a relatively simple language. Typically, users will replicate examples from the Home Assistant website and input the necessary information.
There are two alternatives for internet access: one is to set up independently using services like Duck DNS, and the other is to subscribe to Nabu Casa for a monthly fee of US$6.50. Nabu Casa was initiated by the founders of Home Assistant, and the subscription fee is used for operational costs and further product development.
A portrait photo oif Liam Alexander Colman, the author, creator, and owner of Home Assistant Guide wearing a suit.

About Liam Alexander Colman

is an experienced Home Assistant user who has been utilizing the platform for a variety of projects over an extended period. His journey began with a Raspberry Pi, which quickly grew to three Raspberry Pis and eventually a full-fledged server. Liam's current operating system of choice is Unraid, with Home Assistant comfortably running in a Docker container.
With a deep understanding of the intricacies of Home Assistant, Liam has an impressive setup, consisting of various Zigbee devices, and seamless integrations with existing products such as his Android TV box. For those interested in learning more about Liam's experience with Home Assistant, he shares his insights on how he first started using the platform and his subsequent journey.

Comments

  1. This is the best Home Assistant article I’ve found. So many jump to the technical aspects without explaining what something is or does. Imagine giving a cowboy a Tesla car in the 1800s. The cowboy isn’t dumb but can’t appreciate the vehicle.

    Thank you for your knowledge and writing skill. To really know, you must teach.

    Reply

Leave a comment

Share to...