Docker Domotique

Zigbee2MQTT : tous ses appareils Zigbee dans Home Assistant sans cloud

· 09/04/2026 · Mis à jour le 24/04/2026 · 6 min de lecture
En bref — Zigbee2MQTT en Docker sur ma machine prioritaire 24/7 : la clé Sonoff USB Dongle Plus convertit le protocole Zigbee en MQTT, tous mes appareils remontent dans Home Assistant sans aucun cloud. Compteurs d’énergie Tuya, détecteur de fuite IKEA, téléinfo ZLinky, contact de porte SONOFF : tout passe par Z2M. Migration vers un coordinateur PoE en cours pour couper le dernier câble USB.

Le protocole Zigbee permet à des dizaines d’appareils domotiques de communiquer entre eux et avec un coordinateur central, sans Wi-Fi, sans cloud, avec une autonomie de pile mesurée en années. Le problème : par défaut, ces appareils sont liés à des applications propriétaires. Zigbee2MQTT coupe ce lien et expose tout à Home Assistant via MQTT.

Ce que fait Zigbee2MQTT

Zigbee2MQTT (Z2M) joue le rôle de passerelle entre le réseau Zigbee physique et l’écosystème domotique. Le coordinateur (la clé USB) parle Zigbee avec les appareils, Z2M traduit ces messages en JSON sur un broker MQTT, et Home Assistant consomme ce flux via l’intégration MQTT.

Les avantages concrets par rapport à une solution cloud :

  • Zéro dépendance cloud : les appareils fonctionnent si Internet tombe
  • Latence inférieure à 100ms : tout reste en local
  • Compatibilité large : Z2M supporte plus de 3000 appareils de marques différentes
  • Mises à jour OTA : firmware des appareils géré depuis Z2M
  • Réseau maillé : les appareils sur secteur servent de routeurs pour étendre la portée

Pourquoi Docker sur la machine prioritaire

Z2M est un service critique : si il tombe, tous les automatismes Zigbee s’arrêtent. Je le fais tourner en Docker sur ma machine débit prioritaire, celle qui ne s’arrête jamais et qui tourne 24/7. Pas dans la VM Home Assistant, pas dans un add-on HA : un conteneur Docker indépendant avec restart: unless-stopped.

Ça découple aussi le cycle de vie de Z2M de celui de HA : je peux redémarrer Home Assistant sans toucher au service Zigbee, et inversement.

Installation via Docker Compose (Dockge)

Je gère la stack depuis Dockge. Le compose est minimal :

services:
  zigbee2mqtt:
    container_name: zigbee2mqtt
    image: koenkk/zigbee2mqtt
    restart: unless-stopped
    volumes:
      - /opt/stacks/zigbee2mqtt/data:/app/data
      - /etc/localtime:/etc/localtime:ro
    ports:
      - 8080:8080
    environment:
      - TZ=Europe/Paris
    devices:
      - /dev/serial/by-id/usb-ITead_Sonoff_Zigbee_3.0_USB_Dongle_Plus_XXXXXX:/dev/ttyACM0

Le point clé : passer la clé USB via devices avec son identifiant stable (/dev/serial/by-id/) plutôt que /dev/ttyUSB0 qui peut changer au redémarrage. L’identifiant complet est visible avec :

ls /dev/serial/by-id/
Stack Zigbee2MQTT dans Dockge avec le compose.yaml et le terminal de logs
La stack Z2M dans Dockge : compose.yaml avec le device Sonoff Dongle Plus, port 8080, logs de démarrage en terminal.

Configuration Z2M

Avant le premier démarrage, créer le fichier /opt/stacks/zigbee2mqtt/data/configuration.yaml :

mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://IP_BROKER:1883
  user: MQTT_USER
  password: MQTT_PASSWORD

serial:
  port: /dev/ttyACM0

frontend:
  enabled: true
  port: 8080

homeassistant:
  enabled: true

La ligne homeassistant: enabled: true active la découverte automatique dans HA : chaque appareil appairé apparaît directement dans Home Assistant sans configuration manuelle.

Le coordinateur : Sonoff USB Dongle Plus

J’utilise le Sonoff Zigbee 3.0 USB Dongle Plus (CC2652P). C’est le coordinateur le plus courant dans la communauté Z2M : bon support, firmware maintenu, supporte 100+ appareils en réseau maillé.

