Home Assistant, Node-RED & MQTT on Linux Mint
|
Home Assistant (HA) is a free open source home automation software. You can integrate it with countless devices and services. We install it together with Node-RED and Mosquitto MQTT broker on Linux Mint. For this tutorial, I used Linux Mint 19.2 “Tina”.
Manual installation versus HASS.IO
You can install Home Assistant on a Raspberry Pi using HASS.IO, a ready-made image. HASS.IO also has an installer for all sorts of Add-ons. However, on Linux Mint you have to install everything manually. Below is a tutorial to help you on your way. After completing these steps you have a basic installation with Home Assistant, Node-RED and Mosquitto MQTT broker.
Install Home Assistant
To install Home Assistant on Linux Mint you can for the most part follow the instructions in “Manual installation on a Raspberry Pi“.
Perform an update of the installed packages:
sudo apt-get update
sudo apt-get upgrade -y
Install new packages:
sudo apt-get install python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev
Add user ‘homeassistant’ to the ‘diaout’ group. We do not include the “i2c” and “gpio” groups.
sudo useradd -rm homeassistant -G dialout
Create the installation directory:
cd /srv
sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant
Create a “virtual environment” for user “homeassistant”
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate
Install Python wheel:
python3 -m pip install wheel
Install HA:
pip3 install homeassistant
Start HA:
hass
Home Assistant autostart
To have HA start automatically, we broadly follow the instructions under “Python virtual environment” in the article “Autostart using systemd” on the HA website.
Use the command below to open the text editor Nano and create the service file for systemd:
sudo nano -w /etc/systemd/system/[email protected]
Paste the code below into the file:
[Unit] Description=Home Assistant After=network-online.target [Service] Type=simple User=%i ExecStart=/srv/homeassistant/bin/hass -c "/home/%i/.homeassistant" [Install] WantedBy=multi-user.target
When you’re done, press CTRL-X and then Y to save the file and close Nano.
Install Mosquitto MQTT broker
As an MQTT broker we will install Mosquitto, which is easy with the following command:
sudo apt install mosquitto
To test whether Mosquitto works properly, we can follow the instructions in the “MQTT Testing” article. Go to “Developer Tools” in HA and open the “MQTT” tab.
For example, you can enter the following in the “Topic” field:
home-assistant/switch/1/power
You can then enter a message for the topic in the “Payload” field, for example:
ON
In the “Listen to a topic” field, type a # to see everything:
#
Press “Start Listening” and then press “Publish”. The result should be like the following text:
Message 23 received on home-assistant/switch/1/power/stat/POWER at 12:16 PM: ON QoS: 0 - Retain: false Message 22 received on home-assistant/switch/1/power/stat/RESULT at 12:16 PM: { "POWER": "ON" } QoS: 0 - Retain: false
Install Node-RED
First install Node.js and npm, for example according to the instructions on this page:
sudo apt-get install curl python-software-properties
curl -sL https://deb.nodesource.com/setup_12.x | sudo bash -
sudo apt-get install nodejs
sudo apt-get install npm
Test Node.js
node -v
Test npm:
npm -v
Then install Node-RED according to the instructions at https://github.com/node-red/node-red:
sudo npm install -g --unsafe-perm node-red
Start Node-RED:
node-red
Install Home Assistant nodes in Node-RED
To let Node-Red work together with HA, you can integrate the HA nodes into Node-RED. To do this, install the HA npm package “node-red-contrib-home-assistant-websocket“.
In Node-RED, open the menu (click on the icon with the three horizontal lines), then:
- Choose the menu option “Manage palette”
- Select the “Install” tab
- Search for “node-red-contrib-home-assistant-websocket”
- Click on “Install”
- When the installation is finished you will see the message “Nodes added to palette”
In the list on the left side of the screen, you will see new nodes below “home assistant”.


Start Node-Red automatically
To make Node-Red start when the computer starts up, you can follow the “Step 3 – Launching Node-RED on Startup” section of the instructions in this article, with a few minor adjustments.
Just like for HA, we create a service file with Nano:
sudo nano /etc/systemd/system/node-red.service
Paste the following code into the file:
[Unit] Description=Node-RED After=syslog.target network.target [Service] ExecStart=/usr/bin/node-red --max-old-space-size=128 -v Restart=on-failure KillSignal=SIGINT # log output to syslog as 'node-red' SyslogIdentifier=node-red StandardOutput=syslog # non-root user to run as WorkingDirectory=/home/myusername/ User=myusername Group=myusername [Install] WantedBy=multi-user.target
Pay attention:
- Execstart must point to /usr/bin/node-red
- WorkingDirectory, User and Group: enter the non-root username of your Linux Mint installation instead of myusername. In other words, the username with which you normally log in to Linux Mint.
Save the file with CTRL + X and then Y.
With the following command, Node-RED will now start automatically:
sudo systemctl enable node-red
You can start Node-RED manually with:
sudo systemctl start node-red
or stop with:
sudo systemctl stop node-red
Next steps
With these instructions, you make a basic installation with HA, Node-RED, and Mosquitto. Furthermore, it is wise to protect Node-RED and Mosquitto with passwords and TLS. Instructions for this can be found in the blogs “IoT server: Mosquitto and Node Red on Raspberry Pi” and “IoT server: secure MQTT communication using TLS“, in a later article we will see how we can do this with Linux Mint.
Hi, thanks for this manual, very helpful.
After install of HA it shoes me warning about python version (it wants 3.7 instead 3.6).
Do you know how to update it?
When executing nano for HA it asks me for the password for HA – can you help pls
Did you try “raspberry”?
Thanks for the fast reply , I am on Linux Mint 20 Ulyana. Tried root, my root password,admin,default ,return (no password) and get 3 tries before I start again with sudo nano -w /etc/systemd/system/[email protected], raspberry does not work.
This is what I get:
[sudo] password for homeassistant:
Sorry, try again.
I’m sorry, I was replying a bit too hastily, you are not on a Raspberry Pi! It has been a while since I tried this myself.
Did you change your root password? Did you try “homeassistant”?
hello all
I am fresh off the boat for both home assistant and linux mint.
I tried to follow the instruction here above to install home assistant on linux mint 20.
I got as far as cd /srv and i goit an error message “no such directory. so i created one fine next i do a cd /srv/homeassistant and i get permission denied
what am i doing wrong. I still have a long ways to go