Skip to main content

Il existe plusieurs façons d’installer Home Assistant sur un système Linux, chacune offrant des avantages et des inconvénients selon vos besoins. Les trois méthodes principales sont Home Assistant OS (HAOS), l’installation dans une machine virtuelle (VM) avec Proxmox, et l’exécution via Docker. Voici une présentation détaillée pour vous aider à choisir la solution la mieux adaptée.

Home Assistant OS (HAOS)

Home Assistant OS est une solution tout-en-un, conçue pour être simple et rapide à mettre en place. Elle inclut un système d’exploitation minimal dédié uniquement à Home Assistant. L’installation est très intuitive, ce qui en fait un excellent choix pour les débutants. Avec HAOS, tout est préconfiguré, et vous bénéficiez du superviseur intégré qui permet de gérer facilement les mises à jour, les add-ons, les snapshots, et les restaurations. Cependant, cette simplicité a un coût : vous ne pouvez pas utiliser votre machine pour d’autres applications ou services. De plus, en cas de problème avec le système d’exploitation, toute la machine devient inutilisable. HAOS est donc idéal pour ceux qui recherchent une solution dédiée et sans effort de maintenance, mais il manque de flexibilité pour des configurations plus complexes.

Machine Virtuelle (VM) avec Proxmox

L’installation de Home Assistant dans une machine virtuelle via Proxmox est une option très intéressante pour les utilisateurs avancés. Proxmox, un hyperviseur open-source, permet de gérer plusieurs machines virtuelles ou conteneurs sur le même hôte. Avec cette méthode, Home Assistant est isolé dans une VM, ce qui améliore la sécurité et réduit les interférences avec d’autres applications. Cette approche offre une grande flexibilité, car elle vous permet d’exécuter plusieurs services sur la même machine, tout en profitant des fonctionnalités avancées de Proxmox, telles que les sauvegardes, les snapshots, et les migrations. Cependant, elle nécessite une certaine expertise pour l’installation et la gestion des VM. De plus, la virtualisation peut engendrer une légère surcharge de performances, et si Proxmox rencontre un problème, toutes les VM hébergées en seront affectées. Cette méthode est idéale pour les utilisateurs expérimentés cherchant à maximiser l’utilisation de leur machine.

Docker

Enfin, Docker permet d’exécuter Home Assistant comme un conteneur léger sur un système Linux existant. Cette méthode est particulièrement flexible, car elle permet de faire coexister Home Assistant avec d’autres applications sur le même hôte. Contrairement à la virtualisation, Docker fonctionne directement sur le système hôte, ce qui optimise les performances. Avec Docker, vous avez un contrôle total sur l’installation et la personnalisation de Home Assistant. Cependant, cette méthode demande une connaissance de base de la gestion des conteneurs Docker. Vous devrez également gérer manuellement les mises à jour, les sauvegardes, et certaines intégrations externes, car l’installation standard via Docker ne comprend pas le superviseur complet. Cette méthode convient parfaitement aux administrateurs Linux ou à ceux qui recherchent une solution légère et modulaire.

Résumé des choix

Méthode Simplicité d’installation Flexibilité Superviseur Performances Utilisateurs cibles
HAOS ⭐⭐⭐⭐⭐ ⭐⭐ Oui ⭐⭐⭐⭐ Débutants
VM (Proxmox) ⭐⭐⭐ ⭐⭐⭐⭐ Oui ⭐⭐⭐ Utilisateurs avancés
Docker ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐ Non ⭐⭐⭐⭐⭐ Administrateurs Linux

Pour ma part, j’ai opté pour une installation sous Docker et ce tutoriel expliquera la procédure à suivre pour installer Home Assistant sous Docker.

1. Installation de Docker

Docker est un outil essentiel pour exécuter Home Assistant comme un conteneur léger. Voici les étapes détaillées pour installer Docker et Docker Compose sur Debian 12. Mise à jour du système et installation des dépendances

  1. Ajout du dépôt officiel Docker
  2. Installation de Docker Engine
  3. Configuration et démarrage de Docker
  4. Ajout de l’utilisateur au groupe Docker
  5. Test de Docker

Nous allons détailler l’ensemble des opérations à réaliser.

Avant d’installer Docker, assurez-vous que votre système est à jour. Exécutez les commandes suivantes pour installer les dépendances nécessaires :

sudo apt update Vérification du système
sudo apt upgrade -y Exécution des mises à jour

Deux choix s’offrent à nous pour installer Docker.

  1. Variante 1 : Installation de Docker depuis les dépôts par défaut de Debian
  2. Variante 2 (recommandée) : Installation de Docker depuis le dépôt Docker officiel

