Last updated on April 24th, 2022 at 08:01 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!

How to Install Home Assistant Supervised – OFFICIAL WAY

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.

Let’s go…

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.

There are 4 official ways to Install Home Assistant
There are 4 official ways to Install Home Assistant

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 👇

Install Home Assistant using VirtualBox on Windows/Linux/Mac

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👇

The first method described in this article is about Home Assistant Container

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👇

Boot Raspberry Pi 4 from SSD instead of miroSD card for better performance and stability.

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.

  • jq
  • wget
  • curl
  • avahi-daemon
  • AppArmor
  • udisk2
  • libglib2.0-bin
  • network-manager
  • dbus
  • Docker
  • 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 ⬇️
If you install Home Assistant supervised on something different than Debian you will see this  unsupported installation label.
If you install Home Assistant supervised on something different than Debian you will see this unsupported installation label.

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.

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:

  1. 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.
  2. 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:

[connection]
wifi.mac-address-randomization=1
[device]
wifi.scan-rand-mac-address=no

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

Install AppArmor, Network Manager and jq:

sudo apt-get install jq wget curl avahi-daemon udisks2 libglib2.0-bin network-manager dbus apparmor -y
Install Home Assistant supervised dependencies.
Install Home Assistant supervised dependencies.

If you receive errors for missing dependencies, try the following command:

sudo apt --fix-broken install

And reboot your device:

sudo reboot

We can continue with Docker installation now.

