Tutoriel d’installation de la solution d’automatisation (domotique) Home Assistant.
Après m’être documenté sur les différentes solutions domotique open source, j’ai choisi Home Assistant pour devenir ma solution d’automatisation. Ce blog comprendra donc par la suite des tutoriels liée à cet outil.
Installation
Cette partie s’inspire de la documentation officiel d’Home Assistant.
On tape les deux commandes de début de tutoriel et on installe les paquets nécessaire à notre installation.
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install python3 python3-venv python3-pip libffi-dev libssl-dev
On va créer un utilisateur spécifique, j’ai nommé “homeassistant” (original non ?).
sudo useradd -rm homeassistant
On crée ensuite le répertoire d’installation et on attribut les droits à notre nouvel utilisateur :
cd /srv
sudo mkdir homeassistant
sudo chown homeassistant:homeassistant homeassistant
L’installation nécessite de crée un environnement virtuel Python. On fait donc cela en tant qu’utilisateur “homeassistant”.
sudo -u homeassistant -H -s
cd /srv/homeassistant
python3 -m venv .
source bin/activate
On installe ensuite le package wheel
qui est un utilitaire d’installation simplifié. Ensuite on installe notre fameux “Home Assistant”.
python3 -m pip install wheel
pip3 install homeassistant
Premier lancement
L’installation fini, on lance Home Assistant avec l’option --open-ui
afin de voir ce qu’il se passe en temps réel.
hass --open-ui
Personnellement, j’ai cette erreur a chaque lancement… Tant pis, je n’ai toujours rien fait a ce propos.
ERROR (MainThread) [homeassistant.components.device_tracker] Unable to load /home/homeassistant/.homeassistant/known_devices.yaml: Config file not found: /home/homeassistant/.homeassistant/known_devices.yaml
Le premier lancement du service prend entre 5 et 10 min. Il devrait alors être accessible sur le port 8123 de votre serveur (penser à ouvrir ce port si vous utilisez un firewall sur votre serveur).
http://ip_du_serveur:8123
Laissez-vous alors guider par l’assistant de création de compte afin d’atteindre la page d’accueil.
L’installation est maintenant faite. Cependant, notre service n’est pas encore autonome car il se fermera dès qu’on quittera le SSH. On va donc voir dans la partie suivante comment configurer le démarrage automatique du service au démarrage du serveur.
Lancement automatique
Une fois encore, cette partie reprend la documentation toujours en anglais.
On récupère notre terminal en coupant Home Assistant (CTRL+C) et on revient sur notre session utilisateur avec un exit
.
On crée donc le fichier au format systemd :
sudo nano -w /etc/systemd/system/home-assistant@homeassistant.service
Et on y insère le code suivant :
[Unit]
Description=Home Assistant
After=network-online.target
[Service]
Type=simple
User=homeassistant
ExecStart=/srv/homeassistant/bin/hass -c "/home/homeassistant/.homeassistant"
[Install]
WantedBy=multi-user.target
On recharge donc systemd, on active notre nouveau service et on le lance :
sudo systemctl --system daemon-reload
sudo systemctl enable home-assistant@homeassistant
sudo systemctl start home-assistant@homeassistant
On vérifie alors qu’on a bien de nouveau accès à l’interface Web d’Home Assistant. Il est bien de valider le bon lancement au démarrage avec un redémarrage du serveur :
sudo reboot
Fichiers de configuration
Ce tutoriel n’est qu’une procédure d’installation, le chemin des fichiers de configuration sont dans le répertoire /home/homeassistant/.homeassistant
.
Si vous crée des fichiers supplémentaire, n’oubliez pas de rendre l’utilisateur “homeassistant” propriétaire de ces fichiers :
sudo chown homeassistant:homeassistant <mon_fichier>
Mise à jour
Voici les commandes permettant de mettre à jour Home Assistant :
sudo -u homeassistant -H -s
source /srv/homeassistant/bin/activate
pip3 install --upgrade homeassistant