A while ago, I discovered and learned to love the opensource project Home Assistant. Home Assistant at its core is a home automation system which allows to link multiple home automation technologies together and “Do Stuff”. I like doing stuff and figuring out how this work and this will be an update to to the status of my Home Assistant automation project. One of the trickiest decisions you will need to make, is to determine how to install the Home Assistant you wish to use.
Home Assistant has many ways to install it, and making the correct choice can save you quite a bit of time. Essentially, there are a several ways to install it, including:
- Code Install
- Raspberry Pi image
- Home Assistant Green
- Container Installation
- Home Assistant OS
Home Assistant
Home Assistant is a free, open-source home automation platform that serves as a powerful, local smart home hub, emphasizing user control, privacy, and independence from cloud services. It integrates thousands of devices and protocols—such as lights, thermostats, sensors, cameras, Zigbee, Z-Wave, and more—into a single customizable dashboard, allowing users to monitor, control, and create sophisticated automations entirely on their own hardware like a Raspberry Pi or dedicated server. Powered by a global community of enthusiasts, it supports voice control via its privacy-focused Assist feature, energy tracking, and advanced scripting, while keeping all data stored locally for faster response times and enhanced security. Regular updates continue to refine its user-friendly interface, making it accessible for beginners yet highly extensible for tinkerers seeking a fully self-hosted alternative to proprietary systems like Google Home or Amazon Alexa.
Code Install – False Start
One of the first decisions one must make is how to install the project. When I first started with Home Assistant, I went through a tedious of hand building the Home Assistant software package on Linux. I complete this project a while ago, and since, it is no longer supported. From memory, I installed the latest version of Debian, and then needed to install a bleeding edge version of python, and then configure everything. I would not recommend using this method and since I complete the project, it is no longer supported.
Since I no longer had an easy update path, and I hoped to keep my home assistant actually serving my home, I realized I needed to take another path.
One Pi to do it all
Probably the easiest way to get Home Assistant running is to install it on a Raspberry Pi single board computer. I personally am getting away from using raspberry pi computers, for a few reasons. First, they are pretty cheap in terms the quality of the power supplies, lack of a real time clock etc.. Additionally, in a server rack, the Raspberry Pi typically are just placed “someplace”, and tend to make organization difficult. With the invention of Containers and virtual machine technology, I have personally have ruled out raspberry pi’s for home servers. Recently, I organized my server cabinet and removed three Raspberry Pi single board computers, along with a menagerie of ethernet, video and power cables. Finally, I read somewhere that Home Assistant on my Raspberry Pi could run slower when running some automations.
Home Assistant Green and Yellow
The Home Assistant Green and Yellow projects are probably the correct choice for most people. They are raspberry pi compute modules which come preinstalled with Home Assistant OS. I chose to not go this route simply because of the added cost, which is relatively minor, and the suffer from many of the issues with the Raspberry Pi.
Containing Home Assistant
Home Assistant was first deployed in my network on a dedicated virtual machine, running on my TrueNAS server, installed as a “container”. This solution worked great for me, for a time. Home Assistant is running as a virtual machine, so I was not adding to my power bill. Since the virtual machine is running on a server, it can scale up as needed so I should not suffer from speed problems caused by a relatively slow single board computer.
Container Software Deployment is a modern way to package, distribute, and run applications in isolated, lightweight environments called containers. Container deployment allows developers to bundle an application along with all its dependencies (code, libraries, configuration files, and runtime) into a single standardized unit — a container. This container can then be deployed consistently across any environment (developer laptop, testing servers, or production cloud) without worrying about “it works on my machine” issues.
I was extremely happy running Home Assistant is a docker container. I had complete control of the operating system, and updating the docker image to the latest image is extremely easy. Then, I found an issue with the container solution… Home Assistant running in a container does not support the add-on store. For most, this feature may not be an issue. However, for me this is a deal breaker as it will not allow me to implement some of my home assistant tasks and features.
Home Assistant OS
In order to get the feature set which I required, I needed to update my virtual machine to Home Assistant Operating System.
Home Assistant OS (also called HAOS) is the official, purpose-built operating system for running Home Assistant, the popular open-source home automation platform. It is a lightweight, embedded Linux-based OS (built with Buildroot, not a full distribution like Ubuntu) designed specifically to host the complete Home Assistant ecosystem. It turns a device — such as a Raspberry Pi, Home Assistant Green, ODROID, or even an x86-64 mini PC/VM — into a dedicated, reliable smart home hub with minimal maintenance.
As I stated, my Home Assistant is running on a virtual machine inside of my TrueNAS Server. I found a get set of instructions to install Home Assistant OS on a TrueNAS server.
https://community.home-assistant.io/t/installing-haos-in-a-vm-on-truenas/511393
While, I was installing the new virtual machine, my current installation of Home Assistant was up and running and doing its work. Before I shutdown the server, I create a backup of my configuration using the home assistant user interface. As I booted the new server, I shutdown the old server. Once connected to the new server and imported the backup of the old server. Home Assistant has done a great job of supporting a good backup system.
The only trick to this process, is that I had to passthru the USB device used by Home Assistant to communicate with my Zigbee hub. Additionally, I had to reconnect each Zigbee device to the Zigbee Hub. This process was easy enough, and I am not sure why I had to do this step. Regardless, once done, I am once again connected to all of my devices and my new Home Assistant OS virtual machine.
