Formation PUB420 : Système domotique DIY, 2020 Home Assistant

6.1 Installation de Home Assistant et premier accès


Cette fiche a été mise à jour pour Home Assistant core-2023.9.3.

Home Assistant est un excellent logiciel domotique à code source ouvert qui peut être installé entre autres sur un Raspberry Pi.

Dans les faits, il peut :

  • tourner par-dessus le système d'exploitation de votre choix (on parlera de Home Assistant Core)
  • tourner par-desssus un système Linux de votre choix, par exemple Raspberry Pi OS (on parlera alors de Home Assistant Supervised)
  • tourner dans un conteneur Docker que vous gérez vous-mêmes (on parlera de Home Assistant Container)
  • selon la technique recommandée, tourner par-dessus le système d'exploitation Home Assistant Operating System ou HassOS pour les intimes, autrefois appelé Hass.io. HassOS est un système d'exploitation GNU/Linux léger spécifiquement conçu pour exécuter des conteneurs Docker sur des systèmes embarqués. Auparavant, il était basé sur resinOS. Aujourd'hui, il est bâti à partir de Buildroot.

Nous travaillerons ici avec la version installée sur HassOS.

Pour installer Home Assistant selon cette technique, il faut installer une image de HassOS sur la carte micro SD. L'image est disponible directement dans Raspberry Pi Imager.

Une fois le Pi démarré, HassOS téléchargera puis installera automatiquement la toute dernière version de Home Assistant.

Notez que la procédure d'installation de Home Assistant est dite headless, c'est-à-dire que vous n'avez pas besoin de brancher écran ni clavier au Raspberry Pi. La seule utilité d'un écran serait de voir l'état d'avancement de l'installation, mais ce n'est pas nécessaire.

Voici les sections couvertes dans cette procédure :

▼Publicité Le texte se poursuit plus bas

Préparer le Raspberry Pi

Commencez par prendre connaissance de la fiche suivante afin d'acquérir les bonnes composantes de base : Un Raspberry Pi comme unité centrale.

Préparer la carte micro SD

Pour installer le système d'exploitation HassOS sur votre Rapsberry Pi :

  • Insérez la carte micro SD dans votre ordinateur.
  • Si ce n'est pas déjà fait, installez Raspberry Pi Imager sur votre ordinateur puis lancez cette application.
  • Cliquez sur Choisir l'OS.
  • Cliquez sur Other specific-purpose OS.

    Other specific-purpose OS

  • Choisissez Home assistants and home automation.

    Home assistants and home automation

  • Cliquez sur Home Assistant.

    Home Assistant

  • Finalement, choisissez la version qui correspond à votre Raspberry Pi.

    Home Assistant pour Raspberry Pi 4

  • Spécifiez sur quelle carte l'image doit être installée puis cliquez sur Écrire.
  • Une fois l'image en place sur la carte micro SD, vous pourriez avoir à l'écran un message du genre « Le disque que vous avez attaché n’est pas lisible par cet ordinateur. » ou, en anglais « The disk you connected cannot be read on this computer ».
  • Ceci est normal, cliquez sur Ignorer.

    Le disque que vous avez inséré n’est pas lisible par cet ordinateur. Le disque que vous avez inséré n’est pas lisible par cet ordinateur.

Configurations initiales (clé USB)

Puisque la carte micro SD n'est pas lisible sur certains ordinateurs, une technique a été prévue pour effectuer les configurations initiales, par exemple le réseau sans fil, le serveur DNS et l'adresse IP statique.

Il s'agit de placer les fichiers de configuration sur une clé USB qui répond à des règles précises :

  • La clé doit être vierge et être formatée en FAT32, ext4 ou NTFS. Si vous choisissez FAT32 :
    • Sous Windows, l'utilitaire par défaut ne permet pas de formater en FAT32 les clés USB de plus de 32 Go. Vous devez utiliser un autre utilitaire, par exemple MiniTool (voir https://www.minitool.com/partition-disk/fat32-not-an-option.html).
    • Sous Mac, il n'y pas cette limite de taille. Choisissez MS-DOS (FAT) dans l'utilitaire de disque.
  • La clé doit posséder un volume nommé CONFIG (en majuscules).
  • Les fichiers de configuration doivent comporter des sauts de ligne correctement encodés pour Linux (LF).