Je vous explique les deux variantes. Pour ma part j’ai opté pour la seconde, qui a l’avantage de pouvoir se mettre à jour via apt udpate/upgrade et que les mises à jour sont plus fréquentes et récentes. Je vous recommande de suivre cette variante n°2.

Variante 1 – Installation de Docker depuis les dépôts par défaut de Debian

Installer Docker à l’aide de la commande suivante :

sudo apt install docker.io -y Installation de Docker depuis les dépôts par défaut de Debian (peut contenir une version plus ancienne que celle disponible via les sources officielles de Docker)
docker –version Vérification de l’installation

Voici ce que la commande retourne au 10/01/2025.

Ensuite à ajoute notre utilisateur au groupe Docker afin d’éviter d’utiliser sudo à chaque commande

sudo usermod -aG docker $USER Ajout de notre utilisateur au groupe Docker

Déconnecter-vous et reconnectez-vous pour que les changements prennent effet.

A présent nous allons installer Docker Compose.

Docker Compose est un outil qui simplifie la gestion des applications multi-conteneurs dans Docker. Lorsque vous avez une application composée de plusieurs services (comme une base de données, un backend, et un frontend), Docker Compose permet de les orchestrer facilement à partir d’un seul fichier de configuration.

Docker Compose utilise un fichier de configuration en format YAML (généralement nommé docker-compose.yml) pour définir tous les services nécessaires à votre application. Ce fichier décrit :

  • Les images Docker à utiliser.
  • Les volumes à monter (par exemple, pour la persistance des données).
  • Les ports à exposer.
  • Les réseaux à configurer entre les conteneurs.
  • Les variables d’environnement nécessaires.
sudo apt install docker-compose -y Installation de Docker Compose
docker-compose –version Vérification de l’installation

Variante 2 – Installation de Docker depuis le dépôt Docker officiel (documentation)

Si vous avez choisi de suivre cette variante pour installer Docker, il faut tout d’abord installer les paquets et dépendances pour préparer l’ajout et l’utilisation des dépôts.

⚠️ WARNING : Si jamais vous aviez déjà installé Docker selon la variante 1 et que vous voulez passer à la variante 2, il est impératif de désinstaller Docker existant à l’aide de la commande :

sudo apt remove docker docker.io containerd runc

dpkg -l | grep docker Pour vérifier les paquets exacts installés
sudo apt remove -y docker.io Désinstalle les paquets listés par la commande précédente

sudo apt purge -y docker docker.io containerd runc Nettoie les fichiers restants
sudo apt autoremove -y

⚠️ FIN DU WARNING

Passons à l’installation de Docker.

sudo apt update Vérification du système
sudo apt install -y ca-certificates curl gnupg

Ajoutez la clé GPG pour valider les paquets du dépôt Docker officiel :

sudo mkdir -p /etc/apt/keyrings Création du dossier keyrings
https://download.docker.com/linux/debian/gpg | sudo gpg –dearmor -o /etc/apt/keyrings/docker.gpg

On ajoute le dépôt officiel à notre fichier des sources APT :

