[Domotique] Home Assistant et Hass.io

Tags: Raspberry Pi Domotique Tuto Home Assistant


Bonjour à tous,

Comme j’en avais parlé dans mon dernier article, je suis passé de Gladys à Home Assistant.
Nous allons voir aujourd’hui comment installer ce logiciel sur un Raspberry Pi ainsi que la petite nuance entre Home Assistant et Hass.io.

Home Assistant, qu’est-ce que c’est ?

La domotique

Pour ceux ne connaissant pas trop ce qu’est la domotique, je vous réfère à la définition donnée par Wikipédia:

La domotique est l’ensemble des techniques de l’électronique, de physique du bâtiment, d’automatisme, de l’informatique et des télécommunications utilisées dans les bâtiments, plus ou moins interopérables et permettant de centraliser le contrôle des différents systèmes et sous-systèmes de la maison et de l’entreprise (chauffage, volets roulants, porte de garage, portail d’entrée, prises électriques, etc.). La domotique vise à apporter des solutions techniques pour répondre aux besoins de confort (gestion d’énergie, optimisation de l’éclairage et du chauffage), de sécurité (alarme) et de communication (commandes à distance, signaux visuels ou sonores, etc.) que l’on peut retrouver dans les maisons, les hôtels, les lieux publics, etc.

En résumé, c’est un ensemble de techniques de gestion automatisée lié au confort, à la sécurité, à la communication, etc.

Un exemple pour un particulier serait d’allumer la lumière du salon automatiquement si vous vous trouvez dans la pièce et que la luminosité est trop faible, ou bien en demandant de vive voix “Allume la lumière du salon”.

Home Assistant

C’est donc un logiciel de domotique Open Source écrit en Python. On peut facilement l’installer sur un appareil comme un Raspberry Pi. Je vous laisse sans plus tarder tester la démo officielle de Home Assistant pour que vous puissiez vous faire une idée de l’interface et de comment ça s’utilise.

Les 2 versions disponibles

Il existe 2 versions distinctes de Home Assistant, je vous laisse découvrir ci-dessous (ou dans la FAQ officielle) la nuance entre ces 2 versions ainsi que l’installation de chacune.

Hass.io

C’est la version clé en main. Il s’agit en fait d’un système d’exploitation tout prêt avec Home Assistant installé dedans. Le tutoriel officiel d’installation est suffisamment clair, je vous laisse vous y référer si c’est cette version que vous désirez installer.
L’avantage de cette solution est d’avoir un système sécurisé sans avoir besoin de connaissance particulière (le SSH est coupé par défaut par exemple). C’est orienté pour les personnes n’ayant pas les compétences ou l’envie de gérer un serveur (ça ne supprime pas le fait de devoir bien administrer le serveur, mais tout est pré-mâché avec des tutoriels vraiment bien foutus). Et bien sur, ça ne veut pas dire qu’il ne faudra pas faire de sauvegardes régulières du système et que les mises à jour sont automatiques !

D’ailleurs, ils résument parfaitement la mentalité qu’il faut avoir à propos des sauvegardes :)

All that matters is that you set them up and test them regularly.

Home Assistant

Personnellement, je n’étais pas intéressé par Hass.io car j’ai déjà un système d’exploitation sur mon Raspberry Pi avec des services installés dessus. Par conséquent, il faut installer manuellement le logiciel.
Cette solution a l’avantage de pouvoir s’installer et tourner sur n’importe quelle machine où Python peut tourner (on va donc pas faire de liste exhaustive, c’est à peu près partout !) mais l’inconvénient que ce n’est pas à la portée de tous.

Installation

J’ai donc choisi d’utiliser la méthode d’installation manuelle dans un environnement python virtualisé.
Le tutoriel officiel est disponible ici mais voici tout de même les étapes que j’ai suivies:

  • Installation des paquets: sudo apt install python3 python3-venv python3-pip libffi-dev
  • Création de l’utilisateur dans les groupes indispensables pour l’utilisation de certains modules: sudo useradd -rm homeassistant -G dialout,gpio
  • Création du dossier et on lui donne les droits: cd /srv && sudo mkdir homeassistant && sudo chown homeassistant:homeassistant homeassistant
  • Création de l’environnement virtuel:

    sudo -u homeassistant -H -s
    cd /srv/homeassistant
    python3 -m venv .
    source bin/activate
    
  • Il ne nous reste plus qu’à installer quelques paquets:

    python3 -m pip install wheel
    pip3 install homeassistant
    

Ainsi qu’un petit hass (sans mauvais jeux de mots s’il vous plait !) pour démarrer le service.

Démonisation

On va tout simplement utiliser systemd qui va faire tout le travail pour nous. Se placer dans le dossier /etc/systemd/system/, y créer un fichier nommé hass.service et y mettre le contenu suivant (à adapter selon vos besoins bien sur !):

[Unit]
Description=hass
After=network.target

[Service]
ExecStart=/srv/homeassistant/bin/hass
WorkingDirectory=/srv/homeassistant
StandardOutput=inherit
StandardError=inherit
Restart=always
User=homeassistant

[Install]
WantedBy=multi-user.target

Il ne reste qu’à mettre systemd à jour, à activer le service et à le démarrer (après l’avoir stoppé à la suite du paragraphe précédent):

sudo systemctl --system daemon-reload
sudo systemctl enable hass
sudo systemctl start hass

Mises à jour

Les mises à jour se font ultra simplement:

  • On change d’utilisateur: sudo -u homeassistant -H -s
  • On source notre environnement virtuel: source /srv/homeassistant/bin/activate
  • On met à jour les paquets: pip3 install --upgrade homeassistant
  • On fait un ctrl-d ou deactivate pour quitter l’utilisateur puis on redémarre le service: sudo systemctl restart hass

Et voilà, il suffit de retourner sur la page web du service pour s’assurer que tout fonctionne bien :)

Conclusion

Et voilà, vous connaissez maintenant ce qu’est la domotique et notamment home-assistant. Peut-être l’avez-vous installé, peut-être préférez-vous un autre logiciel concurrent, parlez-en dans les commentaires ci-dessous !

Commentaires