Les configurations disponibles sont détaillées sur cette fiche.

Voici un exemple de base :

Fichier network/my-network

[connection]
id=my-network
uuid=votre-uuid-ici
type=802-11-wireless

[802-11-wireless]
mode=infrastructure
ssid=NOM-DU-RESEAU
# Uncomment below if your SSID is not broadcasted
#hidden=true

[802-11-wireless-security]
auth-alg=open
key-mgmt=wpa-psk
psk=MOT-DE-PASSE-DU-RESEAU

[ipv4]
method=auto

[ipv6]
addr-gen-mode=stable-privacy
method=auto

Et voici un exemple plus élaboré :

Fichier network/my-network

[connection]
id=my-network
uuid=votre-uuid-ici
type=802-11-wireless

[802-11-wireless]
mode=infrastructure
ssid=NOM-DU-RESEAU
# Uncomment below if your SSID is not broadcasted
#hidden=true

[802-11-wireless-security]
auth-alg=open
key-mgmt=wpa-psk
psk=MOT-DE-PASSE-DU-RESEAU

[ipv4]
method=manual
address=192.168.1.145/24;192.168.1.1
dns=xxx.xxx.xxx.xxx;8.8.8.8;8.8.4.4;

[ipv6]
addr-gen-mode=stable-privacy
method=auto

Remarquez que le réseau sans fil et l'adresse IP statique peuvent aussi être configurés via l'interface Web de Home Assistant une fois que l'installation est terminée (vous aurez cependant besoin initialement d'une connection réseau câblée).

Activation du SSH

Pour pouvoir vous connecter au Raspberry Pi via SSH et ainsi avoir un accès complet du système de fichiers du Raspberry Pi, vous devez générer sur votre ordinateur la paire de clés publique et privée puis copier la clé publique dans un fichier nommmé authorized_keys à la racine du volume CONFIG.

Suivez bien les instructions qui suivent, un petit écart fera en sorte que ça ne fonctionne pas!

Générer les clés SSH

Sous Mac ou Linux, travaillez directement dans une fenêtre Terminal.

