Nous avons vu il y a quelques mois, un guide dédié à ZigBee2MQTT et le Raspberry Pi 4. Une solution domotique économique et performante pour vos périphériques Zigbee, d’autant que le dongle ne coûte que 20€ pour des performances hallucinantes. Le fameux dongle CC2531 et son antenne. Voyons aujourd’hui comment effectuer cette installation sous une machine virtuelle Debian 10 virtualisée sur un NAS Synology.
Zigbee2MQTT et Raspberry Pi 4 : Comment installer la passerelle Zigbee 3.0 DIY avec CC2531 ?
Je vous propose un nouveau guide domotique Do It Yourself basé autour de 3 éléments incontournables en domotique en 2021. Il s’agit du Raspberry Pi, qui sait vraiment tout faire. Le Zigbee, qui est sans conteste le protocole de l’année…
Avant tout, il faut commencer par installer une Debian 10 sur une machine virtuelle du NAS Synology. Un environnement de bureau n’est pas nécessaire, prenez simplement à y ajouter le service SSH pendant l’installation afin de pouvoir s’y connecter à distance par la suite. De mon côté, j’ai une “VM template” qui est une VM Debian 10 sans environnement de bureau et avec SSH actif. Je n’ai alors qu’à dupliquer cette VM en cas de besoin pour un nouveau projet. Cela permet de gagner pas mal de temps. Si vous avez de l’espace disque sur votre NAS, je vous conseille de procéder de même.
La connexion à Debian 10 et les prérequis à Zigbee2MQTT
Avant de démarrer l’installation de ZigBee2MQTT, il est nécessaire de préparer quelque peu le terrain. Rien de bien compliqué, mais avant de pouvoir prendre la main sur la Debian 10 en ssh, il faut déjà en connaître son adresse IP.
- Pour cela, connectez-vous au système depuis Virtual machine manager et l’option Connecter.
2. Une fois identifié sur l’OS, il s’agit d’identifier l’adresse IP attribuée à cette VM
3. Pour connaître l’adresse IP, entrez simplement la commande suivante :
ip addr
4. Le terminal retourne alors les adresses de la machine. parmi elles figure l’adresse sur votre réseau, celle qui va vous permettre de vous connecter en SSH sur cette machine virtuelle linux.
Utilisez alors Putty sous Windows ou votre terminal sous Mac pour vous connecter en SSH au système.
Brancher le dongle
A ce stade, l’environnement Zigbee2MQTT est prêt. Nous pouvons passer au branchement du dongle CC2531sur le NAS.
Pour ce faire, branchez le dongle sur un port USB du NAS Synology.
Il faut à présent, se rendre dans Virtual Machine manager et mettre hors tension la machine virtuelle
Editez ensuite les paramètres de la VM et rendez-vous dans Modifier la machine virtuelle, onglet Autres, puis sélectionner le contrôleur USB 2.0
Ensuite, choisissez le dongle CC2531 dans la liste déroulante. Si le dongle est correctement branché, il devrait apparaître comme ci-dessous.
Validez par OK, puis mettre sous tension la Machine Virtuelle.
Préparation de l’environnement
Avant de démarrer, il faut passer en admin afin de disposer des droits suffisants pour les différentes actions à réaliser.
- Pour cela rien de compliqué, on utilise simplement la commande su.
su
2. Il faut ensuite commencer à installer les paquets nécessaires au bon fonctionnement de Zigbee2MQTT comme curl ou encore git qui nous seront nécessaires pour installer la solution.
apt-get curl
apt-get git
3. Maintenant que nous avons le nécessaire au téléchargement et installation, passons au téléchargement des sources :
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
4. Ensuite, il faut installer la partie node.js
apt-get install -y nodejs git make g++ gcc
5. Passons aux vérifications des versions de npm et node avec les commandes suivantes :
node --version
npm --version
Si tout s’est bien passé, vous devriez obtenir un résultat comme celui-ci dans le terminal.
Installation de Zigbee2MQTT
- Nous voilà maintenant prêts à passer aux choses sérieuses en clonant le git officier sur notre système.
git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
2. À present, il faut passer à l’attribution des droits.
sudo chown -R user:user /opt/zigbee2mqtt
3. On se déplace ensuite dans le répertoire d’installation avant de lancer l’installation.
cd /opt/zigbee2mqtt
4. Nous voilà à présent prêts à lancer l’installation des dépendances de npm
npm ci --production
L’installation de Zigbee2mQTT sur Debian 10 est maintenant terminée. Il reste encore quelques manipulations à faire pour le bon fonctionnement de la solution.
Configuration de Zigbee2MQTT
- La configuration de Zigbee2MQTT sur Debian 10 est identique à ce que nous avions vue dans le guide Raspberry Pi. Il s’agit de configurer le fichier configuration.yaml via nano.
nano /opt/zigbee2mqtt/data/configuration.yaml
Notez qu’il est possible d’activer une option qui permet d’avoir une interface web pour administrer la passerelle zigbee. Pour cela, je vous invite à suivre notre guide et vous encourage vivement à le faire.
Comment activer l’interface web frontend de Zigbee2MQTT ?
Nous avons vu il y a quelques temps comment créer une passerelle Zigbee2MQTT très performante avec un Raspberry Pi et un sniffer Zigbee CC2531. Nous avions vu que le système est très performant mais se manipule en ligne de commande…
2. Une fois la configuration effectuée, il ne vous reste plus qu’à lancer Zigbee2MQTT pour confirmer que tout est en ordre à l’aide de la commande :
npm start
3. Si après cette commande, vous recevez des erreurs comme ci-dessous, il s’agit d’un problème connu par la communauté qui vient de la dernière version de Zigbee2MQTT. Une Solution pour voir le service fonctionner et de descendre sur une version inférieure en attendant que ce problème soit corrigé.
4. Pour revenir à une version précédente et corriger le problème, jouez simplement les deux commandes suivantes.
su
git fetch origin && git checkout 07ff52a56f112c8808c11f3b6f55cc50560f5fd1
5. Relancez alors npm et le problème devrait être corrigé.
npm start
6. Si tel est le cas, vous apercevez le journal d’activité live de Zigbee2mqtt comme ci-dessous.
Démarrage de Zigbee2MQTT
Nous avons vérifié que Zigbee2MQTT était fonctionnel avec la commande npm mais cette commande n’est viable que via l’interpréteur. Une fois le terminal fermé, le système ne sera plus opérationnel. Il faut donc configurer un démarrage automatique en tant que service pour que le système fonctionne de manière autonome.
- Placez-vous dans le répertoire de Zigbee2mqtt
cd /opt/zigbee2mqtt
2. Editez un nouveau fichier service dedié
nano /etc/systemd/system/zigbee2mqtt.service
3. collez dans ce dernier les lignes suivantes et quittez à l’aide de la combinaison ctrl+ X pour enregistrer
[Unit]
Description=zigbee2mqtt
After=network.target
[Service]
ExecStart=/usr/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
StandardError=inherit
Restart=always
User=root
[Install]
WantedBy=multi-user.target
4. Lancez alors le système via la commande suivante :
systemctl start zigbee2mqtt
5. Enfin, vérifiez que tout est OK à l’aide de la commande suivante :
systemctl status zigbee2mqtt.service
Vous devez en retour visualiser l’état du service de la manière suivante :
6. Pour terminer, il ne reste plus qu’à lancer un redémarrage du système.
sudo reboot
Après quelques minutes, vous devriez pouvoir vous connecter à la page web du frontend de Zigbee2MQTT, si vous l’avez activée dans le fichier de configuration.
Bonjour Aurélien,
J’esssaye de mettre en place zigbee2mqtt sur une VM de mon Synology (DS920+), mais je bloque à la détection du dongle par l’USB.
C’est un Zigbee Popp. Il ne semble pas détecté par le synology, même après un reboot.
Il est branché en direct sur le NAS.
La détection semble fonctionner, car le NAS detecte mon onduleur APC (branché sur l’autre port USB).
Sais-tu si ce dongle Popp est compatible avec Synology; pour info, il était branché avant sur mon RPI avec Jeedom.
Merci d’avance. pour ta réponse.