Home Assistant Core installatie in Debian 10 (Buster) met Python
In dit document wordt beschreven hoe je Home Assistent Core kan installeren door middel van Python in Debian 10 (Buster).
Home Assistant Core bevat dus niet de Supervisor en de add-ons.
Python installeren
Op het moment van schrijven is voor Home Assistant Python 3.9 nodig. In Debian 10 hebben we standaard alleen de beschikking over Python 2.7 en Python 3.7. Je kan met onderstaand commando controleren welke versies van Python geïnstalleerd zijn in Debian:
ls /usr/bin/python*
De actieve Python versie kan je controleren met:
python -V
Hoe je de nieuwste Python 3.9 versie kan installeren vanuit source staat beschreven in het artikel Python installeren vanuit source in Debian 10.
Hoe je de standaard Python versie kan instellen en kan wisselen van Python versie staat beschreven in het artikel Default Python versie wijzigen in Debian 10.
Overige benodigde pakketten installeren
Onderstaande uitvoeren om de rest van de benodigde pakketten te installeren:
apt-get install libffi-dev libssl-dev libjpeg-dev zlib1g-dev autoconf build-essential libopenjp2-7 libtiff5 sudo
Gebruiker aanmaken voor Home Assistant
We gaan nu een gebruiker aanmaken speciaal voor Home Assistant:
useradd -rm -s /bin/bash homeassistant -G dialout
Bovenstaand commando maakt de gebruiker homeassistant aan, maakt de home directory /home/homeassistant aan en voegt de gebruiker toe aan de groep dialout.
Virtuele Python omgeving aanmaken
Je kunt in Python een virtuele omgeving maken die onafhankelijk draait van de rest. Het voordeel is dat je eventueel verschillende Python versies naast elkaar kan draaien. Voor Home Assistant maken we een virtuele omgeving aan in de directory /srv/homeassistant.
De configuratie bestanden van Home Assistant komen te staan in /home/homeassistant.
We gaan eerst het Python pakket pip updaten (pip is de package installer voor Python) en vervolgens het pakket virtualenv voor het maken van de virtuele Python omgeving. We gaan in onderstaande handelingen uit van een geïnstalleerde Python 3.9 versie.
python3.9 -m pip install --upgrade pip
pip3 install virtualenv
We voeren het volgende uit om de directory aan te maken en de gebruiker homeassistant eigenaar te maken van deze directory:
cd /srv
mkdir homeassistant
chown homeassistant:homeassistant homeassistant
Vervolgens gaan we de virtuele Python omgeving maken. Dit doen we onder de gebruiker homeassistant.
Let op dat je de juiste python versie kiest, in ons geval python3.9.
Je kunt het juiste pad controleren op de commandline met: which python3.9
sudo -u homeassistant -H -s
cd /srv/homeassistant
virtualenv --system-site-packages -p /usr/local/bin/python3.9 /srv/homeassistant
source bin/activate
Merk op dat we in de virtuele omgeving zitten door de prompt die je nu ziet.
In mijn geval is dat (homeassistant) homeassistant@hass:/srv/homeassistant$
Nu de virtuele omgeving is aangemaakt kunnen we nog een benodigd Python pakket installeren met:
python3 -m pip install wheel
En uiteindelijk installeren we Home Assistant Core met:
pip3 install homeassistant
Start Home Assistant Core nu eenmalig door:
hass
De installatie wordt nu afgemaakt en de configuratie directory /home/homeassistant/.homeassistant wordt ook aangemaakt.
Je kunt nu met je webbrowser naar http://<IP-ADRES-MACHINE>:8123 om de eerste gebruiker aan te maken voor Home Assistant.
Let op dat het even kan duren voordat je dit scherm krijgt. Home Assistant is dan nog niet klaar met de installatie, dus heb even geduld.
Wanneer je kan inloggen en Home Assistant werkt, dan kan je het nu afbreken met Control-C.
Verlaat de virtuele Python omgeving nu met exit of <CTRL-D>.
Home Assistant Core automatisch starten met systemd
We maken nu een bestand aan zodat Home Assistant automatisch start bij het opstarten van de PC.
Open de editor:
nano /etc/systemd/system/home-assistant@homeassistant.service
Hier plaatsen we het volgende in:
[Unit]
Description=Home Assistant
After=network-online.target
[Service]
Type=simple
User=%i
WorkingDirectory=/home/%i/.homeassistant
ExecStart=/srv/homeassistant/bin/hass -c "/home/%i/.homeassistant"
[Install]
WantedBy=multi-user.target
Vervolgens voeren we het volgende uit:
systemctl --system daemon-reload
systemctl enable home-assistant@homeassistant.service
systemctl start home-assistant@homeassistant.service
Controleer of de service nu actief is met:
systemctl status home-assistant@homeassistant.service
Home Assistant updaten
Er komen regelmatig nieuwe updates uit van Home Assistant. De update kan vanaf de commandline uitgevoerd worden binnen de virtuele Python omgeving. We doen dit onder de gebruiker homeassistant en gaan daarna naar de virtuele omgeving:
sudo -u homeassistant -H -s
cd /srv/homeassistant
source bin/activate
Controleer of je ook daadwerkelijk in de virtuele omgeving zit door de juiste prompt die je krijgt:
(homeassistant) homeassistant@hass:/srv/homeassistant$
Daarna kunnen we Home Assistant updaten met het commando:
pip3 install --upgrade homeassistant
Als dit succesvol is verlopen kan je de virtuele omgeving verlaten met <CTRL-D> of exit.
Hierna dient men Home Assistant te herstarten met:
systemctl restart home-assistant@homeassistant.service
Automatisch naar virtuele omgeving gaan voor homeassistant
Om niet iedere keer bovenstaande handelingen uit te hoeven voeren als je Home Assistant wilt updaten kunnen we het bestand ~/.bashrc gebruiken in de home directory van homeassistant. Hiervoor gaan we eerst naar de home directory toe:
cd /home/homeassistant
Onderstaande commando’s zorgen ervoor dat er twee regels toegevoegd worden in het bestand .bashrc die er voor zorgen dat we direct in de virtuele omgeving zitten zodra we inloggen met de gebruiker homeassistant:
sh -c 'echo "cd /srv/homeassistant" >> ~/.bashrc'
sh -c 'echo "source /srv/homeassistant/bin/activate" >> ~/.bashrc'
Log nu in als gebruiker homeassistant met:
sudo -u homeassistant -H -s
Je zou nu in de virtuele omgeving moeten zitten, herkenbaar aan de prompt.
Bronnen
Home Assistant – Installation
Autostart using systemd
Updating Home Assistant