Installation et configuration du coordinateur SLZB-06 avec Zigbee2MQTT
Introduction
J’utilise depuis un moment des périphériques Zigbee avec ZHA comme décrit dans mon précédant article sur le sujet.
Sur les quatre ans d’utilisation, j’ai eu quelques problèmes :
- Appareillage compliqué de certains capteurs
- Dé-association de périphérique (3/4 par ans)
Dernièrement, tous mes capteurs de portes Aqara MCCGQ11LM se sont déconnectés
sans possibilités de les reconnecter.
De ce que j’ai lu sur Internet, les capteurs Aqara semblent un peu fastidieux
lorsque l’on ne les utilise pas avec la passerelle Aquara…
De mon point de vue, ils fonctionnaient avant, ils devraient encore fonctionner.
Le seul élément changeant dans mon installation Zigbee est la version de
Home Assistant (HA) et donc leur intégration ZHA.
J’ai donc cherché une meilleure solution et je suis tombé sur pas mal de vidéos YouTube parlant du couple coordinateur SLZB-06 et le logiciel Zigbee2MQTT.
Zigbee2MQTT est une solution indépendante qui s’intègre bien avec HA.
Elle permet l’utilisation de différents périphériques Zigbee comme le Sonoff
Zigbee Bridge (ZB) que j’utilise avec ZHA.
J’ai fait le choix d’acheter un coordinateur SLZB-06 de SMLIGHT car je n’étais
pas très serein sur le logiciel de mon ZB. En effet, je n’ai jamais
fait les mises à jour de Tasmota dessus. Je n’ai pas trouvé assez d’information
concernant les mises à jour (firmware de la board et du chipset).
SLZB-06
J’ai donc pris un SLZB-06 sur AliExpress via les liens en bas de la page du site de SMLIGHT.
Je l’ai installé dans mon coffret électrique en le reliant à un commutateur
Etherner (“switch”).
N’ayant pas de PoE disponible ici, je l’ai alimenté via une multiprise USB.
J’ai conçu un support pour le fixer au rail DIN sur lequel on visse un support qui se clipse sur le rail. Il est disponible en téléchargement sur le site de Cults 3D.
Pour la configuration réseau, j’ai mis une adresse IP fixe via l’interface Web
(qui sera 192.168.17.245
dans cet article),
effectuer les MAJs et finalisé mes actions par un redémarrage.
Zigbee2MQTT
Installation
Pour que Zigbee2MQTT fonctionne, il lui faut un broker MQTT.
Pour ma part, j’utilise Mosquitto dont son installation est expliqué dans mon
article Reset Domotique : Partie 2.
Issue de la documentation, voici mon fichier compose.yml
:
services:
zigbee2mqtt:
image: koenkk/zigbee2mqtt
container_name: zigbee2mqtt
restart: unless-stopped
ports:
# Frontend port
- 8088:8080
volumes:
- /var/lib/zigbee2mqtt/data:/app/data
- /run/udev:/run/udev:ro
environment:
- TZ=Europe/Paris
Il faut ensuite mettre une configuration de base.
A partir des informations de la
documentation,
voici donc mon fichier configuration.yaml
(dans /var/lib/zigbee2mqtt/data/
)
sur ma machine et qui sera donc dans /app/data/
dans le conteneur Docker :
# https://www.zigbee2mqtt.io/guide/configuration/
## > configuration.yaml has to be writeable for Zigbee2MQTT process because
## > it can get updated - e.g. if you change the settings in the frontend.
# Optional: allow new devices to join.
## > By setting permit_join: true in your configuration.yaml the joining will
## > automatically be enabled when starting Zigbee2MQTT.
## > Joining is not automatically disabled.
permit_join: false
mqtt:
# Required: MQTT server URL (use mqtts:// for SSL/TLS connection)
server: mqtt://192.168.17.4:1883
# Optional: MQTT base topic for Zigbee2MQTT MQTT messages (default: zigbee2mqtt)
base_topic: zigbee2mqtt
# Optional: MQTT server authentication user (default: nothing)
user: utilisateurz2m
# Optional: MQTT server authentication password (default: nothing)
password: AZERTY
# Optional: Include device information to mqtt messages (default: false)
include_device_information: true
# Optional: MQTT keepalive in seconds (default: 60)
keepalive: 60
# Optional: MQTT protocol version (default: 4), set this to 5 if you
# use the 'retention' device specific configuration
version: 4
# Optional: Disable retain for all send messages. ONLY enable if you MQTT broker doesn't
# support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform).
# Enabling will break the Home Assistant integration. (default: false)
force_disable_retain: false
serial:
adapter: zstack
# Could be either USB port (/dev/ttyUSB0), network Zigbee adapters (tcp://192.168.1.1:6638) or mDNS adapter (mdns://my-adapter).
port: tcp://192.168.17.245:6638
# Will run frontend on port 8080
frontend:
# Optional, enables authentication, disabled by default, cleartext (no hashing required)
auth_token: AAZZEERRTTYY
advanced:
# Optional: Logging level, options: debug, info, warning, error (default: info)
log_level: info
# Optional: Zigbee channel, changing might require re-pairing of some devices (see docs below). (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid problems)
# (default: 11)
channel: 11
# Optional: network encryption key
# GENERATE will make Zigbee2MQTT generate a new network key on next startup
# Note: changing requires repairing of all devices (default: shown below)
network_key: GENERATE
availability:
active:
# Time after which an active device will be marked as offline in
# minutes (default = 10 minutes)
timeout: 10
passive:
# Time after which a passive device will be marked as offline in
# minutes (default = 1500 minutes aka 25 hours)
timeout: 1500
# Optional: Home Assistant integration (MQTT discovery) (default: false)
homeassistant:
# Optional: Home Assistant discovery topic (default: shown below)
# Note: should be different from [MQTT base topic](../mqtt.md) to prevent errors in HA software
discovery_topic: 'homeassistant'
# Optional: Home Assistant status topic (default: shown below)
# Note: in addition to the `status_topic`, 'homeassistant/status' will also be used
status_topic: 'hass/status'
Remarque
-
Mon broker MQTT est accessible via :
192.168.17.4:1883
-
Avec le compte (utilisateur / mot de passe) :
utilisateurz2m
/AZERTY
-
Zigbee2MQTT communique avec un SLZB-06 (
ztack
) en TCP :192.168.17.245:6638
-
L’accès à la page Web de Zigbee2MQTT demande le mot de passe :
AAZZEERRTTYY
Après un docker compose up -d
, on vérifie que tout va bien avec un docker compose logs
:
zigbee2mqtt | Using ‘/app/data’ as data directory
zigbee2mqtt | Starting Zigbee2MQTT without watchdog.
zigbee2mqtt | [2025-01-25 20:52:41] info: z2m: Logging to console, file (filename: log.log)
zigbee2mqtt | [2025-01-25 20:52:41] info: z2m: Starting Zigbee2MQTT version 2.0.0 (commit #060ae99cff715cc9ef6a0cfa7cae0cdcb17f0c8a)
zigbee2mqtt | [2025-01-25 20:52:41] info: z2m: Starting zigbee-herdsman (3.2.1)
zigbee2mqtt | [2025-01-25 20:52:41] info: zh:zstack:znp: Opening TCP socket with 192.168.17.245:6638
zigbee2mqtt | [2025-01-25 20:52:41] info: zh:zstack:znp: Socket connected
zigbee2mqtt | [2025-01-25 20:52:41] info: zh:zstack:znp: Socket ready
zigbee2mqtt | [2025-01-25 20:52:41] info: zh:zstack:znp: Writing CC2530/CC2531 skip bootloader payload
zigbee2mqtt | [2025-01-25 20:52:42] info: zh:zstack:znp: Skip bootloader for CC2652/CC1352
zigbee2mqtt | [2025-01-25 20:52:42] info: z2m: zigbee-herdsman started (resumed)
zigbee2mqtt | [2025-01-25 20:52:42] info: z2m: Coordinator firmware version: ‘{“meta”:{“maintrel”:1,“majorrel”:2,“minorrel”:7,“product”:1,“revision”:20240710,“transportrev”:2},“type”:“zStack3x0”}’
zigbee2mqtt | [2025-01-25 20:52:42] info: z2m: Connecting to MQTT server at mqtt://192.168.17.4:1883
zigbee2mqtt | [2025-01-25 20:52:42] info: z2m: Connected to MQTT server
Configuration
Une fois sur l’interface Web (dans mon exemple, sur le port 8088), il suffit de cliqué sur le bouton Permit join (all) afin d’être en écoute sur les demandes d’appareillage.
Ensuite, il faut passer votre capteur en mode appareillage afin qu’il soit
découvert par Zigbee2MQTT (Z2M).
Lors de l’ajout du périphérique, quelques erreurs peuvent apparaitre.
Cela est normal car au début, Z2M ne sait pas encore de quel périphérique
il s’agit. Une fois qu’il a récupéré les informations, tout s’établie correctement.
Une fois l’appareil ajouté, je vous invite à le renommer pour plus de simplicité.
En cochant l’option, on va s’assurer que cela soit bien répercuté dans HA.
Intégration HA
De par la configuration faite dans Z2M et que le broker soit ajouté dans HA, les éléments doivent apparaitre automatiquement.
Sinon, vous pouvez le faire manuellement via le lien ci-dessous :
Il est aussi possible d’ajouté le coordinateur lui-même sur HA via
l’intégration SMLIGHT.
L’intérêt principal est d’être notifié lorsqu’il y a des MAJ sur le module.
Ainsi, j’ai réussi à ajouter tous mes capteurs Zigbee (donc ceux qui ne fonctionnait plus sur ZHA !) :
Conclusion
Cela fait depuis 3 mois que j’utilise ce système et j’en suis pleinement satisfait.
J’ai même ajouté de nouveaux périphériques (ce que je ne souhaitais pas faire
avant car ZHA n’était pas stable chez moi).
Vous l’avez peut-être remarqué j’ai ajouté des têtes thermostatiques connectées.
Vous connaissez donc le sujet du prochain article !