Il est très facile d’installer Home Assistant sur une distribution Linux (Ubuntu, Debian, CentOS…) sur une machine virtuelle fonctionnant sur un NAS avec snapd. Les snaps sont des packages d’applications pour le bureau, le cloud et l’IoT qui sont faciles à installer, sécurisés, multiplateformes et sans dépendance. Une seule ligne de commande est nécessaire pour installer une application ce qui réduit considérablement les difficultés lorsqu’on débute sur Linux.
Hassio, la version packagée de Home Assistant intégrant le superviseur est très facile à installer avec Docker. Cependant lorsque la version de Docker installée sur le NAS est trop ancienne ou que la mise à jour tarde, il n’est plus possible de mettre à jour Hassio (Home Assistant). Si vous NAS dispose de suffisamment de puissance (au moins 8Go de RAM) et supporte la virtualisation (généralement les NAS équipés de processeur Intel), installer Hassio sur une Machine Virtuelle (VM) est une alternative pérenne.
Sommaire
- 1 Quel NAS choisir pour faire fonctionner une VM
- 2 Quelle version de Linux choisir pour installer Hassio (Home Assistant) ?
- 3 Créer une machine virtuelle Ubuntu 20.04 LTS sur NAS Synology
- 4 Activer snapd sur votre distribution Linux
- 5 Installer les snaps de Hassio, Home Assistant, Configurator, HACS
- 6 Mettre à jour Home Assistant
- 7 Quelques commandes utiles pour gérer vos snaps
- 8 Mises à jour
Quel NAS choisir pour faire fonctionner une VM
Plusieurs modèles grand public peuvent convenir pour faire fonctionner une machine virtuelle Linux (Debian, Ubuntu…).
Optez de préférence pour un modèle à double baie permettant de créer un volume RAID 1 ou Btrfs (plus moderne) afin de sécuriser vos données.
(*) nécessite au moins 4GB de RAM.
(**) Le NAS est livré sans disque dur et extension de mémoire.
(***) Permet de réduire fortement l’espace de stockage (et donc le cout global du NAS) pour la vidéo-surveillance
Quelle version de Linux choisir pour installer Hassio (Home Assistant) ?
Toutes les versions de Linux pourront faire fonctionner Home Assistant. Si vous débutez, le mieux est de rester sur une distribution avec une très grande communauté et des mises à jour régulières et stables.
Ubuntu est un très bon choix, mais c’est vraiment une question de goût. Si la machine virtuelle est dédiée à Home Assistant, inutile de s’encombrer du bureau graphique (version Desktop), la version Lite / Server fera l’affaire…à condition de ne pas être effrayé par le Terminal, évidemment. Ne vous inquiétez ps, tout est expliqué dans le tutoriel !
Créer une machine virtuelle Ubuntu 20.04 LTS sur NAS Synology
Allez sur le site officielle de Ubuntu pour récupérer l’image ISO de la distribution de votre choix. Optez de préférence pour une version LTS (Long Time Service) qui recevra les mises à jours de sécurité durant 10 ans.
Ensuite créer une machine virtuelle sur le NAS Synology comme vous en avez l’habitude. N’oubliez pas de désélectionner le fichier ISO de la distribution Ubuntu à la fin de l’installation.
Activer le port SSH
Par défaut, Ubuntu ne dispose pas de serveur SSH. Quelque soit la version installée (Desktop ou serveur), c’est bien plus pratique et rapide d’installer SSH. Commencez par passer en mode administrateur, cela vous évitera de devoir faire précédé chaque commande d’un sudo.
sudo -i
Ensuite on met à jour le système et on installe le serveur openssh
apt update
apt install openssh-server
Maintenant, on vérifie que le service ssh est bien démarré en exécutant la commande systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-12-14 1335 CET; 4min 17s ago
Docs: man:sshd(8)
man:sshd_config(5)
Main PID: 2961 (sshd)
Tasks: 1 (limit: 2318)
Memory: 3.3M
CGroup: /system.slice/ssh.service
└─2961 sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
déc. 14 1335 vm-ubuntu20 systemd[1]: Starting OpenBSD Secure Shell server...
déc. 14 1335 vm-ubuntu20 sshd[2961]: Server listening on 0.0.0.0 port 22.
déc. 14 1335 vm-ubuntu20 sshd[2961]: Server listening on :: port 22.
déc. 14 1335 vm-ubuntu20 systemd[1]: Started OpenBSD Secure Shell server.
Il ne reste plus qu’à modifier les paramètres du pare feu en autorisant SSH
ufw allow ssh
Vous pouvez maintenant vous connecter en SSH sur Ubuntu depuis le Terminal de macOS ou Linux ou à l’aide de Putty avec Windows.
Activer snapd sur votre distribution Linux
Snapd est le service d’arrière-plan qui gère et maintient automatiquement vos snaps. Le package (snap) est indépendant* de la distribution Linux et de la plateforme (ARM, Intel…), c’est ce qui est génial avec snap. Ca fonctionne même sur le Raspberry Pi !
Si vous utilisez Ubuntu 16.04 LTS (Xenial Xerus) ou une version ultérieure, y compris Ubuntu 18.04 LTS (Bionic Beaver) et Ubuntu 20.04 LTS (Focal Fossa), vous n’avez rien à faire. Snap est déjà installé et prêt à fonctionner.
Pour les versions d’Ubuntu entre 14.04 LTS (Trusty Tahr) et 15.10 (Wily Werewolf), ainsi que les versions Ubuntu qui n’incluent pas snap par défaut, snap peut être installé à partir du Centre logiciel Ubuntu en recherchant snapd.
En cas de problème d’installation sur votre distribution Linux, allez sur cette page de la documentation de snapcraft.
Installer les snaps de Hassio, Home Assistant, Configurator, HACS
Il existe (actuellement) deux snaps de Home Assistant. Il faut installer les snaps développés par Joachim Marthinsen Giæver. Je vous conseille d’installer les 3 snaps pour avoir une configuration au Top.
Je vous propose ici d’installer en ligne de commande depuis le Terminal les 3 snaps car vous aurez de toute façon besoin de saisir quelques paramètres durant l’installation. Sachez toutefois que le 3 snaps de Joachim peuvent également être installés depuis
Cliquez sur la loupe puis saisissez Home Assistant dans le champ de recherche pour les trouver.
1 home-assistant-snap le Core du serveur domotique home assistant
snap install home-assistant-snap
Dès la fin de l’installation, Home Assistant démarre sous la forme d’un service. On accède à l’interface HTML est accessible depuis un navigateur à l’adresse IP_UBUNTU:8123
Un fois que vous avez créé votre compte utilisateur, allez dans Configuration -> Info pour récupérer le chemin vers le fichier configuration.yaml de Home Assistant.
Généralement, les fichiers de configuration et les scripts de Home Assistant sont stockés dans le dossier /var/snap/home-assistant-snap/101/
Le configurateur (ancien File Editor) permet de modifier tous les fichiers de configuration et les scripts sans quitter l’interface de Home Assistant
snap install home-assistant-configurator
Les deux snaps sont automatiquement connectés entre eux. Pour le vérifier, exécuter
snap connections
Si tous s’est bien déroulé, vous devriez trouver la ligne suivante dans la liste
content[configurations] home-assistant-configurator:configurations home-assistant-snap:configurations
Si ce n’est pas le cas, on connecte manuellement les snaps en exécutant la commande
snap connect home-assistant-configurator:configurations home-assistant-snap:configurations
Ouvrez le fichier configuration.yaml
nano /var/snap/home-assistant-snap/101/configuration.yaml
et ajouter les lignes suivantes en modifiant IP_HASSIO par l’adresse IP de votre machine virtuelle Ubuntu sur le NAS Synology. Remarques :
- Indiquer le nom de domaine ou l’adresse IP uniquement. localhost ne fonctionne pas car Home Assistant intègre la page HTML du configurateur sous la forme d’une iframe.
- Si vous avez activé le support HTTPS sur Home Assistant, vous pouvez saisir https dans l’url, sinon la page du configurateur ne sera pas accessible
panel_iframe:
configurator:
title: Configurator
icon: mdi:wrench
url: http://IP_HASSIO:3218
Enregistrer la modification avec Ctrl + X (puis Y) puis redémarrer Home Assistant
sudo snap restart home-assistant-snap
Vous avez maintenant accès à tous les scripts et fichiers de YAML de HomeAssistant
3 HACS permet d’installer directement depuis l’interface de Home Assistant de nombreux thèmes et plugins complémentaires.
L’installation de HACS est ultra simplifié en utilisant le snap de Joachim.
Excécuter cette commande pour installer le snap HACS
sudo snap install home-assistant-hacs
A la fin de l’installation, re-démarrer le serveur
sudo snap restart home-assistant-snap
Attendez le re-démarrage de Home Assistant puis allez dans Configuration -> Intégration -> + Ajouter une intégration.
Chercher HACS dans le champ de recherche et cliquer sur la ligne
Cocher pour accepter toutes les conditions d’utilisation
Vous aurez besoin d’un compte GitHub (gratuit) pour accéder aux dépôts HACS.
Terminez en cliquant sur soumettre. Si tout est correct, vous devez obtenir un message de succès. Vous pouvez associer HACS à une pièce mais ce n’est pas obligatoire. Cliquer enfin sur Terminer
Vous pouvez maintenant ajouter de nouveaux plugins et thèmes.
Lisez cet article pour en savoir plus sur HACS
Mettre à jour Home Assistant
Pour le moment, il n’y a aucun snap permettant d’ajouter le Superviseur ce qui permettrait de mettre à jour Home Assistant depuis l’interface HTML.
La seule chose qu’il est possible de faire est d’installer la version candidate comme ceci.
Arrêter le service
sudo snap stop home-assistant-snap
Rafraîchir (mettre à jour) en ajoutant l’option –candidate
sudo snap refresh home-assistant-snap --candidate
Puis on relance le serveur
sudo snap start home-assistant-snap
Quelques commandes utiles pour gérer vos snaps
Voici quelques commandes utiles
Lister les snaps installés
Arrêter un snap
sudo snap stop nom_du_snap
Toutes les autres commande
- Fonctions de base : find, info, install, remove, list
- Avancés : refresh, revert, switch, disable, enable, create-cohort
- Historiques : changes, tasks, abort, watch
- Services : services, start, stop, restart, logs
- Permissions : connections, interface, connect, disconnect
- Configuration: get, set, unset, wait
- Aliases : alias, aliases, unalias, prefer
- Compte utilisateur : login, logout, whoami
- Snapshots : saved, save, check-snapshot, restore, forget
- Device : model, reboot, recovery
- Autres : warnings, okay, known, ack, version
- Développement : download, pack, run, try
Mises à jour
14/12/2020Publication du tutoriel