Intégration Zigbee avec Home Assistant
Intégration

Intégration Zigbee avec Home Assistant

4 min de lecture
Alexandre Lebegue

Intégration Zigbee avec Home Assistant

Le protocole Zigbee est l'un des plus populaires pour la domotique. Découvrons comment l'intégrer facilement avec Home Assistant via Zigbee2MQTT.

Qu'est-ce que Zigbee ?

Zigbee est un protocole de communication sans fil :

  • Basse consommation : idéal pour les capteurs sur batterie
  • Réseau maillé : chaque appareil étend la portée
  • Standard ouvert : compatible multi-marques
  • Sécurisé : chiffrement AES-128

Matériel nécessaire

Coordonnateur Zigbee

Choisissez une clé USB Zigbee :

  • Sonoff Zigbee 3.0 USB Dongle Plus (recommandé, ~15€)
  • ConBee II (~40€)
  • CC2531 (obsolète, non recommandé)

Appareils Zigbee compatibles

Exemples d'appareils :

  • Capteurs de température (Aqara, Sonoff)
  • Ampoules (Philips Hue, IKEA Tradfri)
  • Interrupteurs sans fil
  • Détecteurs de mouvement
  • Prises connectées

Installation de Zigbee2MQTT

Méthode 1 : Add-on Home Assistant OS

Si vous utilisez Home Assistant OS :

  1. Allez dans ParamètresModules complémentaires
  2. Cherchez Zigbee2MQTT
  3. Cliquez sur Installer

Méthode 2 : Docker

Pour une installation Docker :

yaml
# docker-compose.yml
version: '3'
services:
  zigbee2mqtt:
    container_name: zigbee2mqtt
    image: koenkk/zigbee2mqtt
    restart: unless-stopped
    volumes:
      - ./zigbee2mqtt-data:/app/data
      - /run/udev:/run/udev:ro
    ports:
      - 8080:8080
    environment:
      - TZ=Europe/Paris
    devices:
      - /dev/ttyUSB0:/dev/ttyUSB0

Configuration

Fichier configuration.yaml

Éditez /app/data/configuration.yaml :

yaml
# Home Assistant integration
homeassistant: true

# MQTT settings
mqtt:
  base_topic: zigbee2mqtt
  server: mqtt://localhost:1883
  user: votre_user
  password: votre_password

# Serial settings
serial:
  port: /dev/ttyUSB0
  
# Frontend
frontend:
  port: 8080

# Advanced
advanced:
  log_level: info
  pan_id: GENERATE
  network_key: GENERATE
  channel: 11

Installation du broker MQTT

Zigbee2MQTT nécessite un broker MQTT (Mosquitto) :

bash
# Ajout au docker-compose.yml
  mosquitto:
    container_name: mosquitto
    image: eclipse-mosquitto:2
    restart: unless-stopped
    ports:
      - 1883:1883
      - 9001:9001
    volumes:
      - ./mosquitto/config:/mosquitto/config
      - ./mosquitto/data:/mosquitto/data
      - ./mosquitto/log:/mosquitto/log

Configuration Mosquitto (mosquitto.conf) :

persistence true
persistence_location /mosquitto/data/
log_dest file /mosquitto/log/mosquitto.log

listener 1883
allow_anonymous false
password_file /mosquitto/config/password.txt

Ajout d'appareils Zigbee

Mode appairage

  1. Ouvrez l'interface Zigbee2MQTT (http://IP:8080)
  2. Cliquez sur Permit join (All)
  3. Mettez votre appareil en mode appairage :
    • Capteur Aqara : maintenez le bouton 5 secondes
    • Ampoule Philips Hue : allumez/éteignez 6 fois
    • Prise Sonoff : maintenez le bouton 5 secondes

Renommer les appareils

Donnez des noms explicites :

yaml
# Dans l'interface Zigbee2MQTT
Ancien nom: 0x00158d0001a2b3c4
Nouveau nom: capteur_temperature_salon

Intégration dans Home Assistant

Configuration MQTT

Dans Home Assistant, configurez MQTT :

yaml
# configuration.yaml
mqtt:
  broker: localhost
  port: 1883
  username: votre_user
  password: votre_password
  discovery: true
  birth_message:
    topic: 'hass/status'
    payload: 'online'
  will_message:
    topic: 'hass/status'
    payload: 'offline'

Auto-découverte

Les appareils Zigbee apparaissent automatiquement dans ParamètresIntégrationsMQTT.

Exemples d'utilisation

Capteur de température

yaml
# automation.yaml
automation:
  - alias: "Alerte température élevée"
    trigger:
      - platform: numeric_state
        entity_id: sensor.capteur_temperature_salon
        above: 25
    action:
      - service: notify.mobile_app
        data:
          message: "Température salon: {{ states('sensor.capteur_temperature_salon') }}°C"

Ampoule Zigbee

yaml
# scripts.yaml
script:
  ambiance_cinema:
    sequence:
      - service: light.turn_on
        target:
          entity_id: light.salon_zigbee
        data:
          brightness: 50
          color_temp: 400

Détecteur de mouvement

yaml
# automation.yaml
automation:
  - alias: "Lumière couloir automatique"
    trigger:
      - platform: state
        entity_id: binary_sensor.detecteur_couloir
        to: 'on'
    condition:
      - condition: sun
        after: sunset
    action:
      - service: light.turn_on
        target:
          entity_id: light.couloir

Optimisation du réseau Zigbee

Placement du coordonnateur

  • Éloignez-le des sources de brouillage (Wi-Fi, Bluetooth)
  • Position centrale dans la maison
  • Utilisez un câble USB rallonge si nécessaire

Routeurs Zigbee

Les appareils alimentés (prises, ampoules) agissent comme routeurs et étendent le réseau. Placez-en stratégiquement.

Choix du canal

Évitez les interférences Wi-Fi :

yaml
# Canaux Zigbee recommandés: 11, 15, 20, 25
advanced:
  channel: 15

Dépannage

Appareil ne s'appaire pas

  1. Vérifiez que "Permit join" est activé
  2. Rapprochez l'appareil du coordonnateur
  3. Réinitialisez l'appareil (consultez la doc du fabricant)

Appareil hors ligne

bash
# Vérifier les logs Zigbee2MQTT
docker logs -f zigbee2mqtt

# Vérifier la qualité du signal (LQI)
# Dans l'interface Zigbee2MQTT, onglet "Map"

Performances

Surveillez les métriques :

yaml
# sensors.yaml
sensor:
  - platform: mqtt
    state_topic: "zigbee2mqtt/bridge/state"
    name: "Zigbee2MQTT Status"

Ressources

Conclusion

L'intégration Zigbee via Zigbee2MQTT offre flexibilité et compatibilité avec de nombreux appareils. C'est un excellent investissement pour étendre votre installation domotique.

Tags :

#zigbee#zigbee2mqtt#mqtt#integration#capteurs