Last updated on February 10th, 2021 at 09:13 am
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!
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.
- Docker CE >= 19.03
- Systemd >= 239
- NetworkManager >= 1.14.6
- AppArmor == 2.13.x (built into the kernel)
- Debian Linux Debian 10 aka Buster (no derivatives)
Quick examination of the dependencies:
- Docker – we will cover this in details in a minute.
- Systemd – we already have this in Raspberry Pi OS (and all Debian based Linux Distributions).
- NetworkManager and AppArmor will be installed/updated within less than 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 over a year now and I can assure you that nothing bad happened.
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.
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
Install AppArmor, Network Manager and jq:
sudo apt-get install network-manager apparmor-utils jq -y
And reboot your device:
We can continue with Docker installation now.
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
When everything above is finished you can check if Docker is working by type the following:
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).
Official Home Assistant Supervised installer script
Time to finally install Home Assistant Supervised.
We will use the official installer script 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:
sudo curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh
Before you start the script, you have to choose your machine type as we are going to use that machine as installer script parameter.
These are the Home Assistant installer supported machine types:
Choose you machine and copy/paste the text from the table above at the end of the installer script.
For example if you have x86-64 computer (these are most of the modern Intel or AMD CPUs) you have to copy/paste the qemux86-64 after the –machine parameter in the command below. If you have Intel-NUC, get the intel-nuc and so on.
For Raspberry Pi 4, I will use the following command:
sudo bash installer.sh --machine raspberrypi4
After some time, the script will eventually ask you the following question:
Do you want to proceed with overwriting the /etc/network/interfaces file? [N/y]
Type “y” and wait for the installer script to finish. When that happen you will see some short instructions like these one bellow:
Firs setup will take some time. After a minute, or 5 or even 10 (be patient here) you can try to open your device IP on port 8123 (default Home Assistant port).
When 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 next. Don’t worry, I’m here to help. You can check:
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 are just entering the Smart Home world you could check my digital product called Smart Home – Getting Started Actionable Guide.
SMART HOME Getting Started Actionable Guide
28 unique printable pages in a Smart Home Getting Started Actionable Guide designed to help you make the best decisions and your Home Smart right away!
It will literally save your money and time – I promise!
Stay safe and don’t forget Home Smart, But Not Hard!
Thank you for reading, and I will see you in the next article.