La pérennité d’un système domotique repose en grande partie sur la régularité de sa maintenance. Zigbee2MQTT, pierre angulaire de nombreuses installations connectant les appareils Zigbee via le protocole MQTT, ne fait pas exception à cette règle. Procéder à sa mise à jour est une opération essentielle qui garantit non seulement l’accès aux dernières fonctionnalités et la compatibilité avec de nouveaux équipements, mais renforce également la sécurité et la stabilité de l’ensemble de l’écosystème. Négliger cette étape peut conduire à des dysfonctionnements, des failles de sécurité ou une obsolescence prématurée. Ce guide propose une approche méthodique et sécurisée pour mener à bien cette procédure, en particulier dans un environnement virtualisé sous Proxmox, un cas d’usage de plus en plus répandu chez les amateurs de domotique avancée.
Préparer la mise à jour de Zigbee2MQTT
Consulter les notes de version
Avant toute manipulation, la première étape consiste à consulter scrupuleusement les notes de version (release notes) de la nouvelle mouture de Zigbee2MQTT. Les développeurs y détaillent les nouveautés, les corrections de bogues, mais surtout les éventuels changements majeurs, aussi appelés breaking changes. Ces derniers peuvent nécessiter des modifications manuelles de votre fichier de configuration pour que le service puisse redémarrer correctement. Ignorer cette lecture peut transformer une mise à jour de routine en une longue session de dépannage. Prenez donc le temps de vous informer sur les prérequis et les ajustements potentiels liés à la version que vous visez.
Vérifier la compatibilité matérielle
Une mise à jour logicielle peut introduire de nouvelles exigences matérielles ou modifier la manière dont le programme interagit avec le matériel existant. Il est crucial de s’assurer que votre coordinateur Zigbee, souvent une clé USB ou « dongle », est toujours pleinement compatible. Parfois, une mise à jour de Zigbee2MQTT doit s’accompagner d’une mise à jour du firmware du coordinateur lui-même pour bénéficier des dernières améliorations du protocole Zigbee 3.0 ou pour corriger des instabilités. Les documentations officielles listent généralement les coordinateurs recommandés et les versions de firmware testées.
-
SONOFF ZigBee 3.0 USB Dongle Plus, EFR32MG21 Coordinator, Universelle USB ZigBee Hub, Passerelle ZigBee pour Home Assistant
-
SONOFF Zigbee 3.0 & Thread Dongle Lite (EFR32MG21) | Coordinateur de clé USB pour Home Assistant & Zigbee2MQTT | Passerelle compacte avec Fonction Flash Simple firmware et rallonge
-
SONOFF Zigbee 3.0 Dongle USB Plus MG24, Zigbee Gateway avec EFR32MG24, Thread & Zigbee Clé USB, Contrôleur Zigbee pour Home Assistant ou Zigbee2MQTT
Planifier un créneau pour l’intervention
Même une opération bien préparée n’est pas à l’abri d’un imprévu. Il est sage de planifier la mise à jour à un moment où vous disposez de suffisamment de temps pour la réaliser sans précipitation et, le cas échéant, pour résoudre les problèmes qui pourraient survenir. Évitez de lancer la procédure juste avant de partir de chez vous ou à un moment où le bon fonctionnement de votre domotique est critique. Prévoyez une plage horaire d’au moins une heure pour effectuer la mise à jour et les vérifications post-installation en toute sérénité.
Une fois cette phase de préparation intellectuelle et matérielle achevée, l’action la plus concrète et la plus importante avant de modifier le système est la sécurisation de vos données actuelles.
Procéder à la sauvegarde des configurations actuelles