Install Docker

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 (does you can check if Docker is working by type the following command:

docker --version

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

Checking the Docker version is just needed to double check that the Docker is installed successfully.
Checking the Docker version is just needed to double check that the Docker is installed successfully.

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:

https://github.com/home-assistant/os-agent/releases/latest

For Raspberry Pi 4 the needed package and the commands to download and install this package are the following.

wget https://github.com/home-assistant/os-agent/releases/download/1.2.2/os-agent_1.2.2_linux_armv7.deb
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 above link.

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:

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:

wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb

Then install the package:

sudo dpkg -i homeassistant-supervised.deb
Home Assistant Supervised select machine type

You will see a dialog asking you to select machine type:

These are the Home Assistant installer supported machine types:

generic-x86-64qemux86-64
odroid-c2raspberrypi
odroid-n2raspberrypi2
odroid-xuraspberrypi3
qemuarmraspberrypi4
qemuarm-64raspberrypi3-64
qemux86raspberrypi4-64
tinkerkhadas-vim3
Supported Machine Types for the official Home Assistant Supervised installer.

TIP!: For example if you have x86-64 computer (these are most of the modern Intel or AMD CPUs) you have to select generic-x86-64.

After installation of the homeassistant-supervised.deb has finished you should see something similar:

Successful Home Assistant Supervised finish of the installation script
Successful Home Assistant Supervised finish of the installation script

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

Home Assistant Supervised is installing wait up to 20minutes

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.

This is the Welcome Home Assistant wizard/screen where you can start flying.
This is the Welcome Home Assistant wizard/screen where you can start flying.

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

Like something from the above links and try to implement it. If you face any difficulties you can always reach out in the comments or in my Discord server or in Twitter.

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!

How to Install Home Assistant Supervised - OFFICIAL WAY 1

Stay safe and don’t forget – Home Smart, But Not Hard!

Thank you for reading, and I will see you in the next article.


161 Comments

Mesyu · 04/02/2021 at 2:24 pm

Interesting! I first installed RaspianOS on a Pi4 ssd and continued with IOTstack to end up with an unsupervised version. I wasn’t sure that is what I wanted and decided to start again using home assistant OS. It looks like the method you describe here is what I prefer best. I presume that IOTstack can be used to install all addons?

    Kiril · 04/02/2021 at 2:46 pm

    Actually, IOTstack and this method of Home Assistant Supervised installation are pretty much the same. Using IOTstack should be easier to install HA, but in my experience it is not very reliable and very often you have to troubleshoot and tweak somethings. The method that I’m describing here should be bullet proof.

DSG · 12/02/2021 at 9:09 am

Please help me
When installing Home Assistant Supervised, it returns an error:

[info] Install supervisor Docker container
invalid reference format

Tell me what made a mistake or where to look for information. I have already rummaged through everything that I could, I can not solve this problem (((

    Kiril · 15/02/2021 at 9:54 pm

    Hi, on what device and on what OS are you trying to install it?

Bobo · 15/02/2021 at 11:09 pm

I have the same problem with the invalid reference format.
Any idea how to fix this?

Bobo · 15/02/2021 at 11:12 pm

I’m on Ubuntu 20.10 on an older laptop with Intel CPU.

SNE · 19/02/2021 at 5:03 pm

How can I switch from a docker installation to the supervised method without loosing any data from the previous installation??

    lukas · 22/02/2021 at 9:48 pm

    yea i d like to know that aswell 🙂

      Kiril · 22/02/2021 at 10:35 pm

      Hi Lukas, I tried to answer the SNE question. Check it out!

    Kiril · 22/02/2021 at 10:34 pm

    Full backup, with history and everything is only possibly with snapshots, but you can try to backup and restore, your config folder (all yaml files inside) and you will be close to full replication

Louis · 25/02/2021 at 2:43 am

Walked through this guide a few times with no luck with given commands. After sending the sudo bash installer script, during the “Install supervisor docker container” it breaks with
Error response from daemon: Get https://registry-1.docker.io/v2/: dial: tcp: lookup registry-1.docker.io on 10.0.0.1:53 dial udp 10.0.0.1:53: connect: network is unreachable. The only method I’ve found around this is using a previous version of git with kwanga or something. Still have yet to correct the solution here. Running rpi4-8GB fresh raspbian lite image.

    Kiril · 25/02/2021 at 8:22 am

    That is really strange I’m using exactly RPI4-8GB on Raspberry OS but not lite. I also have it on RPI4-4GB and it worked without any issues. Can you try to install it when you are connected via LAN cable and not WiFi?

      Anon · 02/03/2021 at 12:42 pm

      Incase anyone else stumbles onto this issue while searching. I found the issue to be the pi power supply providing low voltage triggering it to drop wifi.
      A better power supply and Ethernet fixed the issue

        Kiril · 06/03/2021 at 8:06 am

        It is great that you share that info Anon. Much appreciate it! And I’m glad that you fixed your issue.

        Uwe · 17/04/2021 at 1:15 am

        I had the same problem, even though I used the official power supply. I fixed it by using LAN cable instead of Wi-Fi.

          Kiril · 19/04/2021 at 6:48 pm

          Yes, LAN cable can help if you loose connection during installation. After the installation finish you can switch back to Wi-Fi

    Sako · 22/03/2021 at 10:53 pm

    Had a similar problem where the script would crash after printing [info] Install supervisor Docker container with a seemingly random network error when connecting to https://registry-1.docker.io/v2/

    Found a solution here:
    https://forums.docker.com/t/tls-handshake-timeout-pulling-from-docker-hub-on-a-raspberry-pi-1-on-docker-17-03/53614
    Its reduce the number of parallel downloads of the docker daemon to 1

    /etc/docker/daemon.json
    {

    “max-concurrent-downloads”: 1
    }

      Kiril · 23/03/2021 at 9:30 pm

      Thank you very much for the links and the fix that could help if someone face the same issue.

Matej · 01/03/2021 at 11:58 am

Hi,
I followed your guide and successfully installed HomeAssistant on Raspbian Buster OS, running on RaspberryPi 3 device. The reason I wanted to have installation that way (and not using HA OS) is, that I would like to use my Raspberry 3 with HomeAssistant as a VPN client and I also want to set up specific firewall rules on this machine. Wireguard plugin allows only server installation, not client installation.

So, everything is working fine, but when I reboot my device (through command line – ssh or. through web GUI of HomeAssistant), Home Assistant does not start up again.

docker ps -a shows that almost all containers exited (except hassio_observer), so I say (in ssh terminal)

docker restart homeassistant
docker restart hassio_multicast
docker restart hassio_observer
docker restart hassio_cli
docker restart hassio_audio
docker restart hassio_dns
docker restart hassio_supervisor

The everything was working, but after a couple of restarts I can see docker processes running, but web GUI is not accessible. Any idea what could be wrong?

    Kiril · 06/03/2021 at 8:05 am

    Sorry, I don’t know that seems that some kind of a Docker issue to me. Try to downgrade it to latest version 19.xx or upgrade it to the latest if you are not.

green · 12/03/2021 at 8:07 am

Hi Kiril,

It works perfectly on my RPi4, but I cant get SSL to work, I’ve tried the Duckdns add-on and manual set up. Did you set up remote access?

green · 12/03/2021 at 8:35 am

Never mind, fixed it. Installed the duckdns add-on and added this to my configuration.yaml

http:
ssl_certificate: /ssl/fullchain.pem
ssl_key: /ssl/privkey.pem

    Kiril · 12/03/2021 at 8:36 am

    Good job Enjoy!

Andy · 14/03/2021 at 3:07 am

Cheers mate, very straightforward and to the point guide – was trying to make sense of the installation on the official web, but ended up here. Thanks!

    Kiril · 14/03/2021 at 7:35 am

    I’m very happy to hear that I was helpful. Feel free to check my other articles as well!

green · 23/03/2021 at 6:14 am

Any way to get this installed on a Raspberry Pi Zero W? it errors out after the NetworkManager reboot.

    Kiril · 23/03/2021 at 9:32 pm

    Check the Sako comment below with the reducing concurrent downloads parameter. Maybe this fix will help you as well.

green · 23/03/2021 at 7:55 am

Oops, sorry about double post

    Kiril · 23/03/2021 at 9:33 pm

    No issue, I deleted one of the posts. Let us know what happened with the Sako fix.

      green · 25/03/2021 at 5:44 am

      Sako fix didnt work. I have noted that everytime I try and it gets to the NetworkManager restart line the ip address gets renewed with a new one, so i have to open a new putty session. I will try with a monitor attached.

      green · 25/03/2021 at 6:58 am

      So with the Zero W connected to a monitor and Sado’s Fix, I get further.

      Next I get an error at
      [info] Install supervisor Docker container
      invalid reference format

      I’m using “sudo bash installer.sh –machine raspberrypi

        elisha · 06/05/2021 at 6:01 pm

        @green did you manage to fix the problem i have the same problem and also running it on raspberry pi ?????

          Toby Cass · 04/07/2021 at 6:09 am

          I #commented out the restart Network manager line and then also got the “invalid reference format” error. Run the script with -xv to follow it through its processes. I wound up cutting the docker pulls out of that script and into another, ran chmod+x and ran those after the network manager had fully restarted and had no issues. You could probably do it more easily by adding a sleep function after the network manager restart to allow it time to reconnecti n original script. This was on a wifi only computer so i could not test against hard line connection. I believe this is the cause of the error.

          KIril Peyanski · 05/07/2021 at 8:46 am

          Thanks for the tips Toby. That seems very useful and can help others struggling. Good job!

green · 25/03/2021 at 8:00 am

So I read through the installer.sh and the only versions to install are i368, Armhf and Armv7, both of which wont work with an original Raspberry Pi or the Zero/Zero W.

It looks like it redirects Armv6 versions to Armhf, but i’m no expert.

Looked for manual install version but can’t find any

    Kiril · 28/03/2021 at 6:53 pm

    Let us know if you find a fix/solution for the Zero/Zero W. Good luck!

Michel · 28/03/2021 at 10:23 am

So i got everything up and running flawlessly on a Nuc with Debian. Thanks for that!

Updating Home assistant is pretty easy, but what is best practice to update Debian without possible breaking Home assistant? Do i let Home assistant running while i ssh into Debian and update it?
Or stop Home assistant, update Debian and restart the computer? Thanks in advance

    Kiril · 28/03/2021 at 6:46 pm

    In my humble opinion. You can update your OS while HA is running and then restart if needed.

      CJ · 20/08/2021 at 12:58 am

      I did the supervised method which works fantastic. There is a new version. What is the process to update Home Assistant?

        Kiril · 28/08/2021 at 11:18 pm

        just click on update – nothing special!

    CJ · 19/08/2021 at 2:15 pm

    What is the process to update the supervised version of Home-Assistant?

    Thanks!

      Kiril · 19/08/2021 at 3:03 pm

      The procedure is exactly the same as the with Home Assistant OS. You will receive update pending notification under your supervisor menu.

Antonio · 30/03/2021 at 7:11 pm

Hi Kpeyanski, great video and great explanation. I have followed all the steps one by one, three times, and always get the same result HomeAssistant core-2021.3.4, not the supervised. How is this possible?. Many thanks in advance.

    Kiril · 02/04/2021 at 8:33 am

    Hi Antonio, I think you are just fine and you have the Supervised version which include HA core in it and that is perfectly normal. Just go to Configuration > Info and look what is written next to Installation Type. Let me know what happened.

Joe V · 08/04/2021 at 8:26 am

thanks for the guide. working well on pi4 64 bit version. however there is a new fire update out and it doesn’t seem to update from supervisor we interface. do we have to do the install script again to get the latest.?

    Kiril · 10/04/2021 at 12:01 am

    Strange, this should work. I’m with pi4 and Home Assistant updates are working without any issues from a very long time. Please check your Home Assistant logs for any errors.

Sleepy · 17/04/2021 at 2:49 am

I try to install the Supervised Version on a Pi2 with Ubuntu 20.04 LTS, which already runs PiVPN and Pihole/Unbound, but whenever i come to the part, where Docker should be installed, the script gives me this output:
# Executing docker install script, commit: 7cae5f8b0decc17d6571f9f52eb840fbc13b2737
+ sh -c apt-get update -qq >/dev/null
+ sh -c DEBIAN_FRONTEND=noninteractive apt-get install -y -qq apt-transport-https ca-certificates curl >/dev/null
+ sh -c curl -fsSL “https://download.docker.com/linux/ubuntu/gpg” | apt-key add -qq – >/dev/null
Warning: apt-key output should not be parsed (stdout is not a terminal)
+ sh -c echo “deb [arch=armhf] https://download.docker.com/linux/ubuntu focal stable” > /etc/apt/sources.list.d/docker.list
+ sh -c apt-get update -qq >/dev/null
+ [ -n ]
+ sh -c apt-get install -y -qq –no-install-recommends docker-ce >/dev/null
E: Package ‘docker-ce’ has no installation candidate

Following the Instructions for installation directly from docker doesnt work either and results in the same error. Any Ideas?

    Kiril · 19/04/2021 at 6:46 pm

    I think you should find 32-bit version of docker for raspberry pi. Is the version you are trying to install 32-bit?

      Peter · 24/04/2021 at 3:11 pm

      Yes, it is 32-bit.
      I have installed the standard Raspbian OS (32biit)

      Peter · 24/04/2021 at 3:48 pm

      Yes, installed OS is Rasberry OS (32-Bit) latest release all updates done.

Peter · 24/04/2021 at 2:47 pm

A really cool and easy to follow guide!
Good job, Kiril!
Thanks for that.

Everytin ist woring as expected except one crucrial thing:
Docker is incrementing the spoofed MAC-address afert each reboot.
How do I prevent Docker form doing that and force it to use the same MAC-address forever?

I’m seaching the Internet since days but nothing worked.
Even the –mac-address option didn’t change a thing.

Any ideas that may help?

Peter · 24/04/2021 at 3:15 pm

Yes, I think so.
installed OS is Raspbian OS (32bit) so docker should be also 32-bit version.

Peter · 24/04/2021 at 3:47 pm

Yes, installed OS is Rasberry OS (32-Bit) latest release all updates done.

Gahe · 30/04/2021 at 3:27 pm

Hej,
First, thanks a lot for this tutorial!
I went through it to install Home Assistant Supervised cause I want the supervisor and addons. All went fine on my RPI4 + Raspbian.
Portainer shows me that container “homeassistant/armv7-hassio-supervisor” is running (that’s the only one container that I have). However, I cannot connect to port 8123 and netstat shows nothing is listening on this port.
What can I do or check from there please ?

    Gahe · 30/04/2021 at 3:51 pm

    All right, few minutes after my post I tried to delete the container to redo the tutorial. But I noticed it kept restarting and restarting again. Then I went to fetch a coffee and noticed this time many more containers had been started. Now it looks like it’s working.
    Conclusion: coffee is usually the answer to most problems.

Clayman · 08/06/2021 at 7:18 am

I went through your process of setting up / installing HA and at each step it went as you described. At the point where the installer script is issued, the process went off and finished all the steps and came back and indicated the Home Assistant Supervised had been installed.

The strange thing is the install status screen never appeared in my browser when I went to http://MyIP:8123. When I look at docker ps -a it shows everything created, but the first item shows HA exits seconds after it started…

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
38204ec69e1f homeassistant/raspberrypi4-64-homeassistant:2021.6.2 “/init” About a minute ago Exited (1) 3 seconds ago

Needless to say I am new to docker and HA and this was my first attempt, but when I go to http://myIP:8123 I see nothing and oddly when I ping homeassistant.local it can’t be found.

I am not really sure where to start to see if this installation is repairable and I am trying to resist starting from scratch as I have a limited bandwidth network connection, but I am open to all suggestions.

    Clayman · 08/06/2021 at 10:26 pm

    When I execute “docker run” on the homeassistant/raspberrypi4-64-homeassistant image to manually start a new container, it complains that I am trying to run a 64 bit image on a 32 bit host platform.

    Not sure why that is the case as I am pretty sure I installed the raspian 64 bit OS. However, when I query the OS with uname it validates the 32 bit environment.

    So, is there a way I can manually download the homeassistant/raspberrypi4-homeassistant (32 bit image) without having to go through the installer script again? I assume I need a dockerfile to create the new image?

    All guidance appreciated.

Paul · 08/06/2021 at 6:05 pm

Hi, Thanks for the guide. I followed the steps but now I am greeted with a GUI that is not loading at all. I confirmed my IP but it just refuses to connect to http://my_ip:8123 but all the backend file system is created. Any suggestions? Thanks!

    Rik · 19/11/2021 at 4:09 am

    I have the same issue. Everything seems to load with no issue, but then I get ‘refused to connect’. I have openmediavault running in a docker so the only thing I didn’t mess with going through this tutorial is installing docker, since it was already installed.

    tghosh · 02/12/2021 at 9:27 am

    Im having the same exact issue. I confirmed docker is running and used docker ps to confirm that all the home assistant containers are running

Bob · 07/07/2021 at 1:38 pm

Great guide, many thanks. Quick question I’ve decide to move my HA installation to another device, what’s the best way to remove HA after following your guide?

Many thanks

    Kiril Peyanski · 16/07/2021 at 12:02 am

    Hi Bob, you just have to stop and remove all of the HA docker containers. You can do that with docker commands or using portioner (again from docker) for example. Your system will be without any traces of HA after this procedure.

tom · 25/07/2021 at 6:51 pm

Hi and thanks for the guide!

i have one question concerning the supervised installation:
If i go that route will i be able to somehow execute shell commands w root permission on the host machine from within the homeassistant supervised installation? via shh maybe?

thanks

    Kiril · 25/07/2021 at 10:02 pm

    You are welcome! Yes, you will be able to do that! Either by the standard way with ssh keys (passwordless login) or by using this – https://github.com/AlexxIT/SSHCommand (I didn’t test the latter, but I think it will work).

Fabio · 11/08/2021 at 6:17 pm

Thanks for your guide! I was able to install it successfully on my RPi 4!
I have a question now, I’m trying to install the Reolink custom add on using your guide, but I’m unable to find the correct config folder of HA since it’s behind docker. Is there a way to edit the startup docker command to map homeassistant folder to the local file system?
Thanks!

    Kiril · 12/08/2021 at 4:49 pm

    Hi Fabio, use the Samba add-on available in the Add-on store to access the config folder on your HA and to upload folder. If you want to just edit files there or upload single files you can use File editor add-on instead. Good luck!

Steve · 04/10/2021 at 4:30 am

Great install guide. I had to change the docker logging from journald to, for the moment, json-file in ‘/etc/docker/daemon.json’. Sharing in case useful for others.

    Kiril · 08/10/2021 at 2:05 pm

    Thanks Steve, for the tips and for the good words!

jera · 21/10/2021 at 5:20 pm

Hi,
I’m using a raspberry pi 4 with pi os buster

I installed following most of the instruction, already had dockers installed with a greater version than requested, 20.10.9, updates & upgrades done

ran the commands:
# sudo apt-get install network-manager apparmor-utils jq -y
# sudo reboot
# sudo curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh
# sudo bash installer.sh –machine raspberrypi4

At the end of the installation it says to connect:
http://192.168.1.132:8123

Only the observer has listening ports:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
fb9a411becb9 ghcr.io/home-assistant/armv7-hassio-multicast:2021.04.0 “/init” 21 minutes ago Up 21 minutes hassio_multicast
d33815e8b462 ghcr.io/home-assistant/armv7-hassio-observer:2021.06.0 “/init” 21 minutes ago Up 21 minutes 0.0.0.0:4357->80/tcp, :::4357->80/tcp hassio_observer
7fea187ba5aa ghcr.io/home-assistant/armv7-hassio-cli:2021.09.0 “/init /bin/bash -c …” 22 minutes ago Up 21 minutes hassio_cli
6d5f928ff4dc ghcr.io/home-assistant/armv7-hassio-audio:2021.07.0 “/init” 23 minutes ago Up 23 minutes hassio_audio
7b4bdae7f210 ghcr.io/home-assistant/armv7-hassio-dns:2021.06.0 “/init” 23 minutes ago Up 23 minutes hassio_dns
5c6ec67d686e homeassistant/armv7-hassio-supervisor “/init” 38 minutes ago Up 22 minutes hassio_supervisor

searching for listening ports, no port 8123 also:
netstat -lnt
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:4357 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 ::1:631 :::* LISTEN
tcp6 0 0 ::1:6010 :::* LISTEN
tcp6 0 0 ::1:6011 :::* LISTEN
tcp6 0 0 :::4357 :::* LISTEN

Only the observer port and page.

Home Assistant observer
Supervisor: Connected

What am I missing?

Thanks in advance

Shawn · 26/10/2021 at 7:27 pm

The installer script doesnt work for the home assistant supervised. The script only contains a 404 error.
I ran exactly as you mention:

sudo curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh

    Kiril · 31/10/2021 at 7:07 pm

    Hi Shawn,
    the article is now updated and now you have to execute slightly different commands.

Jon · 29/10/2021 at 1:11 am

Great write up, love your work.

I have attempted to install a “supervised” setup today, on my NAS box (a Kobol Helios64, which runs on a Rockchip 64 ARM processor.

I installed the `os-agent`, and had to use the arm7 deb package. Then, when I went to install the `homeassistant-supervised` package, I got this:

jon@OXYGEN:~/Containers/HomeAssistant$ sudo dpkg -i homeassistant-supervised.1.0.1.deb
Selecting previously unselected package homeassistant-supervised.
(Reading database … 40881 files and directories currently installed.)
Preparing to unpack homeassistant-supervised.1.0.1.deb …
[warn]
[warn] If you want more control over your own system, run
[warn] Home Assistant as a VM or run Home Assistant Core
[warn] via a Docker container.
[warn]
Adding ‘diversion of /etc/NetworkManager/NetworkManager.conf to /etc/NetworkManager/NetworkManager.conf.real by homeassistant-supervised’
Adding ‘diversion of /etc/NetworkManager/system-connections/default to /etc/NetworkManager/system-connections/default.real by homeassistant-supervised’
Adding ‘diversion of /etc/docker/daemon.json to /etc/docker/daemon.json.real by homeassistant-supervised’
Adding ‘diversion of /etc/network/interfaces to /etc/network/interfaces.real by homeassistant-supervised’
Unpacking homeassistant-supervised (1.0.1) …
dpkg: dependency problems prevent configuration of homeassistant-supervised:
homeassistant-supervised depends on os-agent.

dpkg: error processing package homeassistant-supervised (–install):
dependency problems – leaving unconfigured
Errors were encountered while processing:
homeassistant-supervised
jon@OXYGEN:~/Containers/HomeAssistant$ sudo aptitude search os-agent
i os-agent:armhf – Home Assistant OS Agent
jon@OXYGEN:~/Containers/HomeAssistant$ uname -a
Linux OXYGEN 5.10.63-rockchip64 #21.08.2 SMP PREEMPT Wed Sep 8 10:57:23 UTC 2021 aarch64 GNU/Linux
jon@OXYGEN:~/Containers/HomeAssistant$ lsb_release -d
Description: Debian GNU/Linux 10 (buster)

Do you know what I can do so that the `homeassistant-supervised` package recognises the installed `os-agent:armhf` package?

    Odhiambo · 25/11/2021 at 4:21 pm

    I have this same problem. Did you find a solution?

F79 · 31/10/2021 at 6:59 pm

“sudo apt-get install jq wget curl avahi-daemon udisks2 libglib2.0-bin network-manager dbus -y”

There’s no apparmor here. Please add “apparmor_utils”

    JH · 03/11/2021 at 4:57 pm

    F79, install apparmor with the following command:

    sudo apt-get install apparmor

      Kiril · 03/11/2021 at 5:14 pm

      Thanks JH. I will update the article to include the apparmor as it was reminded to me from several different places already 🙂

JH · 03/11/2021 at 4:43 pm

Just installed on a fresh install of raspberry on a pi4, easiest homeassistant install ever. There are 2 things i would add.

1) Disable WiFi mac randomization:

To disable the MAC address randomization create the file
sudo nano /etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf

with the content:
[connection]
wifi.mac-address-randomization=1
[device]
wifi.scan-rand-mac-address=no

2) add apparmor to the Dependence List
sudo apt-get install apparmor

    Kiril · 03/11/2021 at 5:15 pm

    Very interesting! Didn’t know that I will add it to the article as well and will credit you there. Thanks and keep up with such useful comments 🙂

Ken Wong · 05/11/2021 at 11:18 am

You forgot to include apparmor in the dependencies

    Kiril · 14/11/2021 at 9:55 pm

    It is already included. Thanks.

Alan · 10/11/2021 at 11:57 pm

Amazingly clear guide, Kiril – thanks! Now up and running with Home Assistant Supervised on my RPi 4 8GB on Raspberry Pi OS bullseye (only took a few minutes rather than 20 for the initial setup thanks to the default 1.8GHz clock speed now!)

Stefan · 11/11/2021 at 5:08 am

Thanks for that tutorial, it worked very vell, much appreciated. Unfortunately i cant’ seem to locate the configuration.yaml file, where do I have to look for it?

    Kiril · 14/11/2021 at 9:51 pm

    Hi Stefan,
    try to install File editor add-on from the add-on store and starting you will be able to find and edit the configuration.yaml file very easily.

Christian · 18/11/2021 at 11:17 am

Hello,

What do i pick in the list, when i use a Raspberry Pi Zero 2 W?

Washington · 25/11/2021 at 4:15 pm

I am trying to get Home Assistant Supervised on my RPi 4 8GB on Raspberry Pi OS bullseye.
I am getting stuck because of os-agent. It is installed and I can successfully test it, but the installer cannot find it!
Can anyone please help me?

pi@raspberrypi:~ $ gdbus introspect –system –dest io.hass.os –object-path /io/hass/os
node /io/hass/os {
interface org.freedesktop.DBus.Introspectable {
methods:
Introspect(out s out);
signals:
properties:
};
interface org.freedesktop.DBus.Properties {
methods:
Get(in s interface,
in s property,
out v value);
GetAll(in s interface,
out a{sv} props);
Set(in s interface,
in s property,
in v value);
signals:
PropertiesChanged(s interface,
a{sv} changed_properties,
as invalidates_properties);
properties:
};
interface io.hass.os {
methods:
signals:
properties:
@org.freedesktop.DBus.Property.EmitsChangedSignal(“invalidates”)
readonly s Version = ‘1.2.2’;
@org.freedesktop.DBus.Property.EmitsChangedSignal(“true”)
readwrite b Diagnostics = false;
};
};
pi@raspberrypi:~ $ sudo dpkg -i homeassistant-supervised.deb
Selecting previously unselected package homeassistant-supervised.
(Reading database … 179975 files and directories currently installed.)
Preparing to unpack homeassistant-supervised.deb …
[warn]
[warn] If you want more control over your own system, run
[warn] Home Assistant as a VM or run Home Assistant Core
[warn] via a Docker container.
[warn]
[warn] ModemManager service is enabled. This might cause issue when using serial devices.
Adding ‘diversion of /etc/NetworkManager/NetworkManager.conf to /etc/NetworkManager/NetworkManager.conf.real by homeassistant-supervised’
Adding ‘diversion of /etc/NetworkManager/system-connections/default to /etc/NetworkManager/system-connections/default.real by homeassistant-supervised’
Adding ‘diversion of /etc/docker/daemon.json to /etc/docker/daemon.json.real by homeassistant-supervised’
Adding ‘diversion of /etc/network/interfaces to /etc/network/interfaces.real by homeassistant-supervised’
Unpacking homeassistant-supervised (1.0.2) …
dpkg: dependency problems prevent configuration of homeassistant-supervised:
homeassistant-supervised depends on os-agent.

dpkg: error processing package homeassistant-supervised (–install):
dependency problems – leaving unconfigured
Errors were encountered while processing:
homeassistant-supervised
pi@raspberrypi:~ $

Ghayth · 25/11/2021 at 11:29 pm

Thank you for this tutorial. Unfortunately, it did not work for me. I’ve got the “connexion refused error”. Any ideas how to fix this please ?

Chris · 26/11/2021 at 8:50 am

So, I’ve followed this (great and easy to get) guide, but I’m ending up with the following in HA Supervisor System:
[supervisor.resolution.evaluations.base] AppArmor is required for Home Assistant. (more-info: https://www.home-assistant.io/more-info/unsupported/apparmor)
and
[supervisor.dbus.manager] Can’t load dbus interface de.pengutronix.rauc: The name de.pengutronix.rauc was not provided by any .service files

I’ve checked on Raspbian:
sudo aa-status
apparmor module is loaded.

I’m running Bullseye and everything is up to date. Any thoughts on this?

    Jeffrey · 27/03/2022 at 6:37 pm

    I am having a similar issue but aa-status shows
    apparmor module is loaded.
    apparmor filesystem is not mounted.
    pi@test:~ $ aa-enabled
    No – disabled at boot.

    were you ever able to get your AppArmor enabled at boot?

Drummond · 01/12/2021 at 2:46 pm

Hi, thanks for a great article. 2 thing for the supervised install. 1. Your instructions miss the requirement to install AppArmor. 2. I think there is an issue with app armor and a simple raspberry image. If you reboot the machine and check the logs – it will say AppArmor isn’t running. Same if you do a service apparmor status. I found this comment “I’m guessing you didn’t add lsm=apparmor to cmdline.txt.” on https://github.com/raspberrypi/linux/pull/1698. After adding this entry – I no longer get errors about app armor.

Thanks again

finlayclayton · 07/12/2021 at 2:39 pm

thank you thank you and thank you finally after using countless websites even homeassistant webpage
got the full monty HomeAssistant installed up and running thanks ti this tutorial.

    Kiril · 07/12/2021 at 10:22 pm

    Very glad to hear that I manage to help you. Enjoy!

Tghosh · 08/12/2021 at 8:34 am

My linux host where I have installed docker and Home-Assistant following all the instructions in this article has an IP of 192.16.20.113. When I try to browse to 192.168.20.113:8123 I get connection refused.

Ive been researching this problem for a while now and believe I need to port forward to the containers listening port. However i am not sure how to do that.

AubsUK · 15/12/2021 at 2:11 am

Thanks for a great guide and all the help in the comments. Very useful. Some of it wasn’t quite right and I couldn’t get it working correctly. However, running with “2021-10-30-raspios-bullseye-arm64.img”, I’ve got it working – I’ve included below every step I did to get it working. Hope it’s of use:

Obviously make sure you’re fully up to date:
sudo apt update && sudo apt upgrade -y
sudo apt full-upgrade -y && sudo apt dist-upgrade -y && sudo apt autoremove -y
sudo reboot now

1. SSH as pi
2. Download and install Docker using their own script.
sudo curl -sSL https://get.docker.com | bash
3. Add account to the Docker group
sudo usermod -aG docker pi

4. Configure Network Manager before installing it as it will set random MAC addresses for the device each time it reboots
sudo mkdir /etc/NetworkManager
sudo mkdir /etc/NetworkManager/conf.d

sudo nano /etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf
Add the following to the end
[connection]
wifi.mac-address-randomization=1
[device]
wifi.scan-rand-mac-address=no

5. Install required dependencies
sudo apt install \
jq \
wget \
curl \
avahi-daemon \
udisks2 \
libglib2.0-bin \
network-manager \
dbus \
apparmor -y

**there might be intermittent ping drops as Network Manager configures. Hopefully the session will resume, if not, it might need to be run on the console.

6. AppArmor isn’t included in ‘official’ instructions, but is also needed (included above)

a. Configure AppArmor:
sudo nano /boot/cmdline.txt
Add the following to the end
lsm=apparmor

b. Reboot
sudo reboot

c. Check AppArmor is installed
sudo aa-status

7. If there’s anything broken, try:
sudo dpkg –configure -a
sudo apt –fix-broken install

8. OS Agent
a. Find the latest version of OS-Agent
https://github.com/home-assistant/os-agent/releases/latest

b. Download the package
cd ~
wget https://github.com/home-assistant/os-agent/releases/download/1.2.2/os-agent_1.2.2_linux_aarch64.deb

c. Install the agent
sudo dpkg -i os-agent_1.2.2_linux_aarch64.deb

d. Confirm the agent is installed (not quite sure what this is supposed to return, but lines of code looks good)
sudo gdbus introspect –system –dest io.hass.os –object-path /io/hass/os

9. Home Assistant Supervised Debian Package
a. Download the package
wget https://github.com/home-assistant/supervised-installer/releases/latest/download/homeassistant-supervised.deb

b. Install the package
THIS WILL FAIL AS IT RESTARTS NETWORK – RUN THROUGH TERMINAL ONLY!!!
sudo dpkg -i homeassistant-supervised.deb

c. Select the OS from the menu
Raspberrypi4-64
[The guide indicated in a screenshot to select raspberrypi4 – Assumed 32-bit?]

d. If there’s an error, try running the install again

10. BE PATIENT !!!
Run “htop” and see if Docker is using lots of CPU/RAM,
Run “sudo docker ps -a” to see the Docker containers

    Washington · 05/02/2022 at 1:56 pm

    Hi @AubsUK,
    Your instruction to install os-agent_1.2.2_linux_aarch64.deb instead of the os-agent_1.2.2_linux_armv7.deb actually saved my day. Thank you very much!
    I have been struggling to go past the os-agent issue for months. I was installing os-agent_1.2.2_linux_armv7.deb, and then the homeassistant-supervised.deb installation would not find it (os-agent).
    Maybe Kiril will edit the HOWTO, or maybe I am a little dump following the instructions he gave 🙂

      man · 16/02/2022 at 5:06 pm

      Many thanks for the guidance in installing HA in Rapsberry Pi, but can anyone help
      me with the error below…thanks in advance

      — version.home-assistant.io ping statistics —
      1 packets transmitted, 1 received, 0% packet loss, time 0ms
      rtt min/avg/max/mdev = 16.163/16.163/16.163/0.000 ms
      Device “eth0
      eth0” does not exist.
      [info] Install supervisor Docker container
      [info] Install supervisor startup scripts
      [info] Install AppArmor scripts
      [info] Start Home Assistant Supervised
      [info] Installing the ‘ha’ cli
      [info] Within a few minutes you will be able to reach Home Assistant at:
      [info] http://homeassistant.local:8123 or using the IP address of your
      [info] machine: http://:8123
      pi@raspberrypi:~ $

        Keith · 24/04/2022 at 6:43 pm

        Did you solve the issue? I got the same now with Raspbian Bulleye

      Washington · 07/03/2022 at 6:12 pm

      For some strange reason, after installing HA on my RP4 (8GB) running 64-bit Bullseye, I am unable to do two things:
      Once I Home Assistant is running, two issues arose:
      (a) YT videos will not play at all. In fact, when I navigate to www. youtube.com, I variously get the message that I am not connected to the Internet
      (b) When I click on Menu->Preferences->Recommended Software, I get the same error I mentioned in my initial post.
      Strangely, browsing other Internet pages is working okay
      I am beginning to suspect something to do with the creation of /etc/NetworkManager/conf.d/100-disable-wifi-mac-randomization.conf from the above HOWTO, but I am not sure. I am completely stumped.
      For those who have used these guides here and installed Home Assistant, are you able to play YT videos and as well successfully run Menu->Preferences->Recommended Software??

AubsUK · 15/12/2021 at 11:55 am

I’ve tried to post a summary step by step that I successfully used, which include a couple of minor changes to the above, but it’s not showing up. Has it been blocked by Akismet?

    Kiril · 15/12/2021 at 11:59 am

    Hi AubsUK,
    first of all, hats down for your comment! Thank you very much for the effort. Second, comments are hold for approval before shown up below articles. I believe everything is fine now with your comments. Once again, thanks for the comments I will take a deeper look/try few things later and maybe I will further update the article.
    Keep up the good work!

Armin · 24/12/2021 at 12:54 am

Worked after some issues but that was due to my stupidity and beginner-knowledge.
Workes on 23.12.2021

If you cant open the adress… be patient. You can check the logs in portainer. Its installing a lot. give it some time as mentioned by OP. 5-10 min

    Kiril · 24/12/2021 at 7:58 am

    Very glad that there is a happy end. Enjoy!

J · 24/12/2021 at 9:00 am

This worked great on raspberry pi zero 2 w. Used the same agent as this tutorial and installed raspberrypi3 HA-supervised

    Kiril · 24/12/2021 at 10:50 am

    Sounds good and many thanks for the tips and feedback

Joe · 26/12/2021 at 2:56 am

Great tutorial, followed EVERY stem to the T, but the Supervisor item is missing from the Menu, what am I missing? Thanks!!!

    Kiril · 26/12/2021 at 9:16 am

    They moved the supervisor location with Home Assistant 2021.12 release. Now it is located under Configuration > Add-Ons, Backups & Supervisor. Please check there!

Joe · 27/12/2021 at 2:11 am

I posted this question yesterday, don’t know what happened to it, so posting again. I followed your fantastic documentation and ended up with a working Home Assistant installation. However, the “Supervisor” link is missing from the menu. Can you please advise? Thanks!!

Jawad Adil · 28/12/2021 at 4:52 am

Hi,
I have installed everything successfully, all containers are running but the homeassistant container is not running. I tried starting it using portainer as well as ‘docker start homeassistant’ command.

One more thing, in the last step, it didn’t ask me to select machine type, it automatically installed ghcr.io/home-assistant/generic-x86-64-homeassistant:landingpage.

I’m using raspberry pi 4 with 8GB of Ram.

Pietrogramma · 29/12/2021 at 12:58 am

Hi Kiril, I have followed your guide and I have installed on my Raspberry4 HA, the only problem is that I have not found the Supervisor menu, is it possible that from November to today something has been changed and that it is necessary to update the guide? hello and congratulations again, ciao from Italy

    Kiril · 29/12/2021 at 7:55 am

    Yes, there are few changes in the Home Assistant layout, but nothing major. They moved the supervisor location with Home Assistant 2021.12 release. Now it is located under Configuration > Add-Ons, Backups & Supervisor. Please check there!

Foo · 31/12/2021 at 4:46 am

If you are getting “package architecture (armhf) does not match system (arm64)”

You will have to run: “dpkg –add-architecture armhf”

    Kiril · 01/01/2022 at 8:42 am

    Thank you very much for the tip

Mike Simpson · 02/01/2022 at 6:09 pm

Thank you for your article, with your help I have managed to get Home Assistant running on an old Raspberry Pi 2 Model B despite being told by everybody that it wouldn’t even install on anything less than a P1 3. My need for Home Assistant is limited to control of heating and lights in an outbuilding and my only Pi 3 is on my 3D printer while I have several Pi 2s available – that and the fact that Amazon has the Pi 4 at £80 to £140, a far cry from the £29.95 I paid for the old ones.

I will now watch your “My YouTube Home Assistant Playlist” as I fit well in the class of people who don’t know what to do next.

Mike

    Kiril · 03/01/2022 at 10:26 pm

    Great to hear that Mike and thanks for sharing that Home Assistant can run on Pi 2 from first hand. Enjoy!

Laer · 02/01/2022 at 10:24 pm

Is there a way to install the supervised version completely inside a container? (basically without affecting the host OS with the installation of the dependecies). Also it is not very clear how can we backup the supervised system, which directories are storing useful data? (or just rely on the snapshot?)

    Kiril · 03/01/2022 at 10:28 pm

    Just use snapshots for backup and on the first question AFAIK it is not possible. If you want HA entirely inside container you should you’d HA container installation 🙂 but you will lose the supervisor/add-on store that way.

    AubsUK · 07/01/2022 at 11:31 pm

    Other than the suggestion from Kiril about using the non-Supervised version, if you want it completely containerised, and are happy to have everything else containerised too, you could always try installing VMware ESXi on the host.

    It even installs on a Pi! – https://youtu.be/6aLyZisehCU but I’ve not tried it);

    Then you can have one Virtual Machine for Home Assistant and a separate OS for the remainder of the system, so basically two VMs on top of the Pi or other hardware.

    Probably not be the best performance, but that’s sometimes what you have to accept. You probably wouldn’t be able to (though never say never) passthrough the HDMI to the guest. I suspect only ethernet would work too and not WiFi.

    Though if you’re using other hardware like a desktop computer, you might be able to get the passthrough working.

Fugitive470 · 05/01/2022 at 12:25 am

Thanks for the excellent guide.
I have been running Hassio for quite a while but want more from the setup and thought about moving to a linux (Debian) host and having that little bit more control, with the comfort of HA taking care of itself.
With your guide, it was straight forward and I feel empowered 🙂

Lets hope I take the responsibility successfully and don’t break the system 😉

Barbiel · 07/01/2022 at 6:37 pm

Hi Kiril,

As mentioned before, this is a clear guide to install the supervised HA.
It worked without any issue on a RaPi 3b+ with a USB SSD.
But, there is always a but, I had my Pi already setup with a fixed eth0 ip address and the Wi-Fi wlan0 as an Access Point.
After the installation, I now have 2 ip addresses on the eth0. Both of them working. I can connect shh on both of them.
The Wi-Fi installation is completely broken.
I have no clue where the network setup of HA is stored ad how to change it.

Can you shed some light on this 🙂

zablotzky · 12/01/2022 at 8:19 pm

Hey, installations worked like a charm, thanks!

One thing though, how do I grant access to USB ports?

According to the internet, I should be adding (more or less) the following to the docker-compose.yml:

version: ‘3’
services:
homeassistant:
container_name: home-assistant
image: homeassistant/home-assistant:stable
volumes:
– /hass/config:/config
– /etc/localtime:/etc/localtime:ro
– /dev/serial/by-id:/dev/serial/by-id
devices:
– /dev/ttyUSB0:/dev/ttyUSB0
– /dev/ttyUSB1:/dev/ttyUSB1

How do I find location of aforementioned file?

Thanks in advance!

zablotzky · 12/01/2022 at 8:26 pm

I am not sure if my comment was successfully posted the last time, so I will go again.

Thanks for the guide, it worked like a charm. It some some 10 minutes to get HA installed. I do have an issue however, as I struggle to get my zigbee devices connect to the cc2652p dongle. I am configuring as I should (as it simply works on standalone HA OS when installed on RPi4) but I simply cannot add my devices. I have permit join set to on and etc, but I just cannot. SO I figured out that most probably I need to give access to specific port to the docker image. Now the question: how can I achieve it?

I should be adding code similar to this into the docker-compose.yml file according to documentation:
version: ‘3’
services:
homeassistant:
container_name: home-assistant
image: homeassistant/home-assistant:stable
volumes:
– /hass/config:/config
– /etc/localtime:/etc/localtime:ro
– /dev/serial/by-id:/dev/serial/by-id
devices:
– /dev/ttyUSB0:/dev/ttyUSB0
– /dev/ttyUSB1:/dev/ttyUSB1\

But the problem is that I have no clue where should I be looking for aforementioned file. Any advice?

    Claus · 17/03/2022 at 11:47 am

    I am assuming that you are using HomeAssistant as a docker container. You may find Alan’s video and the connected blog post helpful to answer your question: https://www.youtube.com/watch?v=DV_OD4OPKno at 7:18. Good luck!

MaxMaure · 13/01/2022 at 6:48 pm

I made it’! my DietPi64 with HA supervised running flawlessly.
THX a lot!

    Kiril · 13/01/2022 at 10:44 pm

    You are more than welcome 🙂

John Hitzeman · 23/01/2022 at 10:39 pm

Thanks for your work I installed this twice on a x64 system dedicated to running Open Media Vault. I downloaded os-agent_1.2.2_linux_x86_64.deb. Both times it never gave me the “Select the OS from the menu” option. Home Assistant was installed and works. But the Supervisor logs are never shown, also for any add-ons the log files are blank and not shown.
Any help with this problem would be appreciated.

    Patou · 28/01/2022 at 12:06 pm

    Hello,
    Super tutorial. I follow every step to install on a raspberry pi 4 4gb and SSD 32 Gb
    It loooks like the power supply I was using and that was working without problems with the HA io fails several time with this setup. It tooks me some time to realize this was my problem!!
    One again thanks for sharing your knowledge to goods amateurs like me

Thomas · 26/01/2022 at 11:48 pm

I followed the guide but accidently hit 64 bit when installing homeassistant-supervised.deb, when my system is 32bit, which means it won’t start.
How do I start the process over? When i do pkgd -i homeassistant-supervised.deb it just reinstalls with 64 bit without allowing me to select.

    Kiril · 27/01/2022 at 7:40 am

    Try with dpkg –remove homeassistant-supervised.deb or even better with dpkg –purge homeassistant-supervised.deb

simeon · 05/02/2022 at 3:36 pm

hi and thanks for this detailed tutorial!
Which installer method would you recommend to be able to mount usb drives to the homeassistant container?
Would love to hear your opinion!

Bopp · 06/02/2022 at 2:21 pm

Hi Kiril,
big thanks for your great tutorial!

Now I am standing at the same problem as zablotzky does (3 posts up).

I found a docker-compose.yml file too. But I am wondering how to use it in combination with your tutorial.

Would be great if you could give a hint how to map usb-hardware like a zigbee-stick to the home-assistant container, so you can use it.

Krump Lee · 07/02/2022 at 11:05 pm

Hi Kiril !

Raspi OS 64 is out, does hassio supervised runing on it ?

Bruce · 11/02/2022 at 12:47 pm

Hi, it’s not working for the current version of Raspberry Pi OS 11.
Up until the package installer of Supervised works, afterwards I get an error.
Running this command:
sudo dpkg -i homeassistant-supervised.deb
outputs this error:
dpkg: dependency problems prevent configuration of homeassistant-supervised:
homeassistant-supervised depends on os-agent.

dpkg: error processing package homeassistant-supervised (–install):
dependency problems – leaving unconfigured
Errors were encountered while processing:
homeassistant-supervised

Any idea what could be the problem?

I also made a post about it on reddit.
https://www.reddit.com/r/homeassistant/comments/sp9jzg/ha_supervised_rpi4/?utm_source=share&utm_medium=web2x&context=3

Tom · 11/02/2022 at 2:21 pm

I am trying to install Home Assistnant on Lenovo Yoga 900 but without success.
It is laptop equipped with wifi card only. There is no ethernet (RJ45) socket.
I passed all steps up to homeassistant-supevised.deb installation.
Al previous steps went without issues but I have stucked in Home Assistant Supervised package installation.
Maybe someone from you could help me with my problem. I do not know what to do. I also searche internet but I could not find any similar problem to mine.
I put below screen from terminal.

homeassistant@HA:~/Downloads$ sudo dpkg -i homeassistant-supervised.deb
(Reading database … 310954 files and directories currently installed.)
Preparing to unpack homeassistant-supervised.deb …
[warn]
[warn] If you want more control over your own system, run
[warn] Home Assistant as a VM or run Home Assistant Core
[warn] via a Docker container.
[warn]
[warn] ModemManager service is enabled. This might cause issue when using serial devices.
Leaving ‘diversion of /etc/NetworkManager/NetworkManager.conf to /etc/NetworkManager/NetworkManager.conf.real by homeassistant-supervised’
Leaving ‘diversion of /etc/NetworkManager/system-connections/default to /etc/NetworkManager/system-connections/default.real by homeassistant-supervised’
Leaving ‘diversion of /etc/docker/daemon.json to /etc/docker/daemon.json.real by homeassistant-supervised’
Leaving ‘diversion of /etc/network/interfaces to /etc/network/interfaces.real by homeassistant-supervised’
Unpacking homeassistant-supervised (1.1.0) over (1.1.0) …
Setting up homeassistant-supervised (1.1.0) …
[info] Restarting NetworkManager
[info] Restarting docker service
ping: version.home-assistant.io: Name or service not known
[info] Waiting for version.home-assistant.io – network interface might be down…
ping: version.home-assistant.io: Name or service not known
[info] Waiting for version.home-assistant.io – network interface might be down…
ping: version.home-assistant.io: Name or service not known
[info] Waiting for version.home-assistant.io – network interface might be down…
ping: version.home-assistant.io: Name or service not known
[info] Waiting for version.home-assistant.io – network interface might be down…
PING version.home-assistant.io (104.26.4.238) 56(84) bytes of data.
64 bytes from 104.26.4.238 (104.26.4.238): icmp_seq=1 ttl=54 time=40.9 ms

— version.home-assistant.io ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 40.870/40.870/40.870/0.000 ms
[info] Install supervisor Docker container
Error response from daemon: Get “https://ghcr.io/v2/”: dial tcp: lookup ghcr.io on [::1]:53: read udp [::1]:59846->[::1]:53: read: connection refused
dpkg: error processing package homeassistant-supervised (–install):
installed homeassistant-supervised package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
homeassistant-supervised

Tom · 11/02/2022 at 3:34 pm

I found possible solution but you can download file but it is empty.
https://www.reddit.com/user/Ramona00/

Ramona00
1 point ·
4 months ago

I just had the same error and resolved it.

The cause is that you’re probably using WiFi as connection. The installer is restarting the network interface and then not waiting for WiFi to reconnect first. Solution, add a delay in the installer script:

First get the installer files

“sudo curl -Lo installer.sh https://raw.githubusercontent.com/home-assistant/supervised-installer/master/installer.sh

Then edit the file using VI

“vi installer.sh”

Then navigate to the lines

info “Restarting NetworkManager

systemctl restart “${SERVICE_NM}

Now add here

info “Delay 20 seconds to give WiFi time to reconnect…..”

“sleep 20″

so:


info “Restarting NetworkManager
systemctl restart “${SERVICE_NM}

info “Delay 20 seconds to give WiFi time to reconnect…..”

sleep 20

Then save by pressing “:” and then “x” and “enter.

Problem resolved…!

Bruce · 11/02/2022 at 5:26 pm

Hi,
Why aren’t my comments showing?

Val · 11/02/2022 at 10:35 pm

Hi Kiril,

Great work! Thanks for sharing this. I managed to install as per your instructions.

I am trying to grant i2c privilege to Home assistant. What would be the steps to match this configuration.

Tom · 11/02/2022 at 11:35 pm

Unfortunately solution I showed two comments above dooes not work in my case.

I will have to check as a last resort is to buy adapter USB to LAN and connect Lenovo Yoga 900 via wire to router.

Enrico · 19/02/2022 at 11:49 am

Thank you, I installed ha supervised by your instructions and everything works fine.
Just a question. My ha reports that the installation is unhealthy and unsupported. What does it mean unhealthy?

insp · 20/02/2022 at 4:12 am

I installed it on my pi 4 8gb, but i cant connect to home assistant supervised (connection refushed)

Rallye · 20/02/2022 at 4:14 pm

Hi Kiril,
great work, well explained. I have HA up and running. Nevertheless, I’m missing an essential part in this installation: I am able to backup my configuration but I couldn’t find any way to restore, since “snapshot” is not avail in my config. Any hints ? Thank you very much !

Thierry · 25/02/2022 at 10:30 pm

Hello,
I have used your procedure many times for ha supervised.
On NUC, Pi 3, Pi 4 and …. on X96 mini box (armbian 20.10 buster Amlogic S905W)
It always worked.
Unfortunately, I try to install a new X96 with the same procedure as the first and it is impossible to install docker-ce. (probably because buster is obsolete and it is not possible to install it on bullseye (armbian).
I can install docker.io but the install script doesn’t work because it tells me to need docker-ce.
Is there a solution
Thank you

CNP · 08/03/2022 at 12:06 pm

Hey,

I just wanted to say thank you very much for this write-up! It was exactly what I was looking for given my current setup and wants for my smart home project. IMO, this should be part of HA’s official documentation with the disclaimer of support similar to the one that’s in HA Supervisor when installing it on an RPi4.

Allan · 20/03/2022 at 10:24 pm

Installation fails 🙁
Raspberry Pi 4
Linux raspberrypi 5.10.103-v8+ #1530

sudo dpkg -i homeassistant-supervised.deb
produces the following output

Leaving ‘diversion of /etc/NetworkManager/NetworkManager.conf to /etc/NetworkManager/NetworkManager.conf.real by homeassistant-supervised’
Leaving ‘diversion of /etc/NetworkManager/system-connections/default to /etc/NetworkManager/system-connections/default.real by homeassistant-supervised’
Leaving ‘diversion of /etc/docker/daemon.json to /etc/docker/daemon.json.real by homeassistant-supervised’
Leaving ‘diversion of /etc/network/interfaces to /etc/network/interfaces.real by homeassistant-supervised’
Unpacking homeassistant-supervised (1.1.0) over (1.1.0) …
dpkg: dependency problems prevent configuration of homeassistant-supervised:
homeassistant-supervised depends on os-agent.

dpkg: error processing package homeassistant-supervised (–install):
dependency problems – leaving unconfigured
Errors were encountered while processing:
homeassistant-supervised

Any ideas ?

Adam · 27/03/2022 at 7:03 pm

duo dpkg -i homeassistant-supervised.deb produces:

Leaving ‘diversion of /etc/NetworkManager/NetworkManager.conf to /etc/NetworkManager/NetworkManager.conf.real by homeassistant-supervised’
Leaving ‘diversion of /etc/NetworkManager/system-connections/default to /etc/NetworkManager/system-connections/default.real by homeassistant-supervised’
Leaving ‘diversion of /etc/docker/daemon.json to /etc/docker/daemon.json.real by homeassistant-supervised’
Leaving ‘diversion of /etc/network/interfaces to /etc/network/interfaces.real by homeassistant-supervised’
Unpacking homeassistant-supervised (1.1.1) over (1.1.1) …
Setting up homeassistant-supervised (1.1.1) …
[info] Restarting NetworkManager
[info] Restarting docker service
PING version.home-assistant.io (172.67.68.90) 56(84) bytes of data.
64 bytes from 172.67.68.90 (172.67.68.90): icmp_seq=1 ttl=60 time=34.1 ms

— version.home-assistant.io ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 34.143/34.143/34.143/0.000 ms
Device “eth0
eth0” does not exist.
[info] Install supervisor Docker container
[info] Install supervisor startup scripts
[info] Install AppArmor scripts
[info] Start Home Assistant Supervised
[info] Installing the ‘ha’ cli
grep: /etc/default/grub: No such file or directory
[info] Switching to cgroup v1
cp: cannot stat ‘/etc/default/grub’: No such file or directory
dpkg: error processing package homeassistant-supervised (–install):
installed homeassistant-supervised package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
homeassistant-supervised

Can anyone help with this? Thank you!

    andrew · 27/03/2022 at 8:39 pm

    I encountered the same issue on my RaspberryPi 3. I think this is a recent bug with the installer since ARM architectures do not use the grub bootloader. I’ve tried both 32 and 64 bit OSs with the same issue. Interestingly, the containers actually spin up and you can access Homeassistant. The annoying thing is that apt marks the package as “half-configured” and tries to fix it with any future install causing HA to fail. I edited my “/var/lib/dpkg/status” file to mark the package as “installed” and hoping for the best. HA runs fine and restarts properly after boot.

      Adam · 27/03/2022 at 10:18 pm

      Thank you for the response! Sorry I’m not very linux savvy, could you list the commands necessary to do that?

        andrew · 28/03/2022 at 9:53 am

        NB: This is not a “solution”. This is just a temporary workaround until we have answers on why the ARM installer tries to access grub.

        # Open the dpkg file using vi or nano
        sudo nano /var/lib/dpkg/status

        # Search for the homeassistant entry in the file
        # and change “half-configured” to “installed”

        # Mark the apt package on hold
        sudo apt-mark hold homeassistant-supervised

        You should now be able to use apt normally without it trying to configure homeassistant on every action.

          Char · 23/04/2022 at 9:00 pm

          I was getting stuck first at os-agent not being detected and then this little snag. Thanks!

          Lada · 16/05/2022 at 4:23 pm

          I’ve bullied it with

          sudo touch /etc/default/grub
          sudo ln -s /bin/true /bin/grub-update

          The former creates an empty config file and the latter returns 0 (no error) upon grub-update command call.

          I’ve yet to see how it works..It just warns me about grub:
          [warn] A reboot is required to apply changes to grub.

Washington · 02/04/2022 at 2:02 pm

Has anyone managed to install CATT – https://github.com/skorokithakis/catt – under this setup?
I’d love to do what this guy has done – https://www.youtube.com/watch?v=Fz9OhCT5MTk&t=4s

Pat · 03/04/2022 at 12:49 am

Installing the ‘ha’ cli
I am getting the following erorr, anyone know the problem.
grep: /etc/default/grub: No such file or directory
[info] Switching to cgroup v1
cp: cannot stat ‘/etc/default/grub’: No such file or directory
dpkg: error processing package homeassistant-supervised (–install):
installed homeassistant-supervised package post-installation script subprocess returned error exit status 1

Roger · 16/04/2022 at 12:43 am

Hi, first off thanks for putting this up, much easier to follow than the official version. I have installed this on a x86 thin client I bought, due to lack of and current prices of raspberry pi’s. I installed it onto a Ubuntu server installation. Seems to work perfectly, only problem is when I restart the ubuntu OS or machine, all my configuration is lost and its a fresh install of home asking me to register again. I’m guessing its something simple, something to do with Docker maybe? – any one have similar and fixed it?

Cheers!!

Peter Silva · 16/04/2022 at 11:25 pm

Need Help Guys

Rasp pi 3 I get :

— version.home-assistant.io ping statistics —
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 34.143/34.143/34.143/0.000 ms
Device “eth0
eth0” does not exist.
[info] Install supervisor Docker container
[info] Install supervisor startup scripts
[info] Install AppArmor scripts
[info] Start Home Assistant Supervised
[info] Installing the ‘ha’ cli
grep: /etc/default/grub: No such file or directory
[info] Switching to cgroup v1
cp: cannot stat ‘/etc/default/grub’: No such file or directory
dpkg: error processing package homeassistant-supervised (–install):
installed homeassistant-supervised package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
homeassistant-supervised

Any ideas??

thanks

Quan · 26/04/2022 at 12:46 pm

Hi,
Great article!
I am installing HASS on RPi4, 4GB via ssh. Everything went smoothly until `dpkg -i homeassistant-supervised.deb`, I get this error:
(Reading database … 36968 files and directories currently installed.)
Preparing to unpack homeassistant-supervised.deb …
[warn]
[warn] If you want more control over your own system, run
[warn] Home Assistant as a VM or run Home Assistant Core
[warn] via a Docker container.
[warn]
[warn] ModemManager service is enabled. This might cause issue when using serial devices.
Leaving ‘diversion of /etc/NetworkManager/NetworkManager.conf to /etc/NetworkManager/NetworkManager.conf.real by homeassistant-supervised’
Leaving ‘diversion of /etc/NetworkManager/system-connections/default to /etc/NetworkManager/system-connections/default.real by homeassistant-supervised’
Leaving ‘diversion of /etc/docker/daemon.json to /etc/docker/daemon.json.real by homeassistant-supervised’
Leaving ‘diversion of /etc/network/interfaces to /etc/network/interfaces.real by homeassistant-supervised’
Unpacking homeassistant-supervised (1.1.1) over (1.1.1) …
dpkg: dependency problems prevent configuration of homeassistant-supervised:
homeassistant-supervised depends on os-agent.

dpkg: error processing package homeassistant-supervised (–install):
dependency problems – leaving unconfigured
Errors were encountered while processing:
homeassistant-supervised

Is this because I run the command via ssh? How should I run this command via ssh without error?

Kevin · 06/05/2022 at 7:10 pm

Anyody had the issue to get the docker file issue:

sudo curl -sSL https://get.docker.com | bash
# Executing docker install script, commit: 0221adedb4bcde0f3d18bddda023544fc56c29d1
+ sudo -E sh -c ‘apt-get update -qq >/dev/null’
E: The repository ‘https://download.docker.com/linux/debian bookworm Release’ does not have a Release file.

Paul · 10/05/2022 at 10:56 pm

After wrestling with grub errors and finally getting to
“Within a few minutes you will be able to reach Home Assistant…”
Navigating to either homeassistant.local:8123 or the IP address of the Pi, I get “The site can’t be reached” error in the browser. Anybody else encounter / resolve this?

Leave a Reply

Avatar placeholder

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.