English Click this button for the international website

Home Assistant, Node-RED & MQTT op Linux Mint

Home Assistant (HA) is gratis open source domotica software. Je kunt het met talloze apparaten en diensten integreren. We installeren het samen met Node-RED en Mosquitto MQTT-broker op Linux Mint. Voor deze tutuorial gebruikte ik Linux Mint 19.2 “Tina”.

Handmatige installatie versus HASS.IO

Op een Raspberry Pi kun je Home Assistant installeren d.m.v. HASS.IO, een kant-en-klare image. In HASS.IO zit ook een installer voor allerhande Add-ons. Op Linux Mint moet je echter alles handmatig installeren. Hieronder volgt een tutorial om je daarmee op weg te helpen. Na het afronden van deze stappen heb je een basis-installatie met Home Assistant, Node-RED en Mosquitto MQTT-broker.

Home Assistant installeren

Om Home Assistant op Linux Mint te installeren kun je voor het grootste deel de aanwijzingen in “Manual installation on a Raspberry Pi” volgen.
Voer een update uit van de geïnstalleerde packages:
sudo apt-get update
sudo apt-get upgrade -y
Installeer nieuwe packages:
sudo apt-get install python3 python3-dev python3-venv python3-pip libffi-dev libssl-dev
Voeg user ‘homeassistant’ toe aan de groep ‘diaout’. De groepen “i2c” en “gpio” laten we achterwege.
sudo useradd -rm homeassistant -G dialout
Maak de installatiedirectory:
cd /srv
sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant
Maak een “virtual environment” voor gebruiker “homeassistant”
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate
Installeer Python wheel:
python3 -m pip install wheel
Installeer HA:
pip3 install homeassistant
Start HA:
hass

Home Assistant autostart

Om HA automatisch te laten starten volgen we in grote lijnen de aanwijzingen onder “Python virtual environment” in het artikel “Autostart using systemd” op de website van HA.

Gebruik onderstaand commando om tekst-editor Nano te openen en het service-bestand voor systemd aan te maken:

sudo nano -w /etc/systemd/system/[email protected]

Plak de onderstaande code in het bestand:

[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

Wanneer je klaar bent, druk dan CTRL-X en daarna Y om het bestand op te slaan en Nano af te sluiten.

Mosquitto MQTT broker installeren

Als MQTT-broker zullen we Mosquitto installeren, Dat gaat eenvoudig met het volgende commando:

sudo apt install mosquitto

Om te testen of Mosquitto goed werkt kunnen we de aanwijzingen van het artikel “MQTT Testing” volgen. Ga in HA naar “Developer Tools” en open het tabblad “MQTT”.

In het “Topic”-veld kun je bijvoorbeeld het volgende invoeren:

home-assistant/switch/1/power

In het ” Payload”-veld kun je dan een bericht voor het topic invoeren, bijvoorbeed:

ON

Typ in het veld “Listen to a topic” een # om alles te zien:

#

Druk op “Start Listening” en druk vervolgens op “Publish”. Het resultaat zou zoals onderstaande tekst moeten zijn:

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

Node-RED installeren

Installeer eerst Node.js en npm, bijvoorbeeld volgens de aanwijzingen op deze pagina:
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

Installeerdaarna Node-RED volgens de aanwijzingen op https://github.com/node-red/node-red:

sudo npm install -g --unsafe-perm node-red

Start Node-RED:

node-red

Open http://localhost:1880

Installeer Home Assistant-nodes in Node-RED

Om Node-Red met HA te te laten samenwerken kun je de HA-nodes in Node-RED integreren. Installeer daarvoor het HA npm package “node-red-contrib-home-assistant-websocket“.

In Node-RED, open het menu (klik op het icoon met de drie horizontale streepjes), daarna:

  1. Kies menu-optie “Manage palette”
  2. Kies tabblad “Install”
  3. Zoek naar “node-red-contrib-home-assistant-websocket”
  4. Klik op “Install”
  5. Als de installatie klaar is zie je de melding  “Nodes added to palette”

In de lijst links op het scherm zul je onderaan nieuwe nodes zien onder “home assistant”.

Home Assistant, Node-RED & MQT op Linux Mint - HA Nodes
Home Assistant, Node-RED & MQT op Linux Mint – HA Nodes

Node-Red automatisch starten

Om Node-Red te laten starten wanneer de computer opstart kun je het gedeelte “Step 3 – Launching Node-RED on Startup” van de aanwijzingen in dit artikel volgen, met een paar kleine aanpassingen.

Net als voor HA maken we met Nano een service-bestand aan:

sudo nano /etc/systemd/system/node-red.service

Plak de volgende code in het bestand:

[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

Let op:

  • Execstart moet wijzen naar /usr/bin/node-red
  • WorkingDirectory, User en Group: vul in plaats van myusername hier de non-root gebruikersnaam van je Linux Mint installatie in. Oftewel, de gebruikersnaam  waarmee je normaliter op Linux Mint inlogt.

Bewaar het bestand met CTRL + X en daarna Y.

Met het volgende commando zal Node-RED voortaan automatisch opstarten:

sudo systemctl enable node-red

Je kunt Node-RED eventueel handmatig starten met:

sudo systemctl start node-red

of stoppen met:

sudo systemctl stop node-red

Vervolgstappen

Met deze instructies maak je een basis-installatie met HA, Node-RED en Mosquitto. Verder is het verstandig om Node-RED en Mosquitto met wachtwoorden en TLS te beveiligen. Aanwijzingen hiervoor kun je vinden in de de blogs “IoT server: Mosquitto en Node Red op Raspberry Pi” en “IoT server: veilige MQTT-communicatie met TLS“, in een later artikel zullen we zien hoe we dit met Linux Mint kunnen doen.

2 Reacties

Voeg een reactie toe

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *