Installatie
- ESPHome installeren in Debian 10 (standalone)
- Home Assistant Core installatie in Debian 10 (Buster) met Python
- Home Assistant Supervised installatie in Debian 10 (Buster)
ESPHome installeren in Debian 10 (standalone)
ESPHome is een systeem om een ESP8266/ESP32 microcontroller te configureren met behulp van configuratie bestanden geschreven in YAML. ESPHome maakt zoveel mogelijk gebruik van dezelfde structuur en opbouw van deze YAML bestanden als Home Assistant. ESPHome is daarom ook makkelijk te integreren in Home Assistant.
Je kunt ook gebruik maken van de ESPHome Dashboard, een web interface die het configuratie bestand voor je aanmaakt, controleert op syntax fouten en compileert naar een firmware bestand voor de microcontroler. Dit firmware (.bin) bestand kan je downloaden en daarna in de microcontroller flashen met behulp van je USB naar serieel converter. Eventuele latere wijzigingen van de configuratie kunnen daarna via OTA (Over The Air) weggeschreven worden naar de microcontroller.
Wanneer je Home Assistant Supervised hebt geïnstalleerd, dan kan je op een eenvoudige manier ESPHome installeren en gebruiken vanuit Home Assistant. Heb je Home Assistant Core draaien, dan kan je ESPHome installeren vanaf de commandline.
Dit laatste wordt beschreven in onderstaand artikel.
De installatie instructies lijken in grote lijnen op de installatie van Home Assistant Core. ESPHome is ook geschreven in Python. In dit document gaan we er van uit dat Home Assistant Core reeds is geïnstalleerd.
Voor ESPHome maken we een aparte gebruiker. Ook maken we een virtuele Python omgeving en een systemd opstartscript om de ESPHome Dashboard automatisch te starten wanneer het systeem opstart.
Gebruiker aanmaken voor ESPHome
useradd -rm -s /bin/bash esphome -G dialout
Virtuele Python omgeving aanmaken
Directory voor de virtuele Python omgeving aanmaken en rechten toekennen:
cd /srv
mkdir esphome
chown esphome:esphome esphome
Vervolgens gaan we de virtuele Python omgeving maken. Dit doen we onder de gebruiker esphome:
sudo -u esphome -H -s
cd /srv/esphome
virtualenv --system-site-packages -p /usr/local/bin/python3.9 /srv/esphome
source bin/activate
Nu de virtuele omgeving is aangemaakt kunnen we nog een benodigd Python pakket installeren met:
python3 -m pip install wheel
En dan installeren we ESPHome:
pip3 install esphome
Verlaat de virtuele Python omgeving met exit of <CTRL-D>.
ESPHome Dashboard automatisch starten met systemd
We maken nu een bestand aan zodat ESPHome Dashboard automatisch start bij het opstarten van het systeem.
Open de editor:
nano /etc/systemd/system/esphome-dashboard.service
Hier plaatsen we het volgende in:
[Unit]
Description=ESPHome Dashboard
After=network.target
[Service]
WorkingDirectory=/home/esphome
User=esphome
ExecStart=/srv/esphome/bin/esphome dashboard config
Restart=on-failure
RestartSec=5s
Environment="PATH=/srv/esphome/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games"
[Install]
WantedBy=multi-user.target
In bovenstaand opstartscript zien we dat de WorkingDirectory is ingesteld op /home/esphome.
Dit betekent dat de configuratie bestanden van ESPHome in deze directory weggeschreven worden.
Deze bestanden staan weer in de directory config (dus /home/esphome/config).
De regel met ExecStart start de ESPHome Dashboard op.
Je kunt de web interface eventueel ook nog beveiligen met een eigen inlogscherm door onderstaande parameters toe te voegen:
ExecStart=/srv/esphome/bin/esphome dashboard config --username user --password password --open-ui
De regel die begint met Environment zorgt er voor dat de omgevingsvariabelen goed ingesteld worden.
In dit geval is dat het pad naar de juiste directories. Wanneer dit niet goed staat ingesteld, werkt het compileren niet in ESPHome.
Vervolgens voeren we het volgende uit:
systemctl --system daemon-reload
systemctl enable esphome-dashboard.service
systemctl start esphome-dashboard.service
Controleer of de service nu actief is met:
systemctl status esphome-dashboard.service
Je kunt nu naar de ESPHome Dashboard via http://<IP-ADRES-MACHINE>:6052
ESPHome updaten
Wanneer er een nieuwe versie uit is van ESPHome kan men deze via de commandline updaten:
sudo -u esphome -H -s
cd /srv/esphome
source bin/activate
pip3 install --upgrade esphome
Als dit succesvol is verlopen kan je de virtuele omgeving verlaten met <CTRL-D> of exit. Hierna dient men ESPHome te herstarten met:
systemctl restart esphome-dashboard.service
Bronnen
ESPHome homepage
How to create a systemd service for python script with virtualenv
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
Home Assistant Supervised installatie in Debian 10 (Buster)
In deze instructies wordt beschreven hoe men Home Assistant Supervised kan installeren in Debian 10 (Buster).
De installatie zal in grote lijnen ook uitgevoerd kunnen worden in andere Linux distributies.
Home Assistant Supervised is een complete installatie van alle modules (Home Assistant Core, Home Assistant Supervisor en add-ons).
Alle modules draaien in Docker. De installatie wordt uitgevoerd door middel van een script.
Debian updaten en benodigde pakketten installeren
Zorg er eerst voor dat Debian up-to-date is:
apt-get update
apt-get upgrade
Installeer vervolgens de volgende benodigde pakketten:
apt-get install software-properties-common apparmor-utils apt-transport-https ca-certificates curl dbus jq network-manager
ModemManager uitschakelen
ModemManager hebben we niet nodig en kan conflicten geven met eventuele andere devices, dus gaan we deze uitschakelen:
systemctl disable ModemManager
systemctl stop ModemManager
Docker installeren
curl -fsSL get.docker.com | sh
Home Assistant Supervised installeren
curl -sL "https://raw.githubusercontent.com/Kanga-Who/home-assistant/master/supervised-installer.sh" | bash -s
De installatie heeft enige tijd nodig.
Je kunt nu met je webbrowser gaan naar http://<IP-ADRES-MACHINE>:8123
Wanneer de installatie klaar is krijg je het inlogscherm te zien. Je kan dan een eerste inlog account aanmaken.
Hierna kan je verder gaan met de configuratie van Home Assistant.
Bronnen
https://community.home-assistant.io/t/installing-home-assistant-supervised-on-debian-10/200253