The Home Assistant naming can be a bit confusing for newcomers to the project. There is Home Assistant, Hass.IO, HassOS, Home Assistant Core, and Home Assistant Supervised (to just name a few). Those are plenty of names for a single project. Fear not, for I have written a guide which will explain each one of the names you will come across online.
The names within Home Assistant do not describe the application you are installing. At the end of the day, each version will give you access to Home Assistant Core. Instead, it is easier to use the name to describe the way Home Assistant is installed, and which extras you receive with it.
Table of Contents
- Home Assistant vs. Home Assistant Core
- What is Home Assistant, Home Assistant Core and Home Assistant Container?
- Home Assistant Supervised (also known as Home Assistant on Generic Linux)
- Installing Home Assistant using the Home Assistant Operating System
- Which version of Home Assistant is the best?
Home Assistant vs. Home Assistant Core
Despite a recent renaming and simplification of the naming within the project, there are still open questions not even I can answer for you. For example, Home Assistant was to be used for what is now frequently referred to as the Home Assistant Operating System installation method. However, more recently, it appears that Home Assistant Core and Home Assistant are being used synonymously. The official changelogs refer to Home Assistant Core, while the about section in my Docker installation uses Home Assistant.
Below is my best effort at describing the four installation methods Home Assistant offers. These are based on official descriptions and community input.
Home Assistant (Core)
Home Assistant Supervisor
Home Assistant (Core)
It is important to know which version you are running, as you will be asked about it whenever you ask questions to the community. Each installation method has the following in common, as they all run Home Assistant (Core):
- You can use the powerful automation engine to automate your smart home using a web-interface or YAML.
- Dashboards can be used to build layouts and present your data, switches, media players and much more.
- You can use any of the 2,100+ integrations.
- You are free to use Blueprints created by the community.
|Home Assistant Core in a Docker container||✅||✅||✅||✅|
|Supervisor to control Docker container and add-ons||✅||✅||❌||❌|
|Capable of installing and running add-ons||✅||✅||❌||❌|
What is Home Assistant, Home Assistant Core and Home Assistant Container?
Home Assistant Core is a Python program that can be run on various operating systems. When packaged as a Docker image, we call it Home Assistant Container. Any system already running, or being capable of running Docker, can use this installation method. If you know your way around Docker, or use an OS such as Unraid, the installation only requires a couple of lines in a Docker Compose file, or a few clicks in a graphical interface.
Alternatively, you can install Home Assistant Core directly on Python. This method is only recommended for experienced users that know what they are doing. As it is such are rarity to see anyone running Home Assistant Core directly on Python, the name is often used to describe the Home Assistant Container installation method. Home Assistant Container will provide a cleaner and easier method of running Home Assistant Core for the majority of users.
Home Assistant Core and Home Assistant Container do not provide the full Supervisor experience, and thus does not provide the Supervisor panel or add-ons. In most cases, this shouldn’t be an issue, as Home Assistant’s add-ons can be installed in their own Docker container.
Home Assistant Supervised (also known as Home Assistant on Generic Linux)
Home Assistant Supervised is the full Home Assistant experience on a regular Linux operating system, such as Ubuntu or Debian. You will get everything included in Home Assistant (Home Assistant Supervisor and add-ons) with the added benefit of running your preferred version of Linux over the Home Assistant Operating System. This can also be a downside if you want to control everything on your system from a single interface.
Besides the obvious, the only difference between the Home Assistant Operating System and Home Assistant Supervised installation method is that you won’t be able to update the operating system from the Home Assistant UI when using Home Assistant Supervised.
Home Assistant Supervised was previously also known as Hass.io on generic Linux. Just as with Home Assistant Core directly on Python, the Home Assistant Supervised installation method isn’t widespread. If users are running their own operating system, they will frequently already be using Docker and can install any add-ons directly.
Installing Home Assistant using the Home Assistant Operating System
The Home Assistant Operating System installation method is what used to be called Hass.IO. Home Assistant Operating System is a fully UI-managed ecosystem that runs Home Assistant Core, the Home Assistant Supervisor, and Home Assistant add-ons. If you go with Home Assistant over Home Assistant Core, you will see some added options such as add-ons management and the add-on store and the option to update Home Assistant with one click.
There are provided images for the installation of Home Assistant Operating System along with Core and the Supervisor for devices such as the Raspberry Pi and Intel NUC. Alternatively, you can spin up a Home Assistant Operating System as a virtual machine on Windows, macOS, and Linux systems.
What is the Home Assistant Operating System?
Formerly known as just HassOS, the Home Assistant Operating System itself is a very minimal Linux appliance distribution built to run only Home Assistant Core, Supervisor, and its add-ons. It is optimized to run on single board computers (SBC) such as the Raspberry Pi, ODROID, Tinker Board, and also generic x86 systems such as the Intel NUC.
You, the user, have very little control over the Home Assistant Operating System, and it is not based on a regular Linux distribution such as Ubuntu. If you want to use your system for anything besides Home Assistant, then it isn’t for you.
Home Assistant Operating System uses Docker as its Container engine. By default, it deploys the Home Assistant Supervisor as a container. Home Assistant Supervisor in turn uses the Docker container engine to control Home Assistant Core and add-ons in separate containers.
What is the Home Assistant Supervisor?
The Home Assistant Supervisor allows you, the user, to manage your Home Assistant installation from Home Assistant. The Supervisor has the following responsibilities:
- Run Home Assistant Core
- Update Home Assistant Core (and automatically roll back if the update fails)
- Make and restore backups
- Unified audio system
- Update the Home Assistant operating system (disabled in a Supervised installation)
Which version of Home Assistant is the best?
There is no single answer to that questions because which version of Home Assistant you go with depends on the following:
- The hardware you intend to use as the host.
- Whether you want to use your system for anything else, such as a NAS or general server.
- Your experience.
The best Home Assistant experience for beginners
For the inexperienced user who just wants to dip their toes into home automation, the Home Assistant Operating System method is the way to go. You can get yourself an inexpensive Raspberry Pi and get started in a matter of minutes. If a new device isn’t in your budget, any 64-bit capable system able to boot using UEFI can run the Home Assistant Operating System. This could be an old notebook or desktop.
The best Home Assistant experience for those with existing systems
Home Assistant Core inside the Container is great for those already running Docker or a Docker-capable system and want full control over their containers. Most of the Home Assistant add-ons are available as Docker containers and can be run separately.
This is what I do. Unraid, which I use, is capable of running the Home Assistant Operating System as a virtual machine, though in my opinion it would complicate things. Most of the resources my six-core CPU offers are there to power the numerous Docker containers I use. Reserving any cores for just one VM would reduce the performance of everything else running on the system. Home Assistant Operating System would also force me to administer another (virtual) machine. Using Docker, it is also possible to quickly launch a second instance of Home Assistant for testing purposes.
If all you want to do is run Home Assistant, there is no need to look any further than a Raspberry Pi 4 Model B or Intel NUC running Home Assistant Operating System. There are no downsides to running it, and it certainly isn’t reserved just for beginners.
When to use Home Assistant Supervised and Home Assistant Container
Home Assistant Supervised is great if you want to run your own Linux distribution, either as a virtual machine or on bare metal. This will give you the added benefit of having full control over your OS, but will obviously require knowledge of Linux systems.
The benefit Home Assistant add-ons have over separate Docker containers is that they will already be preconfigured. So if you were to install Node-RED from the add-on store, it would already be preconfigured to work with your Home Assistant installation. If you set up Node-RED in separately container, you will have to configure it. On the plus side, Home Assistant add-ons are not updated as frequently and quickly as official Docker containers.
There are also cases where it wouldn’t be possible to easily use the Home Assistant Operating System installation method. Take Unraid for example. If you want to run Home Assistant using the Docker functionality built in to Unraid, it is easiest to use the Home Assistant Container.