echo « deb [arch=$(dpkg –print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable » | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

On va vérifier que le dépôt a été correctement ajouté :

cat /etc/apt/sources.list.d/docker.list

Le contenu doit ressembler à ceci :

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian bullseye stable


Enfin, nous mettons à jour la liste des paquets et installons Docker :

sudo apt update Vérification du système
sudo apt upgrade -y Pour installer les mises à jour s’il y en a
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin Installation de Docker

On peut vérifier l’installation avec la commande :

docker –version

Voici ce que la commande retourne au 10/01/2025.

Nous voilà armé pour passer à l’installation de Home Assistant.

2. Installation de Home Assistant

Dans un premier temps, il faut créer un répertoire pour Home Assistant. J’ai pour habitude de le mettre dans le dossier /home/homeassistant.

mkdir -p /home/homeassistant Création d’un dossier /homeassistant dans /home
cd /home/homeassistant Monter le dossier

On va créer le fichier de configuration des conteneurs docker-compose.yml dans ce dossier.

nano docker-compose.yml Création du fichier docker-compose.yml

Dans le fichier docker-compose.yml ajouter la configuration suivante :

version: ‘3.3’
services:
  homeassistant:
    container_name: homeassistant
    image: ghcr.io/home-assistant/home-assistant:stable
    volumes:
      – ./config:/config
    environment:
      – TZ=Europe/Paris
    restart: unless-stopped
    ports:
      – « 8184:8183 »

Enregistrer et fermer le fichier (Ctrl+O, Enter, puis Ctrl+X).

Voyons un peu ce que nous venons de faire.

version: ‘3.3’ Version de docker-compose.
services:
  homeassistant: Nom du service
    container_name: homeassistant Nom du conteneur.
    image: ghcr.io/home-assistant/home-assistant:stable Image Docker utilisée pour ce conteneur.
    volumes: Définit les volumes montés.
      – ./config:/config Monte le dossier local ./config dans le répertoire /config du conteneur.
    environment: Définit les variables d’environnement pour le conteneur.
      – TZ=Europe/Paris Définit le fuseau horaire du conteneur.
    restart: unless-stopped Spécifie la politique de redémarrage du conteneur.
    ports:
      – « 8184:8183 » Redirige le port 8184 vers le port 8183.

On peut à présent accéder à Home Assistant via http://<IP_de_votre_hôte>:8124.

3. Installation de MQTT Broker

Il existe deux outils pour intégrer des produits sous zigbee dans HA. Nous pouvons utiliser Zigbee Home Assistant(ZHA) qui est une intégration native de HA ou bien Zigbee2MQTT qui est une solution indépendante mais qui offre plus de possibilité de personnalisations. Cependant, ce dernier nécessite un certain nombre d’opération de paramétrage de notre système. C’est la solution que j’ai choisie.

Caractéristique Zigbee2MQTT ZHA
Simplicité d’installation ⚠️ Nécessite MQTT et configuration manuelle ✅ Intégration native et facile à configurer
Compatibilité des appareils ✅ Très large, supporte de nombreux appareils ⚠️ Bonne, mais certains appareils peuvent manquer
Personnalisation ✅ Paramètres avancés disponibles ⚠️ Options limitées
Indépendance ✅ Fonctionne indépendamment de Home Assistant ⚠️ Dépend de Home Assistant
Diagnostic et logs ✅ Journaux détaillés et complets ⚠️ Fonctionnalités de base

L’installation d’un broker MQTT est une étape essentielle pour permettre à Home Assistant de communiquer avec divers appareils IoT (Internet des objets) comme les capteurs, les actionneurs, ou les systèmes domotiques. MQTT (Message Queuing Telemetry Transport) est un protocole léger conçu pour les communications efficaces entre appareils.

A présent, nous allons installer Mosquitto, l’un des brokers MQTT les plus populaires et fiables.

  1. Création des répertoires nécessaires.
  2. Création du fichier de configuration mosquitto.conf.
  3. Configuration des permissions.
  4. Configuration de docker-compose.yml.
  5. Démarrage et activation du service.
  6. Test de Mosquitto.
  7. Intégration dans HA.

Nous allons utiliser Docker pour installer Mosquitto en tant que conteneur avec l’image officielle eclipse-mosquitto:latest. Cela nous permet de gérer Mosquitto dans un environnement isolé sans dépendre des paquets système installés via APT.

mkdir -p /home/homeassistant/mosquitto/{config,data,log} Création des dossiers : config, data et log

A présent nous allons créer le fichier de configuration mosquitto.conf. Monter le dossier /home/homeassistant/mosquitto/config.

Créer le fichier mosquitto.conf à l’aide de la commande :

nano mosquitto.conf Création du fichier de configuration

Dans le fichier mosquitto.conf, ajouter la configuration suivante :

persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log
listener 1883
# Authentication (si nécessaire)
allow_anonymous true Permet aux clients de se connecter au courtier sans avoir besoin de fournir un nom d’utilisateur ou un mot de passe

Enregistrer et fermer le fichier (Ctrl+O, Enter, puis Ctrl+X).

Enfin, nous allons vérifier les permissions des dossiers :

sudo chown -R 1883:1883 /home/homeassistant/mosquitto

A présent nous allons configurer le conteneur docker-compose.yml en ajoutant un nouveau service.

nano docker-compose.yml

version: ‘3.3’ Ne pas remettre
services: Ne pas remettre
  mosquitto:
    container_name: mosquitto
    image: eclipse-mosquitto:latest
    volumes:
      – /home/homeassistant/mosquitto/config:/mosquitto/config
      – /home/homeassistant/mosquitto/data:/mosquitto/data
      – /home/homeassistant/mosquitto/data:/mosquitto/log
    restart: unless-stopped
    ports:
      – « 1883:1883 »
      – « 9001:9001 »

Votre fichier doit ressembler à cela :

Nous pouvons à présent redémarrer Docker compose afin que la configuration soit prise en compte.

docker-compose down Eteint le conteneur
docker-compose up -d Démarre le conteneur
docker ps Vérifie que le conteneur est lancé

Nous sommes prêts pour intégrer Mosquitto dans Home Assistant.

Dans Home Assistant, allez dans Paramètre > Appareils et services > Ajouter une intégration.

Recherchez « MQTT ». La fenêtre suivante va s’afficher :

Courtier : mosquitto (nom du conteneur Docker)
Port : 1883
Nom utilisateur : Laissez vide si allow_anonymous est true
Mot de passe : Laissez vide si allow_anonymous est true

Valider la connexion. Home Assistant devrait se connecter avec succès à Mosquitto.

4. Installation de Zigbee2MQTT (Z2M)

A présent, nous allons installer Zigbee2MQTT.

  1. Création des répertoires nécessaires
  2. Configuration des permissions
  3. Configuration de docker-compose.yml
  4. Configuration de Zigbee2MQTT
  5. Démarrage et test
  6. Intégration de l’interface Z2M dans HA

Dans un premier temps, on crée les dossiers pour stocker la configuration et les données de Zigbee2MQTT.

mkdir -p /home/homeassistant/zigbee2mqtt/data Crée deux dossiers : zigbee2MQTT et data

On s’assure que Zigbee2MQTT puisse accéder à ces fichiers.

sudo chown -R 1883:1883 /home/homeassistant/zigbee2mqtt

A présent nous allons configurer le conteneur docker-compose.yml en ajoutant un nouveau service. Nous devons nous appuyer sur la documentation officielle Zigbee2MQTT.

nano docker-compose.yml

version: ‘3.3’ Ne pas remettre
services: Ne pas remettre
  zigbee2mqtt:
    container_name: zigbee2mqtt
    image: koenkk/zigbee2mqtt
    restart: unless-stopped
    volumes:
      – /home/homeassistant/zigbee2mqtt/data:/app/data Stocke les configurations et données de Zigbee2MQTT
      – /run/udev:/run/udev:ro Permet la détection des adaptateurs Zigbee dans Docker
    ports:
      – « 8080:8080 »
    devices:
      – /dev/ttyUSB0:/dev/ttyUSB0 Correspond au port de l’adaptateur Zigbee

Votre fichier doit ressembler à cela :

Enfin, nous devons configurer le fichier configuration.yaml de Zigbee2MQTT.

Localisez le fichier configuration.yaml dans /home/homeassistant/zigbee2mqtt/data. S’il n’existe pas, créer le fichier configuration.yaml.

nano configuration.yaml

mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://mosquitto Le courtier MQTT utilisé (nom du conteneur Docker, ici mosquitto)
  user:  »
  password:  »
serial: Port de l’adaptateur Zigbee
  port: /dev/ttyUSB0
frontend: Définit le port de l’interface web Zigbee2MQTT
  port: 8080

Le fichier doit ressembler à cela :

Nous pouvons maintenant redémarrer Docker Compose.

docker-compose down Eteint le conteneur
docker-compose up -d Démarre le conteneur
docker ps Vérifie que le conteneur est lancé

Nous pouvons nous rendre dans notre navigateur pour accéder à l’interface Zigbee2MQTT à l’aide de l’adresse http://<IP_DU_SERVEUR>:8080. Pour ma part, 192.168.XXX.XXX :8080.

Comme vous pouvez le remarquer, nous devons nous connecter à une page internet en dehors de l’interface de Home Assistant. Ce n’est pas optimal. Il existe une solution ! La création d’un dashboard, qui sera l’image du site web de Z2M.

Pour ce faire, dans Home Assistant allez dans Paramètre > Tableaux de bord > Ajouter un tableau de bord > Page Web.

Dans URL, rentrer l’adresse http://<IP_DU_SERVEUR>:8080 (192.168.XXX.XXX :8080 dans mon cas).

Nommez votre dashboard (ex : Zigbee2MQTT)
Ajouter une icône (ex : mdi:zigbee)
Saisissez l’URL (ex : dashboard-zigbee2mqtt). Doit se remplir tout seul lors de la saisie du titre.
Cliquer sur Créer

Le nouveau dashboard s’est ajouté sur la barre latérale droite. En cliquant dessus, nous arrivons sur la page de configuration des appareils.


Nous espérons que ce guide vous aura permis de bien débuter avec Home Assistant et de poser les bases de votre installation domotique. N’hésitez pas à consulter la documentation officielle de chaque composant pour approfondir vos connaissances et exploiter pleinement leurs fonctionnalités. Pour toute question ou assistance, la communauté Home Assistant est également une ressource précieuse.

Bonne exploration et personnalisation de votre système domotique ! 🚀

Thomas Aubret

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.