Identifier les éléments à sauvegarder
Le cœur de votre installation Zigbee2MQTT réside dans son répertoire de données. Celui-ci contient plusieurs fichiers et dossiers critiques qu’il est impératif de préserver. La sauvegarde doit inclure au minimum les éléments suivants :
- Le fichier configuration.yaml : il contient toute votre configuration, les paramètres du courtier MQTT, le chemin vers le coordinateur et les options spécifiques à vos appareils.
- Le fichier database.db : il stocke l’état des appareils et les informations d’appairage. Sa perte signifierait devoir ré-appairer tous vos équipements.
- Le fichier state.json : utilisé par certaines versions pour conserver des informations d’état.
- L’éventuel fichier groups.yaml si vous utilisez des groupes d’appareils.
En pratique, la méthode la plus simple et la plus sûre est de sauvegarder l’intégralité du dossier de données de Zigbee2MQTT.
Choisir la bonne méthode de sauvegarde
La technique de sauvegarde dépend directement de votre type d’installation. Si vous utilisez Proxmox, vous disposez d’un outil extrêmement puissant : les instantanés (snapshots). Pour une machine virtuelle ou un conteneur LXC hébergeant Zigbee2MQTT, la création d’un snapshot juste avant la mise à jour est la meilleure des garanties. Cela permet, en cas de problème majeur, de revenir à l’état exact du système en quelques clics, comme si rien ne s’était passé. Pour une installation via Docker, il suffit de copier le volume persistant contenant les données de configuration sur un support externe ou un autre emplacement sur votre serveur. Pour une installation sur un mini-ordinateur comme un Raspberry Pi, une simple commande d’archivage (comme `tar` ou `zip`) du répertoire de configuration, copiée ensuite sur un autre appareil, fera l’affaire.
-
Raspberry Pi 5 8 Go Starter-Set | Édition 128 Go | Alimentation Officielle 27W | Boîtiers Officiel avec Ventilateur | Câble Micro HDMI 4K 1 m | dissipateur Thermique en Aluminium
-
Raspberry Pi 5 4 Go Starter-Set | Carte mémoire de 64 Go | Alimentation USB-C 27 W | boîtier avec Ventilateur | 4K Câble Micro-HDMI 1 m | Dissipateur de Chaleur | Raspberry Pi 5 4 Go
-
Raspberry Pi Zero 2 W
Avec une copie de sécurité de vos précieuses configurations mise en lieu sûr, vous pouvez désormais vous lancer dans le processus de mise à jour avec une confiance renouvelée.
Effectuer la mise à jour de Zigbee2MQTT sous Proxmox
Mise à jour dans un conteneur LXC
Pour les utilisateurs ayant installé Zigbee2MQTT dans un conteneur LXC Debian ou Ubuntu, la procédure est similaire à la mise à jour d’un paquet standard. Commencez par vous connecter à la console de votre conteneur depuis l’interface Proxmox. La première commande, et la plus importante, est d’arrêter le service pour éviter toute corruption de données durant la mise à jour : sudo systemctl stop zigbee2mqtt. Une fois le service stoppé, lancez la mise à jour des listes de paquets avec sudo apt update, puis procédez à la mise à niveau effective du paquet avec sudo apt upgrade. Le système vous demandera de confirmer l’installation de la nouvelle version. Acceptez, puis une fois l’opération terminée, redémarrez le service avec sudo systemctl start zigbee2mqtt.
Mise à jour avec Docker ou Docker Compose
Si votre installation repose sur Docker, la méthode est différente mais tout aussi simple. L’idée est de remplacer l’ancienne image du conteneur par la nouvelle. Si vous utilisez Docker Compose, qui est la méthode recommandée, la procédure est très efficace. Placez-vous dans le répertoire contenant votre fichier docker-compose.yaml. Arrêtez et supprimez le conteneur existant avec la commande docker-compose down. Ensuite, téléchargez la dernière version de l’image spécifiée dans votre fichier avec docker-compose pull. Enfin, recréez et démarrez le conteneur avec la nouvelle image grâce à la commande docker-compose up -d. Votre configuration étant stockée dans un volume persistant, elle sera automatiquement réutilisée par le nouveau conteneur.
La mise à jour technique est maintenant terminée, mais le travail n’est pas fini. Il arrive que des erreurs se manifestent au redémarrage, nécessitant une phase de diagnostic.
Résoudre les erreurs et problèmes communs
Analyser les journaux d’erreurs
La première chose à faire si Zigbee2MQTT ne démarre pas ou se comporte de manière anormale est de consulter les journaux (logs). C’est votre source d’information la plus précieuse. Pour une installation avec systemd (comme dans un LXC), la commande sudo journalctl -u zigbee2mqtt -f vous affichera les logs en temps réel. Pour une installation Docker, utilisez docker logs -f nom_du_conteneur. Cherchez des lignes contenant les mots « ERROR » ou « WARN ». Les messages sont souvent explicites et peuvent pointer vers une erreur de syntaxe dans le configuration.yaml ou un problème de connexion avec le coordinateur.
Gérer les problèmes de coordinateur
Un problème fréquent après une mise à jour est que Zigbee2MQTT ne parvient plus à communiquer avec la clé Zigbee. Cela peut être dû à un changement du nom du port série (par exemple, de /dev/ttyACM0 à /dev/ttyACM1). La meilleure pratique est d’utiliser un chemin de périphérique persistant (par son ID) dans votre configuration, ce qui évite ce genre de désagrément. Vérifiez également les permissions d’accès au port série, qui peuvent parfois être réinitialisées. Assurez-vous que l’utilisateur qui exécute Zigbee2MQTT fait bien partie du groupe `dialout`.
Tableau des erreurs fréquentes
Pour vous aider à diagnostiquer rapidement, voici un tableau récapitulatif de quelques erreurs courantes et de leurs solutions potentielles.
| Message d’erreur typique | Cause probable | Solution suggérée |
|---|---|---|
| Error: Cannot find module ‘…’ | Dépendances manquantes ou corrompues. | Exécuter npm install dans le répertoire d’installation. |
| Error: SRSP – ZDO – mgmtPermitJoinReq after 6000ms | Problème de communication avec le coordinateur. | Vérifier le branchement physique de la clé, le chemin dans la configuration et les permissions. |
| YAMLParseError: invalid mapping | Erreur de syntaxe dans le fichier configuration.yaml. | Utiliser un validateur YAML en ligne pour vérifier l’indentation et la syntaxe du fichier. |
Une fois que le service démarre sans erreur et que le système semble stable, il est temps de passer à la dernière étape de validation pour clore sereinement cette opération de maintenance.
Finaliser et vérifier le bon fonctionnement après mise à jour

