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
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:
- Kies menu-optie “Manage palette”
- Kies tabblad “Install”
- Zoek naar “node-red-contrib-home-assistant-websocket”
- Klik op “Install”
- 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”.


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.
Hallo OneGuy. Bedankt voor je mooie werk. Hiermee heb ik HomeAssistant werkend gekregen op een oude omgebouwde Dell thin-client. Zonder deze blog zou me dat als newby veel en veel meer tijd gekost hebben.
Hallo oneguy,
Waarom heeft u geen docker gebruikt? Als u docker gebruikt is het zelfs mogelijk van hassio te installeren en u hebt met portainer een mooi overzicht van uw add-ons.
Met vriendelijke groeten,
Stefan