Home Assistant. Installer le snap sur NAS Synology sur une machine virtuelle Ubuntu • Domotique et objets connectés à faire soi-même

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.

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.

Meilleur choix
Modèles 2020 DS220+ DS720+ DS920+
Anciennes générations DS218+ DS718+ DS918+
Tarif moyen du NAS nu** ~ 340€ ~ 455€ ~ 550€
Processeur Intel Celeron J3355

Dual Core@2.0 GHz

Intel Celeron J3455

Quad Core@2.3 GHz

Intel Celeron J3455

Quad Core@2.3 GHz

Score CPU Benchmark 1193 2126 2126
RAM 2 GB DDR3L 2 GB DDR3L 4 GB DDR3L
RAM max 6 GB  (2 GB + 4 GB)

possible 8GB

6 GB (2 GB + 4 GB)

possible 8GB

8 GB (2 x 4 GB )
Nombre VM max.* 2 2 4
Stockage max. 28 TO

2 x 14 TO

28 TO

2 x 14 TO

56 TO

4 x 14 TO

Transcodage*** H.264 (AVC), H.265 (HEVC), MPEG-2 et VC-1 ; résolution maximale : 4K (4096 x 2160)@30i/s H.264 (AVC), H.265 (HEVC), MPEG-2 et VC-1 ; résolution maximale : 4K (4096 x 2160)@30i/s H.264 (AVC), H.265 (HEVC), MPEG-2 et VC-1 ; résolution maximale : 4K (4096 x 2160)@30i/s
USB 2.0 x2
USB 3.0 x1 x3 x2
Ethernet 1GbE x1 x2 x2
eSATA x1 x1 x1
Bruit 19.3 dB(A) 18.4 dB(A) 19.8 dB(A)
Conso. normale 17,23W 20,1 W 28,8 W
Conso. en veille 5,4 W 9,1 W 12,6 W
Fiche technique Consulter Consulter Consulter

(*) 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.

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 13:13:35 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 13:13:35 vm-ubuntu20 systemd[1]: Starting OpenBSD Secure Shell server...
déc. 14 13:13:35 vm-ubuntu20 sshd[2961]: Server listening on 0.0.0.0 port 22.
déc. 14 13:13:35 vm-ubuntu20 sshd[2961]: Server listening on :: port 22.
déc. 14 13:13:35 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.

Source : snapcraft.io

Vous  pouvez également installer snapd depuis le Terminal en exécutant les deux commandes suivantes

A la fin de l’installation, déconnectez-vous et reconnectez-vous ou redémarrez votre système pour vous assurer que les chemins de snap sont correctement mis à jour.

sudo apt update
sudo apt install snapd

Plus d’information ici

Sur Debian 9 (Stretch) et Debian 10 (Buster), snap peut être installé directement à partir de la ligne de commande:

sudo apt update
sudo apt install snapd

Si la commande sudo n’est pas installée (généralement parce qu’un mot de passe root a été fourni au moment de l’installation), vous pouvez installer snap en passant d’abord au compte root :

su root
apt update
apt install snapd

Déconnectez-vous et reconnectez-vous, ou redémarrez votre système pour vous assurer que les chemins de snap sont correctement mis à jour. Après cela, installez le corecomposant logiciel enfichable afin d’obtenir la dernière version snapd.

sudo snap install core
core 16-2.45.2 from Canonical✓ installed

Plus d’information ici

Snap peut être installé sur un Raspberry Pi exécutant la dernière version Raspberry Pi OS depuis le Terminal en exécutant les commandes

sudo apt update
sudo apt install snapd

Vous devrez également redémarrer le Raspberry Pi en exécutant la commande (attention à sauvegarder vos documents avant d’exécuter la commande

sudo reboot

Après cela, installez le corecomposant logiciel enfichable afin d’obtenir la dernière version snapd.

sudo snap install core
core 16-2.45.2 from Canonical✓ installed

Remarque. Certains snaps nécessitent de nouvelles fonctionnalités snapd et afficheront une erreur telle que snap “lxd” assumes unsupported features” lors de l’installation. Vous pouvez résoudre ce problème en vous assurant que le composant logiciel enfichable principal est installé (snap install core) et qu’il s’agit de la dernière version (snap refresh core).

Pour tester votre système, installez le snap hello-world et assurez-vous qu’il fonctionne correctement

snap install hello-world
hello-world 6.3 from Canonical✓ installed
hello-world

Plus d’information ici

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/

2 home-assistant-configurator

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

Avez-vous aimé cet article ?

[Total: 0 Moyenne: 0]