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

6.1 Installation de Home Assistant et premier accès


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 :

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)

Vous l'avez peut-être remarqué, lors de l'installation de Home Assistant, Raspberry Pi Imager ne vous a pas offert l'option MODIFIER RÉGLAGES. En effet, cette option n'est disponible que lors de l'installation de Raspberry Pi OS.

Une technique différente 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 :

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 avec adresse IP statique :

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.
  • 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 interface.
Waiting for Supervisor to start...

Home Assistant Supervisor is running!
System information
  IPv4 Adresses for wlan0: 192.168.1.145/24
  IPV6 Adresses for wlan0: fe80:fde8:195c:eb0b:c18a/64
  IPv4 Adresses for end0: 192.168.1.140/24
  IPV6 Adresses for end0: fe80:a310:ae68:cd47:50d4/64

  OS Version:              Home Assistant OS 16.2
  Home Assistant Core:     landingpage

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

System is ready! Use browser or app to configure.
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

La date pourrait être au format UTC (Coordinated Universal Time) ou encore dans le fuseau horaire configuré.

Si la date n'est pas valide, prenez le temps de l'ajuster. On commence par définir le fuseau horaire puis on entre la date et l'heure selon ce fuseau.

Terminal HassOS

export TZ=America/Montreal
date -s "2025-10-13 13: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, end0.

    Résultat à l'écran

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

    Si vous 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 Afficher les détails 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 des lignes de ce genre 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.

Vérifier la présence des fichiers de configuration de la clé USB

Si vous avez utilisé une clé USB pour fournir des fichiers de configuration à Home Assistant, le système les aura copiés sur le Pi lors du démarrage.

Notez que la clé USB n'a plus besoin d'être branchée au Pi à cette étape.

Pour vérifier la présence des fichiers de configuration réseau :

Terminal HassOS

ls /etc/NetworkManager/system-connections

Les fichiers que vous aviez placés dans le dossier network de la clé USB devraient avoir été copiés ici.

Résultat à l'écran

ha > login
# ls /etc/NetworkManager/system-connections

my-network-cegep   my-network-maison

Pour vérifier la présence de la clé SSH :

Terminal HassOS

ls /root/.ssh

Résultat à l'écran

# ls /root/.ssh

authorized_keys

Si les fichiers de configuration ne sont pas présents dans ces dossiers, c'est que le système n'a pas reconnu la clé ou encore que ses fichiers n'ont pas été reconnus comme étant des fichiers de configuration.

Pistes de vérifications :

  • Quand vous branchez la clé dans votre ordinateur, est-ce que le volume s'appelle CONFIG en majuscules?
  • Est-ce que la clé est formatée en FAT32?
  • Est-ce que les noms de fichiers et de dossiers correspondent à ce qui est mentionné dans la procédure?
  • Est-ce que les caractères de fin de ligne ont été correctement configurés dans les fichiers?

Une fois les problèmes identifiés et corrigés, attendez d'abord que l'installation de Home Assistant soit terminée.

Rebranchez la clé USB sur le Raspberry Pi puis entrez la commande reboot dans le terminal HassOS. Si tout est correct, les fichiers seront cette fois copiés sur le Pi.

Quand vous avez la confirmation que le fichier authorized_keys a été correctement copié, vous pouvez tenter de vous connecter au Raspberry Pi via SSH :

Terminal de l'ordinateur

ssh root@192.168.1.145 -p 22222

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

▼Publicité

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 !
Soumettre