You can install Home Assistant using several different methods. I tried them all, for months, so you don’t have to do the same. Finally, I decided to stay with Home Assistant Supervised method as one of the easiest and probably the best one in my personal opinion.
Let me show it to you!
Table of Contents
What will you find in the article?
In today’s article we will talk about some Pros and Cons of all of the Official Home Assistant installation methods. After that I will install Home Assistant Supervised on a Raspberry Pi 4 as example.
Home Assistant Supervised can be also run on Intel-NUC, Odroid, and x86 PCs. Supervisor menu and Add-Ons are also working.
So stay tuned for the Pros and Cons of all of the official Home Assistant Installation methods or skip directly to the Home Assistant Supervised.
What are the official ways to install Home Assistant?
At the moment there are 4 official and supported ways to install Home Assistant:
- Home Assistant OS,
- Home Assistant Container,
- Home Assistant Core,
- Home Assistant Supervised.
All of them have some Pros and Cons.
Home Assistant OS method
The first official and supported installation method is called Home Assistant OS.
Home Assistant OS comes in a form of a ready to use images, that could be used on a Raspberry Pi, Intel-NUC, Odroid and so on. Or you can use this Home Assistant OS image to create a new Virtual Machine with VirtualBox or other similar software, exactly as I’m showing in this article 👇
The Pros here are a lot:
You’ll get fully functional Home Assistant with Supervisor menu and Add-ons, everything is supported and regularly updated.
As cons imagine the following scenario: If you boot the Home Assistant OS image let’s say on a Raspberry Pi or Odroid – you cannot use that device for almost anything else!
You get Home Assistant and that’s it!
Additionally you can install only the available Add-ons in the Supervisor store and nothing more.
If you want to have a Home Assistant dedicated device, then Home Assistant OS is probably the best installation method for you! Otherwise keep reading.
Home Assistant Container method
The second official and supported method to install Home Assistant is called Home Assistant Container.
Just like the Home Assistant OS I have a detailed tutorial about it that you can check right here👇
Home Assistant Container is really easy to install, everything is supported and regularly updated. The only requirement is to have up and running Docker client and Internet connection for the initial part.
If you want to quickly spin a new Home Assistant instance and remove it later without any complications this is the best way. I’m constantly using the Home Assistant Container method for my YouTube videos and the articles here, where I usually test something and then wipe everything and start all over again.
The big cons in Home Assistant Container is that you won’t get the Supervisor menu and Add-ons when using this method of Home Assistant installation.
Home Assistant Core method
Third method of the official and supported Home Assistant installations is called Home Assistant Core.
It is somehow similar to the Home Assistant Container, but this time Python virtual environment is used instead of Docker.
Again you will not have the Supervisor store and Add-ons. Also few more steps are needed for installing and updating in comparison to the Home Assistant Container method.
This method is the origin of the Home Assistant. I started with Home Assistant Core when I was a Home Assistant noob (back then it was called differently). I did my first steps using Home Assistant Core and this is how I got hooked to Home Assistant.
Later, I switched to the other methods and never looked back, but this Python based Home Assistant will always have a special place in my RAM ❤️
Home Assistant Supervised method
And the Forth and final method is called Home Assistant Supervised.
We have Supervisor menu and Add-ons here and we have the freedom to install Home Assistant Supervised on a lot of devices, without the requirement to dedicate them for Home Assistant only.
For example you can have a Raspberry Pi with Raspberry Pi OS on which you can watch YouTube videos and to have Home Assistant working in the background simultaneously.
But let’s see a real Home Assistant Supervisor installation on a Raspberry Pi right now.
How to Install Home Assistant Supervised
I will use Raspberry Pi 4 with 4GB of RAM with Raspberry PI OS running on a microSD card. You can use the same or you can use a SSD instead – exactly as described in this article👇
Of course you can use totally different device like Odroid, Intel NUC or even x86 or x86-64 desktop PC with Intel or AMD CPUs. As long as the device is having Debian or Debian based Linux distribution installed.
Home Assistant Supervised dependencies
These are dependencies needed to install Home Assistant Supervised. Do not worry that they are too much, we will install them all with several simple commands in a minute.
- Debian Linux 11 aka Bullseye (no derivatives) or Debian Linux 10 aka Buster (Buster will be deprecated soon)
Quick examination on some of the dependencies:
- Docker – we will cover this in details in a minute.
- Debian linux – We will not meet this in this article! We will use Raspberry Pi OS, which is Debian based linux, just like Ubuntu, Linux Mint and tens or even hundreds of others. As a result we will se the following label inside our Home Assistant ⬇️
Don’t worry too much about that label. I’m having my production / main Home Assistant installed that way with the same label for years now and I can assure you that nothing bad happened to me or my Smart Home.
Of course, if you wish you can install Home Assistant Supervised on Debian with exact the same commands as I will use below and you won’t have that unsupported label. The choice is yours.
Let’s install the dependencies now.
Use LAN Cable or Disable Wi-Fi randomization during the Home Assistant Supervised installation
Before you continue further I highly recommend to either plug the ethernet cable in your Raspberry Pi or to Disable Wi-Fi randomization. This is because the Raspberry Pi constantly change its IP when you are on Wi-Fi and you are messing with the network or rebooting.
Choose either of the following options and do it:
- Connect your device to your local network with Ethernet cable. Ethernet cable is only needed during the Home Assistant supervised installation and you can go wireless again afterwards.
- The other option is to Disable WiFi MAC randomization. This options is suggested from JH in the comments below, so all the credits goes to him 👍. To disable the WiFi MAC randomization, create the following file using the this command:
sudo nano /etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf
and paste the following content inside:
Save the changes and continue.
Install Home Assistant Supervised dependencies
Connect to the device where Home Assistant Supervised will be installed or open a Terminal there and execute the following to update your Operating System:
sudo apt-get update && sudo apt-get upgrade -y
Then, Install AppArmor, Network Manager, jq and the other dependencies:
sudo apt-get install jq wget curl avahi-daemon udisks2 libglib2.0-bin network-manager dbus apparmor -y
There is a chance to to receive some errors for missing dependencies. If that is the case try the following command:
sudo apt --fix-broken install
And reboot your device:
When everything is fine with the above installation of the needed Home Assistant Supervised dependencies, you can continue with the Docker installation.
Docker is the next thing that is needed for Home Assistant Supervised.
I will show you how to install it on a Raspberry Pi. If you have different device go to docker.com and check which is the best way to install it for your setup.
For the Raspberry Pi, execute the following to get the official Docker installation script:
curl -fsSL https://get.docker.com -o get-docker.sh
After that, start the script and enjoy the ride:
sudo sh get-docker.sh
We have to add our linux user to the Docker group, but that is easy. If your user is not pi as in the example below, just change the last part of the command by replacing pi with your username:
sudo usermod -aG docker pi
Alternative way to install Docker on other than Raspberry Pi OS
If you are not on Raspberry PI, try the following command which will download and install Docker on your Linux.
curl -fsSL get.docker.com | sh
How to check if Docker is installed correctly?
When everything above is finished, you can check if Docker is working by typing the following command:
If you see some digits showing your Docker version, then you can continue forward as Mel Gibson in Brave Heart movie (but without the unhappy end).
Install Agent for Home Assistant OS
This Home Assistant Agent was introduced by the HA crew not so long ago. The Home Assistant OS Agent is used for better communication between the host OS and the Supervisor and can enable new features.So, just install it and benefit later when there is something to benefit…
Download the latest Debian package from the Home Assistant OS Agent GitHub page at:
For Raspberry Pi 4 the needed package and the commands to download and install this package are the following.
sudo dpkg -i os-agent_1.2.2_linux_armv7.deb
TIP!: Have in mind that when you are doing this the current version may be higher (not 1.2.2 as stated above). Just get the latest version from the first link in this section..
Another example, if you are using regular 64bit desktop you have to execute the following command. And before that you have to get the respective package (os-agent_1.2.2_linux_x86_64.deb):
sudo dpkg -i os-agent_1.2.2_linux_x86_64.deb
No matter are you using Raspberry Pi OS or not you can check if the Agent for Home Assistant OS is installed correctly by executing this:
gdbus introspect --system --dest io.hass.os --object-path /io/hass/os
if you receive answer (in my case it was a lot of text starting with node /io/hass/os…) you are just fine.
Official Home Assistant Supervised installer
Finally, it is time to install Home Assistant Supervised.
We will use the official installer coming from the Home Assistant developers. That means this script will most probably stay around for more than a minute.
At the end of the day everything is official here. Including my newsletter, where you can receive articles like this one on a weekly basis.
Now Let’s go:
Get the official Home Assistant Supervised installer script:
Then install the package:
sudo dpkg -i homeassistant-supervised.deb
You will see a dialog asking you to select machine type:
These are the Home Assistant installer supported machine types:
TIP!: For example if you have x86-64 computer (these are most of the modern Intel or AMD CPUs) you have toselect generic-x86-64.
After installation of the
homeassistant-supervised.deb has finished you should see something similar:
First start of the Home Assistant supervised will take some time. After a minute or 5 or even 10 (be patient here) you can try to open a new browser/tab and type your device IP on port 8123 (default Home Assistant port). Example: 192.168.0.2:8123
If everything is successful, you should see the following screen:
That means everything is fine and you just have to wait some more 🤣 (around 20 minutes) for everything to finish.
At the end you will see the Home Assistant welcome screen and initial wizard where you can create a Home Assistant user, set a location, add discovered devices and so on.
Home Assistant is running now what?
Now, when you have your Home Assistant up and running it is possible and pretty normal to don’t know what to do next. Don’t worry, I’m here to help. You can check:
- My YouTube Home Assistant Playlist – LINK
- Or my Home Assistant category here in my website – LINK
What is the best Home Assistant installation?
While you are still waiting for the Home Assistant Supervisor installation to finish. Can you tell me which of the official Home Assistant installation is best for you and why in the comments section below.
I promise to respond you back.
Home Assistant Supervised Final Thoughts
As every other method Home Assistant Supervised is having some Cons.
If you don’t want to see the unsupported label in Home Assistant you have to use exactly Debian Linux and nothing else. Although, I didn’t find any differences between running Home Assistant on Debian and Raspberry Pi OS for example.
Also as you have full control over your OS you could easily break your Home Assistant installation by installing or removing some software. So you have to be a little bit more careful with that.
And pretty much that’s it, I didn’t find any other major cons of Home Assistant Supervised till now. If you know about some, let me know in the comments it will be very interesting to see them.
By the way, if you want to join a free Home Assistant webinar where I’m discussing the 4 official ways + 1 super easy and quick way to have Home Assistant – go to the link below and register to get instant access!
Stay safe and don’t forget – Home Smart, But Not Hard!
Thank you for reading, and I will see you in the next article.
- Download the appropriate image. VirtualBox (.vdi) ...
- Create the Virtual Machine. ...
- Hypervisor specific configuration. ...
- Start up your Virtual Machine. ...
- Install WSL. ...
- Install dependencies. ...
- Create an account. ...
- Create the virtual environment.
HA Supervised is a version of a HA installation that runs under Docker in the background. The typical user never even knows it's the case. But every function of HA Supervised is running in its own Docker container. If you install the Portainer add-on you can see all of them.How long does Home Assistant take to install? ›
Connect power to the Pi, and wait for the OS to boot. For this first boot, Home Assistant will download the latest version, which will take ~20 minutes.