Contrôle de l’interface utilisateur
La première vérification visuelle s’effectue sur l’interface web de Zigbee2MQTT, si vous l’avez activée. Ouvrez-la dans votre navigateur. En haut de la page, vous devriez voir le nouveau numéro de version affiché, confirmant que la mise à jour a bien été prise en compte. Parcourez ensuite la liste de vos appareils. Assurez-vous que tous vos équipements sont présents et que leur statut (en ligne, hors ligne, niveau de batterie) semble cohérent. Vérifiez également l’onglet « Carte » pour visualiser le maillage de votre réseau Zigbee et confirmer que les connexions entre les appareils et le coordinateur sont établies.
Tests fonctionnels des appareils
Une vérification visuelle ne suffit pas. Il est indispensable de procéder à des tests fonctionnels pour s’assurer que la communication est bien opérationnelle dans les deux sens. La meilleure approche est de tester un échantillon représentatif de vos appareils :
- Actionneurs : Allumez et éteignez une ampoule ou une prise connectée depuis votre système domotique (Home Assistant, Jeedom, etc.).
- Capteurs : Déclenchez un capteur de mouvement ou d’ouverture et vérifiez que son changement d’état est bien remonté quasi instantanément dans votre système.
- Appareils sur batterie : Vérifiez que le niveau de batterie est correctement rapporté pour un capteur de température ou un bouton.
Testez également une ou deux de vos automatisations les plus importantes qui dépendent d’appareils Zigbee pour confirmer que l’ensemble de la chaîne de communication fonctionne comme attendu.
Surveillance à court terme
Après avoir validé le fonctionnement immédiat, laissez le système tourner et gardez un œil sur les journaux pendant les heures qui suivent la mise à jour. Cela permet de détecter d’éventuels problèmes intermittents ou des erreurs qui n’apparaissent qu’après un certain temps de fonctionnement. Une surveillance passive vous assurera que la nouvelle version est aussi stable que la précédente et que votre système domotique a retrouvé sa pleine fiabilité.
La mise à jour de Zigbee2MQTT, bien que pouvant paraître intimidante, est une procédure logique et maîtrisable lorsqu’elle est abordée avec méthode. La préparation en amont, notamment la lecture des notes de version, et la réalisation d’une sauvegarde fiable constituent les deux piliers d’une opération réussie. En suivant les étapes d’exécution adaptées à votre environnement, que ce soit un conteneur LXC ou Docker, puis en procédant à une vérification rigoureuse des journaux et des fonctionnalités, vous assurez la longévité, la sécurité et la performance de votre réseau domotique. Cette maintenance régulière est le gage d’un système intelligent qui évolue sereinement avec la technologie.

