Mise à jour de Zigbee 2 MQTT

Installer, c’est bien, maintenir à jour, c’est encore mieux. Maintenir à jour Zigbee2MQTT est assez simple. Pour rappel, c’est un projet encore en plein développement. Évitez donc une mise à jour si vous n’avez pas un peu de temps devant vous pour ramasser les possibles pots cassés.

Si vous avez suivi mon article sur l’installation de Zigbee2MQTT ou la « documentation officielle » tout devrait bien se passer.


Mise à jour

Commencez par arrêter le service Zigbee2MQTT

sudo systemctl stop zigbee2mqtt

Placez-vous dans le dossier /opt/zigbee2mqtt

cd /opt/zigbee2mqtt

Copiez les fichiers présents dans le dossier data nous en aurons besoin après la mise à jour ou en cas de souci.

cp -R data data-backup

Place à la mise à jour avec git et npm.

git checkout HEAD -- npm-shrinkwrap.json
git pull
npm ci

Restauration du dossier data.

cp -R data-backup/* data

Vous pouvez maintenant relancer Zigbee2MQTT.

sudo systemctl start zigbee2mqtt

Si tout c’est bien passé, vous pouvez supprimer le dossier data-backup.

rm -rf data-backup

Conclusion

Pensez à faire des sauvegardes, cela vous évitera de devoir repasser par la case appairage de chacun de vos appareils. Comme d’habitude vous avez mes réseaux sociaux et maintenant le Discord ioodyme ainsi que le tout nouveau groupe Telegram.


Sources

Appairage Zigbee 2 MQTT

À l’écriture de cet article le projet Zigbee2MQTT supporte « officiellement » 1402 appareils de 207 fabricants ou marques.


Coté serveur (Zigbee2MQTT)

Un peu de configuration pour commencer dans le fichier configuration.yaml assurez-vous de la présence de permit_join et qu’il soit autorisé permit_join: true

nano /opt/zigbee2mqtt/data/configuration.yaml

Coté « client » (Devices)

Chaque appareil ou constructeur à sa méthode ou presque… Appuyer sur un bouton proche de la passerelle (clé USB), un « petit trou reset » à maintenir x secondes… Ou parfois, c’est encore plus amusant… Voir la vidéo reset d’une ampoule Ikea ci-dessous.

Dans la liste des « Supported Devices » de la documentation, vous trouverez les procédures d’appairages en anglais. Vous trouverez un exemple avec la prise Ikea TRADFRI E1603/E1702. Une autre piste pour l’appairage est la documentation de la Zigate (une autre passerelle Zigbee).


Conclusion

À la fin de l’appairage de vos appareils, il est important de remettre la valeur de permit_join à false permit_join: false sinon vous risquez de voir apparaitre du monde sur votre réseau.

Vous pouvez vérifier dans les logs ou via MQTT de la réussite d’un appairage.

N’hésitez pas à vous fabriquer un Zigbee Big Red Button.

Comme d’habitude vous avez mes réseaux sociaux et maintenant le Discord ioodyme ainsi que le tout nouveau groupe Telegram.


Sources

Installation de Zigbee 2 MQTT

Afin de se débarrasser des diverses passerelles IKEA, HUE, … Qui pour certaines ne sont plus maintenue par leur fabricant. Coucou Phillips. Il existe une solution, pour intégrer tout ce petit monde facilement à votre domotique en passant via MQTT.

Source : https://github.com/koenkk/zigbee2mqtt

Prérequis

La clé CC2538 + CC2592 – Zigbee 3.0 de Mister3D

Installation

Si vous avez besoin d’un serveur MQTT : Installer un broker MQTT – Mosquitto – Ubuntu le tuto est applicable sans problème sur votre installation de Raspberry Pi OS.

  • Après si nécessaire avoir flashé votre clé Zigbee, il suffit de la brancher sur le Raspberry Pi,
ls -l /dev/tty*

Pour la plupart des clés USB le port sera ttyACM0 ou ttyUSB0.

Petite mise à jour du Pi et installation de Node.js, Git et de quoi compiler.

sudo apt-get update && apt-get upgrade
sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs git make g++ gcc

On clone le dépôt GitHub de Zigbee2MQTT et on règle les permissions

sudo git clone https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
sudo chown -R pi:pi /opt/zigbee2mqtt

On passe à l’installation

cd /opt/zigbee2mqtt
npm ci --production

Si tout se passe bien vous devriez avoir un retour dans votre terminal ressemblant à ça :

node-pre-gyp info ok
added 383 packages in 111.613s

Le nombre de « packages » et le temps peuvent être différents sur votre installation.

L’installation est maintenant terminée ! Il reste maintenant à passer à un peu de configuration.


Configuration

La configuration se fait via le fichier configuration.yaml dans /opt/zigbee2mqtt/data/.

nano /opt/zigbee2mqtt/data/configuration.yaml
# MQTT settings
mqtt:
  # MQTT base topic for Zigbee2MQTT MQTT messages
  base_topic: zigbee2mqtt
  # MQTT server URL
  server: 'mqtt://localhost'
  # MQTT server authentication, uncomment if required:
  # user: my_user
  # password: my_password

Dans la configuration de base, vous pouvez configurer base_topic qui sera le « préfixe » de tout les topics MQTT provenant de Zigbee2MQTT et la configuration MQTT. Pensez à dé-commenter user et password si nécessaire.

Après avoir fini d’éditer la configuration, lancez la commande suivante afin de générer la clé du réseau.

echo "\n\nadvanced:\n    network_key: GENERATE" >> /opt/zigbee2mqtt/data/configuration.yaml

Il est temps de tester et de démarrer Zigbee2MQTT.

cd /opt/zigbee2mqtt
npm start

Pas d’erreur ? Tout fonctionne ? CRTL + C afin d’arrêter le processus en cours.


Démarrage automatique

Afin de ne pas se soucier du lancement, nous allons mettre Zigbee2MQTT au démarrage du Raspberry Pi.

Créez le fichier de configuration systemctl zigbee2mqtt.service :

sudo nano /etc/systemd/system/zigbee2mqtt.service

Ajoutez ceci au fichier que vous venez de créer/ouvrir :

[Unit]
Description=zigbee2mqtt
After=network.target

[Service]
ExecStart=/usr/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
# Or use StandardOutput=null if you don't want Zigbee2MQTT messages filling syslog, for more options see systemd.exec(5)
StandardError=inherit
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

Si vous êtes sur un pi zéro jetez un œil à ce guide. Il est nécessaire de remplacer ExecStart=/usr/bin/npm start par ExecStart=/usr/local/bin/npm start

Maintenant, il suffit d’activer le service.

sudo systemctl enable zigbee2mqtt.service

Pour terminer cette partie quelques commandes utiles :

  • Voir le statut : systemctl status zigbee2mqtt.service
  • Arrêter : sudo systemctl stop zigbee2mqtt
  • Démarrer : sudo systemctl start zigbee2mqtt
  • Voir le log : sudo journalctl -u zigbee2mqtt.service -f

Conclusion

La partie installation est terminée. Vous trouverez plus d’informations dans les sources ci-dessous. La prochaine étape sera l’appairage des différents appareils Zigbee. Comme d’habitude vous avez mes réseaux sociaux et maintenant le Discord ioodyme ainsi que le tout nouveau groupe Telegram.


Sources