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.
Prérequis
- Un Raspberry Pi (dans le cas ici 3B+) flashé et prêt
- Un device Zigbee (une prise Ikea, un capteur Xiaomi, …)
- Une clé USB Zigbee
- CC2531 Amazon et de quoi le flasher
- Ou la super clé prête à l’emploi 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.