Limite actuelle : c’est un câble USB relié physiquement à la machine. Je prépare la migration vers un coordinateur Ethernet/PoE (type SLZB-06), ce qui permettra de placer le coordinateur où le signal Zigbee est optimal, indépendamment de l’emplacement du serveur. Z2M supporte nativement les coordinateurs en TCP, la migration se fait en une ligne de config.

Appairage des appareils

L’interface web Z2M (port 8080) centralise tout. Pour ajouter un appareil : ouvrir l’appairage depuis le bouton « Autoriser l’appairage », mettre l’appareil en mode appairage (reset bouton ou procédure selon le modèle), Z2M le détecte et lui assigne un nom convivial.

Dashboard Zigbee2MQTT : vue d'ensemble avec 7 appareils, activité réseau et cartes des devices
Le dashboard Z2M : 7 appareils connectés, activité récente des capteurs, LQI du réseau.

L’interface montre en temps réel l’activité du réseau : messages entrants, valeurs des capteurs, LQI (qualité du signal) de chaque appareil. Le réseau maillé s’auto-organise : les appareils sur secteur (prises, compteurs) servent de routeurs pour les appareils sur pile.

Les appareils du setup

Sur mon réseau Zigbee actuel :

  • ZLinky LiXee (Jennic) : téléinfo EDF, remonte la consommation instantanée et les index dans HA
  • Mesure VMC Daikin, cuisine, électricité (Tuya PJ-1203A) : compteurs de courant sur les circuits, suivi de consommation en temps réel
  • Fuite Buanderie (IKEA E2202) : détecteur d’inondation, alerte Telegram si présence d’eau
  • Porte escalier (SONOFF SNZB-04) : contact d’ouverture/fermeture pour les automatisations
Liste des appareils Zigbee2MQTT : adresses IEEE, constructeurs (SONOFF, IKEA, Tuya, LiXee), LQI
Les appareils du réseau Zigbee : ZLinky LiXee, compteurs Tuya PJ-1203A, détecteur IKEA, contacts SONOFF, avec leur adresse IEEE et LQI.

Tous ces appareils remontent leurs états dans Home Assistant automatiquement dès l’appairage. À partir de là : entités disponibles pour les tableaux de bord, les automatisations, les historiques.

Intégration Home Assistant

Dans HA, ajouter l’intégration MQTT (Paramètres > Appareils > Ajouter une intégration > MQTT) avec l’adresse du broker. Grâce à la découverte automatique activée dans Z2M, chaque appareil appairé crée ses entités dans HA sans rien faire de plus. Un compteur d’énergie génère des entités sensor.mesure_cuisine_power, sensor.mesure_cuisine_current, sensor.mesure_cuisine_voltage, toutes exploitables immédiatement dans les automatisations et le tableau de bord Energie.

💡
Nommer les appareils dès l’appairage

Donne un nom explicite à chaque appareil au moment de l’appairage dans Z2M : mesure_cuisine plutôt que le nom auto-généré. Ce nom devient le préfixe de toutes les entités HA (sensor.mesure_cuisine_power). Si tu renommes après coup, les entités HA changent d’ID et tes automatisations cassent. Mieux vaut bien nommer dès le début.

FAQ

Zigbee2MQTT ou ZHA : lequel choisir ?

Z2M offre plus de contrôle : mises à jour firmware OTA des appareils, groupes Zigbee, configuration avancée par appareil, interface dédiée. ZHA est intégré nativement dans HA et plus simple à démarrer. Pour un setup avec beaucoup d’appareils ou des besoins avancés, Z2M est la référence.

Quel coordinateur Zigbee pour Z2M ?

Le Sonoff ZBDongle-P (CC2652P) reste la référence USB. Pour un setup sans câble, les coordinateurs Ethernet/PoE (SLZB-06 de SMLIGHT) sont excellents : on les place où le signal est bon, Z2M les rejoint en TCP. C’est la migration que je prépare.

Combien d’appareils peut gérer Z2M ?

Avec un coordinateur moderne (CC2652P), Z2M supporte facilement 100+ appareils. Les appareils sur secteur (prises, compteurs) étendent le maillage automatiquement. Les appareils sur pile sont en end-device et se connectent via les routeurs les plus proches.

Que se passe-t-il si Z2M redémarre ?

Les appareils Zigbee retiennent leur coordinateur. Après un redémarrage de Z2M, ils se reconnectent automatiquement en quelques secondes. Aucune perte de configuration, aucun ré-appairage nécessaire.

Vous avez aimé cet article ?

Rejoignez la newsletter : nouveaux articles & contenu exclusif directement par mail, sans pubs.

Je m'abonne

Pour aller plus loin