Sous Windows, pour effectuer les mêmes manipulations, vous devez ouvrir une fenêtre Terminal (et non CMD) ou PowerShell. Vous pouvez également installer la console Git Bash (https://git-scm.com/downloads).

Pour vérifier si les clés SSH ont déjà été générées, entrez cette commande sur votre ordinateur :

Terminal sur l'ordinateur

ls ~/.ssh

Nous allons utiliser l'algorithme Ed25519 qui est l'algorithme recommandé de nos jours.

La clé publique est stockée dans le fichier id_ed25519.pub et la clé privée, dans le fichier id_ed25519.

Si les clés n'existent pas, vous devez les générer les clés à l'aide de cette commande :

Terminal sur l'ordinateur

ssh-keygen -t ed25519 -C 'moncourriel@mondomaine.com'

Acceptez l'emplacement par défaut (sous Windows : C:\Users\MonNom\.ssh\id_ed25519, sous Mac : /Users/monnom/.ssh/id_ed25519).

Afin d'augmenter la sécurité, vous pouvez entrer un mot de passe lorsqu'on vous demande un passphrase. Par contre, ceci obligera à entrer ce mot de passe à chaque connexion. Vous pouvez donc appuyer sur Entrée sans entrer de mot de passe.

Fichier authorized_keys

Il faut maintenant copier la clé publique dans un fichier à la racine du volume CONFIG.

La technique sera différente selon votre système d'exploitation.

MacOS ou Linux

Sous macOS ou Linux, le fichier sera créé et rempli par cette commande :

Terminal sur l'ordinateur

cat /Users/monnom/.ssh/id_ed25519.pub > /Volumes/CONFIG/authorized_keys

Windows

Sous Windows, la redirection (caractère >) cause parfois un mauvais fonctionnement (saut de ligne superflu à la fin de la clé, caractères représentés par des rectangles en début de fichier, caractères qui ressemblent à du chinois).

Il est donc préférable de procéder comme suit :

  • Créez un fichier texte vierge sur la clé USB dont l'encodage est ANSI ou UTF-8 sans BOM et nommez-le authorized_keys (aucune extension).

    Attention : vous devez utiliser un éditeur adapté à ce type de tâche, par exemple Geany.

    • Ne créez pas le fichier en faisant un clic droit dans l'explorateur de fichiers / Nouveau fichier.
    • N'utilisez pas non plus le bloc notes de Windows pour créer ce fichier. 
    • Ne renommez pas le fichier id_ed25519.pub en authorized_keys.
  • Affichez le contenu du fichier id_ed25519.pub à l'écran.
    PowerShell

    cat C:\Users\MonNom\.ssh\id_ed25519.pub

  • Copiez-collez dans ce fichier la clé qui a été affichée à l'aide de la commande cat. Important : il faut copier le contenu du fichier et non copier le fichier lui-même car celui qui demeure sous Windows utilisera les caractères de saut de ligne de Windows (CR LF) et celui qui ira sur le système Linux utilisera les sauts de ligne de Linux (LF).

Démarrer le Raspberry Pi

Le système d'exploitation est maintenant installé et les configurations de bases sont réalisées.

Passons maintenant à l'installation de Home Assistant.

  • Coupez l'alimentation du Raspberry Pi si ce n'est pas déjà fait.
  • Retirez la carte micro SD de l'ordinateur de façon sécuritaire puis insérez-la dans le Raspberry Pi.
  • Si requis, insérez également dans le Pi la clé USB qui contient vos configurations SSH, d'adresse IP et/ou de réseau sans fil.
  • Si vous souhaitez utiliser des clés USB Z-Wave ou Zigbee dans votre système domotique, branchez-les immédiatement au Pi.
  • Mettez le Pi sous tension.

Vérifier la date du système

Sur certains réseaux, le service NTP (protocole de diffusion du temps en réseau ou, en anglais, Network Time Protocol) ne fonctionne pas, ce qui empêche le Pi d'avoir la bonne date et la bonne heure. Ceci peut empêcher le bon fonctionnement de l'installation.

Si vous avez un doute sur les configurations de votre réseau, branchez un clavier et un écran au Pi.

Remarquez que si vous ne disposez pas d'un écran et d'un clavier, il est possible d'effectuer certaines vérifications à l'aide d'une connexion SSH mais le tout est plus facile avec écran et clavier.

Vous devriez voir cet écran dès que HassOS est rendu assez loin dans son travail d'installation.

Résultat à l'écran

Waiting for the Home Assistant CLI to be ready...
 _    _                                         _     _              _
| |  | |                          /\           (_)   | |            | |
| |__| | ___  _ __ ___   ___     /  \   ___ ___ _ ___| |_ __ _ _ __ | |_
|  __  |/ _ \| '_ \ _ \ / _ \   / /\ \ / __/ __| / __| __/ _\ | '_ \| __|
| |  | | (_) | | | | | | __ /  / ____ \\__ \__ \ \__ \ || (_| | | | | |_
|_|  |_|\___/|_| |_| |_|\___| /_/    \_\___/___/_|___/\__\__,_|_| |_|\__|

Welcome on Home Assistant command line.
Waiting for Supervisor to start up...
System information
  IPv4 Addresses for eth0:
  IPv4 Adresses for wlan0: 192.168.1.145/24
  IPV6 Adresses for wlan0: fe80:fde8:195c:eb0b:c18a/64

  OS Version:              Home Assistant OS 9.0
  Home Assistant Core:     2022.9.7

  Home Assistant URL:      http://homeassistant.local:8123
  Observer URL:            http://homeassistant.local:4357

ha >

À partir de l'invite ha >, passez au terminal HassOS :

Console Home Assistant

login

Lorsque vous voyez l'invite #, vous pouvez entrer cette commande :

Terminal HassOS

date

Si la date n'est pas valide, prenez le temps de l'ajuster.

Terminal HassOS

date -s "2022-10-17 08:50:00"

Vérifier les configurations réseau

Pour installer Home Assistant, HassOS aura besoin d'accéder à Internet.

Prenez le temps de vérifier si vos configurations sont bonnes :

  • Accédez au terminal HassOS comme vous l'avez fait pour vérifier la date.
  • Tentez de rejoindre l'adresse IP de Google.
    Terminal HassOS

    ping 8.8.8.8

  • Si vous obtenez le message 8.8.8.8 is alive!, vous pouvez vérifier si le DNS fonctionne en tentant de rejoindre le domaine de Google.
    Terminal HassOS

    ping google.com

  • Si vous obtenez le message google.com is alive!, vous savez que votre accès au réseau est bien configuré.
  • Pour régler un problème de réseau, vérifiez à quel réseau vous êtes branchés.
    Terminal HassOS

    nmcli con show

    Si le sans fil est correctement configuré, vous devriez avoir au moins une ligne dont la première colonne affiche le nom de votre fichier de configuration réseau et dont la dernière colonne affiche wlan0.

    Le réseau peut également être disponible par câble. Vous aurez alors une ligne dont la première colonne affiche Wired connection 1 et la dernière, eth0.

    Résultat à l'écran

    NAME                   UUID                                    TYPE        DEVICE
    Wired connection 1     85f43ecc-5f84-303c-8510-755f0b81e131    ethernet    eth0
    my-network-cegep       bdc2edc4-2543-4d11-b8b3-cfb6b0b18b0e    wifi        wlan0
    my-network-maison      84cd8755-2349-464e-9540-6df10ba7aef6    wifi        --

    Si vos n'obtenez aucune ligne avec eth0 et aucune ligne avec wlan0, ou si malgré tout vous n'arrivez pas à faire un ping vers google.com, référez-vous à la fiche « Configurer l'accès au réseau dans Home Assistant » pour régler le problème.

Installation automatique de Home Assistant

Dès que le Pi est branché, qu'il a un accès réseau et que son horloge est correctement configurée, HassOS pourra finaliser l'installation.

Soyez patients, cette opération peut prendre jusqu'à 20 minutes!

Pendant que l'installation est en cours, Vous pouvez accéder à l'interface Web de Home Assistant pour voir la progression (voir détails plus bas).

Une fois l'installation complétée, vous pouvez retirer la clé USB qui contient les configurations. Vous n'en aurez plus besoin puisque les fichiers qu'elle contient ont été copiés sur le Pi.

Accéder à Home Assistant

L'accès se fait via un navigateur sur votre ordinateur ou via l'application Home Assistant sur votre téléphone.

Dans votre navigateur ou dans l'application Home Assistant, entrez l'un des URL suivants :

  • http://homeassistant.local:8123
  • http://homeassistant:8123
  • http://192.168.1.145:8123 (remplacez 192.168.1.145 par l'adresse IP du Pi)

Notez que si vous travaillez dans un environnement qui comprend plusieurs installations de Home Assistant, par exemple une salle de classe, seule la version avec l'adresse IP fonctionnera.

Pendant que HassOS installe Home Assistant, vous obtiendrez un message à cet effet :

Preparing Home Assistant

Pendant l'installation, vous pouvez cliquer sur le point bleu afin de voir la journalisation (log) des opérations en cours.

Les informations qui apparaissent sont également enregistrées dans un fichier journal que vous pouvez consulter à partir du terminal HassOS à l'aide de cette commande :

Terminal HassOS

ha supervisor logs

Dans le terminal HassOS, Vous saurez que l'installation est terminée quand vous verrez cette ligne au bas du fichier journal.

Résultat à l'écran

INFO (MainThread) [supervisor.homeassistant.core] Detect a running Home Assistant instance
INFO (SyncWorker_2) [supervisor.docker.interface] Cleanup images: ['ghcr.io/home-assistant/raspberrypi3-homeassistant:landingpage']

Dans l'interface Web, vous saurez que l'installation est terminée quand vous verrez l'écran de bienvenue.Premier écran

Cliquez sur Créer ma maison connectée puis suivez les étapes pour finaliser la configuration initiale de Home Assistant.

Pour plus d'information

« Network ». Github - home-assistant/operating-system. https://github.com/home-assistant/operating-system/blob/dev/Documentation/network.md

« Debugging the Home Assistant Operating System ». Home Assistant. https://developers.home-assistant.io/docs/operating-system/debugging/

« FAQ ». Home Assistant. https://www.home-assistant.io/faq

« Why does Home Assistant have so many names? ». Home Assistant Guide. https://home-assistant-guide.com/2020/09/22/why-does-home-assistant-have-so-many-names/

« Guide: Connecting Pi with Home Assistant OS to wifi (or other networking changes) ». Home Assistant. https://community.home-assistant.io/t/guide-connecting-pi-with-home-assistant-os-to-wifi-or-other-networking-changes/98768

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !

Site fièrement hébergé chez A2 Hosting.

Soumettre