#Test du pont Zigbee2MQTT, hack Gateway Xiaomi Smart Home Aqara. Partie 1 : assemblage, démo avec Node-RED, boitier [Màj]

Il y a trois semaines, je vous ai présenté le projet Zigbee2mqtt qui permet de fabriquer un pont domotique à l’aide d’un sniffer Zigbee CC2531 de Texas Instrument. C’est un projet équivalent au projet français Zigate. Il est compatible avec la plupart des accessoires domotiques Xiaomi Smart Home Aqara et Mijia ainsi que quelques ampoules Ikea. Après environ 3 semaines d’attente, j’ai reçu tout le matériel nécessaire il y a quelques jours (CC Debugger, Sniffer CC2531 et interface de câblage GBAN).

 

Je vous propose un test grandeur réelle avec quelques accessoires Xiaomi Mijia. Outre de nombreux avantages, le projet Zigbee2MQTT va nous permettre de nous débarrasser de la gateway officielle et garder la main sur vos données personnelles. Toutes les mesures, états, commandes resterons chez vous. Le code source est entièrement disponible sur GitHub.

Dans la seconde partie de cet article, tout est expliqué pour inclure les accessoires Xiaomi Aqara ou Mijia à Domoticz à l’aide de Node-RED.

Matériel nécessaire pour fabriquer la Gateway Xiaomi Zigbee

Le pont zigbee2mqtt utilise un sniffer basé sur le circuit CC2531 (environ 5€) de Texas Instrument. Il faudra acheter un CC Debugger de Texas Instrument (environ 16€) pour installer et mettre à jour le firmware sur le sniffer. Il faudra également acheter un câble spécifique (GBAN) qui permet de relier le CC Debugger au Sniffer CC2531 (environ 2€). à chaque fois que vous voulez mettre à jour le firmware.

Matériel nécessaire pour faire fonctionner le pont Zigbee2MQTT

Une fois que le firmware est installé sur le sniffer CC2531, vous n’aurez plus besoin du CC Debugger et de l’interface GBAN. C’est un investissement d’environ 20€ pour fabriquer la gateway Zigbee mais rien ne vous empêche de fabriquer plusieurs Gateway. En utilisant un Raspberry Pi Zero ou un Orange Pi Zero en Ethernet vous pourrez très facilement augmenter la couverture Zigbee dans votre habitation ou pourquoi pas votre jardin.

Ici, nous utiliserons un Raspberry Pi 3 équipé d’une carte SD de 16Go sur laquelle sont installés Node-RED, Domoticz et le broker MQTT. Node-RED nous servira à intégrer les appareils Zigbee à l’application Maison (Homekit) sur iOS.

Principe de fonctionnement du pont Zigbee2MQTT

Toutes les actions, états, mesures sont donc interceptées et publiées sur un broker (serveur) MQTT. La passerelle est bi-directionnelle, c’est à dire qu’on pourra également pilotés les appareils Zigbee en envoyant des messages MQTT.

architecture zigbee mqtt xiaomi aqara

Le projet a été développé en javascript à l’aide de Nodejs. En théorie, on pourra donc faire fonctionner la passerelle sur PC Windows/Linux, MAC et mini PC ARM tel que le Raspberry Pi ou Orange Pi. Pour ce tutoriel, nous allons le déployer sur un Raspberry Pi 3 sur lequel est également installé un broker MQTT (Mosquitto), Node-RED et Domoticz.

Installation du firmware sur le sniffer CC2531

Les étapes d’installation sont peu nombreuses et très bien expliquées sur le WiKi officiel. Je n’ai rencontré aucune difficulté particulière. Le Wiki propose plusieurs méthodes d’installation pour chaque système (Linux, macOS), mais le plus facile est encore d’utiliser un PC Windows.

Installer SmartRF Flash Programmer

Commencez par récupérer la version 1 du logiciel SmartRF Flash Programmer sur le site de Texas Instrument en allant sur cette page. Vous aurez besoin de créer un compte utilisateur gratuit. Décompressez le ZIP et installez SmartRF Flash Programmer.

install SmartRF Flash Programmer cc debugger cc2531 zigbee mqtt

Branchez le CC Debugger et le Sniffer CC2531

Branchez le Sniffer au CC Debugger à l’aide d’un câble de liaison. Le Sniffer est équipé d’un connecteur au pas de 1mm. La carte GBAN sert juste à changer de format de câble. Il n’y a pas de détrompeur sur le CC2531. Utilisez la photo ci-dessous pour orienter correctement le câble (le détrompteur vers l’intérieur du Sniffer).

cc2531 usb sniffer connected to coucou debugger

Branchez le CC Debugger et le Sniffer CC2531 sur l’ordinateur. La LED du Debugger va être rouge au branchement., Appuyez sur le bouton RESET pour la passer en vert. On est prêt pour flasher le firmware.

cc debugger green led

Installer les drivers

Télécharger le driver Windows swrc212 du boitier CC Debugger (ici). Décompressez le fichier ZIP. Branchez le CC Debugger. Windows va tenter d’installer automatiquement le driver mais va probablement échouer. Le plus facile est et d’ouvrir le gestionnaire de périphérique et de faire un clic droit sur le CC Debugger puis de choisir l’option Mettre à jour le pilote…

nstall drivers windows cc debugger sniffer cc2531 zigbee xiaomi

Dans la fenêtre qui s’ouvre, choisissez Rechercher un pilote sur mon ordinateur

install manually coucou debugger driver windows zigbee

Puis, indiquez le chemin vers le dossier swrc212 qui contient le drivers (32-bits et 64-bits).

path cebal swrc212 cc debugger zigbee xiaomi

Windows scan le répertoire à la recherche du drivers adapté à votre version. Validez le drivers trouvé pour terminer l’installation. A la fin, les deux appareils doivent être correctement installés.

Télécharger le firmware

Le firmware Zigbee2MQTT est disponible sur GitHub sur cette page. Télécharger la dernière version (fichier hex)

Attention, le lien précédent est mort https://github.com/Koenkk/Z-Stack-firmware/tree/master/coordinator/CC2531/bin (merci à Nicolas)

Flasher le firmware

Lancez le programme SmartRF Flash Programmer. Indiquez le chemin vers l’image du firmware (fichier hex précédemment téléchargé) puis cliquez sur Perform Action. L’installation dure moins d’une minute. Ne débranchez rien pendant l’opération.

 

zigbee2mqtt flash firmware cc debugger cc2531 sniffer

Installer la passerelle Zigbee2MQTT sur le Raspberry Pi

Branchez le sniffer USB sur le Raspberry Pi et ouvrez un Terminal (ou connectez vous en SSH). Exécutez cette commande pour trouver le port sur lequel se trouve le Sniffer.

ls -l /dev/tty*

En général, il est branché sur le port ttyACM0.

Vérifiez maintenant que Nodejs et npm sont installés sur Raspbian. Si vous utilisez Jeedom ou Node-RED, vous n’avez rien à installer.

node --version  # v8.X.X mini
npm --version   # v5.X.X mini

Si ce n’est pas le cas, exécutez ces deux commandes ou suivez ce tutoriel pour plus de détail.

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

Maintenant, il ne reste plus qu’à installer Zigbee2MQTT

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

# Installation des dépendances - Install dependencies
cd /opt/zigbee2mqtt
npm install

La commande npm install reste en attente à la fin de l’installation. Vous pourrez la quitter manuellement à la lecture du message

node-pre-gyp info ok

Configurer la passerelle

Le fichier de configuration se trouve dans le dossier data.

nano /opt/zigbee2mqtt/data/configuration.yaml

Modifiez les paramètres MQTT :

  • topic de base
  • adresse IP du broker MQTT (server). Ne changez rien si le sniffer est branché sur le même Raspberry Pi
  • user et password si le broker est protégé par un mot de passe (fortement conseillé, suivez ce tutoriel pour le configurer)
# 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

Enregistrez avec CTRL+X puis O. Tout est prêt !

Ajouter un accessoire Xiaomi Aqara ou Mijia

Lancez le script de la gateway

cd /opt/zigbee2mqtt
npm start

Attendez d’avoir le message Zigbee: allowing new devices to join.

Pour le test, je vous propose d’intégrer le détecteur de présence Xiaomi Mi Motion Sensor. La procédure est identique quelque soit l’accessoire.

Prenez un trombone et maintenez le micro-interrupteur durant 3 à 5 secondes jusqu’à ce que la LED blue clignote. Vous devriez obtenir directement l’identifiant unique de votre accessoires. Le script s’occupe du jumelage. Contrairement à la gateway officielle, il faut empêcher l’accessoire de s’endormir en appuyant régulièrement (1 fois par seconde) sur le bouton d’association jusqu’à ce que le processus d’association débute.

Dès que le premier message arrive (détection de mouvement, mesure de température…), c’est terminé, votre accessoire Zigbee est maintenant associé.

2018-6-4 12:37:41 INFO Zigbee: allowing new devices to join.
2018-6-4 12:37:48 WARN Message without device!
spinlock: false []
2018-6-4 12:38:04 INFO New device with address 0x00158d000155d2b7 connected!
2018-6-4 12:38:04 INFO MQTT publish, topic: 'zigbee2mqtt/bridge/log', payload: '{"type":"device_connected","message":"0x00158d000155d2b7"}'
2018-6-4 12:38:08 INFO Connecting with device...
2018-6-4 12:38:08 INFO MQTT publish, topic: 'zigbee2mqtt/bridge/log', payload: '{"type":"pairing","message":"connecting with device"}'
2018-6-4 12:38:13 INFO Connecting with device...
2018-6-4 12:38:40 INFO MQTT publish, topic: 'zigbee2mqtt/bridge/log', payload: '{"type":"pairing","message":"device incoming"}'
2018-6-4 12:38:45 INFO MQTT publish, topic: 'zigbee2mqtt/0x00158d000155d2b7', payload: '{"click":"double"}'

Renommer les accessoires

Par défaut le script utilise l’identifiant unique de l’accessoire domotique comme nom. Ce n’est pas forcément le plus facile pour s’y retrouver. On peut facilement modifier le nom en allant le changer dans le fichier de configuration. Arrêtez le script et ouvrez de nouveau le fichier de configuration

nano /opt/zigbee2mqtt/data/configuration.yaml

En bas du fichier de configuration, vous allez trouver une nouvelle section nommée devices. Indiquez le nom de chaque accessoire avec la clé friendly_name. Evitez de mettre des espaces dans le nom des accessoires pour éviter les problèmes de Topic avec MQTT.

devices:
  '0x00158d000155d2b7':
    friendly_name: 'Aqara_Switch'
    retain: false
  '0x00158d000159a218':
    friendly_name: 'PIR'
    retain: false
  '0x00158d000149a352':
    friendly_name: 'Porte'
    retain: false

Démarrer automatiquement le pont Zigbee2mqtt au démarrage de Raspbian avec systemctl

Jens Willmer, le développeur à l’origine du projet vient de publier le script nécessaire pour démarrer le pont au démarrage de Raspbian. En cas de coupure de courant ou de redémarrage du Raspberry Pi suite à une mise à jour, c’est plus pratique. Créez un nouveau fichier de configuration systemctl

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

puis collez le code suivant

[Unit]
Description=zigbee2mqtt
After=network.target

[Service]
ExecStart=/usr/bin/npm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
StandardError=inherit
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

Pour démarrer le pont manuellement, exécutez la commande suivante

sudo systemctl start zigbee2mqtt

Ensuite, vérifiez que tout fonctionne comme prévu avec la commande status

sudo systemctl status zigbee2mqtt

Le service est correctement démarré

 zigbee2mqtt.service - zigbee2mqtt
   Loaded: loaded (/etc/systemd/system/zigbee2mqtt.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2018-09-11 11:45:24 UTC; 7s ago
   Main PID: 18086 (npm)
   CGroup: /system.slice/zigbee2mqtt.service
           ├─18086 npm
           ├─18095 /usr/bin/node /usr/lib/node_modules/npm/node_modules/update-notifier/check.js {"pkg":{"name":"npm","version":"5.6.0"}}
           ├─18109 sh -c node index.js
           └─18110 node index.js
sept. 11 11:45:24 raspberrypi systemd[1]: Started zigbee2mqtt.
sept. 11 11:45:29 raspberrypi npm[18086]: > zigbee2mqtt@0.1.0 start /opt/zigbee2mqtt
sept. 11 11:45:29 raspberrypi npm[18086]: > node index.js

On peut activer le démarrage automatique au prochain démarrage de Raspbian

sudo systemctl enable zigbee2mqtt.service

D’autres commandes utiles

  • sudo systemctl stop zigbee2mqtt, pour arrêter le service. Mise à jour, renommer les devices…
  • sudo journalctl -u zigbee2mqtt.service -f, permet d’afficher le journal d’exécution

Mise à jour de Zigbee2mqtt

La mise à jour n’est pas ce qu’il y a de plus simple mais il suffit de suivre à la lettre les commandes indiquées à Jens

# On arrête le service et on se place dans le répertoire d'installation du projet
sudo systemctl stop zigbee2mqtt
cd /opt/zigbee2mqtt

# Backup de la configuration
cp -R data data-backup

# Update
git checkout HEAD -- npm-shrinkwrap.json
git pull
rm -rf node_modules
npm install

# On restaure la configuration
cp -R data-backup/* data
rm -rf data-backup

# On re-démarre le service zigbee2mqtt
sudo systemctl start zigbee2mqtt

Un système d’alarme en 5′ chrono avec Node-RED et le plugin Homekit

En attendant un test complet avec Jeedom et Domoticz, voici une petite démo réalisée en quelques minutes avec Node-RED. On va créer un petit système d’alarme en utilisant Node-RED pour récupérer les états d’un contacteur de porte (pour la porte d’entrée) ainsi qu’un détecteur de présence qui surveille le salon.

Un noeud fonction permet d’extraire les données récupérées par le pont Zigbee. En fonction de ce que le capteur envoi, on pourra récupérer l’état et quelque fois le niveau et la tension de la batterie. On récupère en sortie du Node fonction 4 données utiles :

  1. L’état du capteur (booléen)
  2. Le niveau de batterie (0 à 100%)
  3. Un message que l’on pourra affiché sur le dashboard ou un message furtif
  4. La configuration pour un accessoire Homekit
msg1={};
msg2={};
msg3={};
msg4={};
msg1.payload = msg.payload.contact;
msg2.payload = msg.payload.battery;
if ( msg.payload.contact ) {
    msg3.payload = "La porte est fermée"
    msg4.payload = {
      ContactSensorState : 0
    }
} else {
    msg3.payload = "La porte est ouverte !"
    msg4.payload = {
      ContactSensorState : 1
    }
}

return [msg1,msg2,msg3,msg4];

Et voilà, en moins de 5 minutes sans avoir besoin d’installer un serveur domotique, vous pouvez développer un petit système d’alarme avec Node-RED

Xiaomi smart home aqara mijia zigbee2mqtt node-red dashboard

Le flow du projet à importer dans Node-RED

[{"id":"1c34793f.a5ff77","type":"mqtt in","z":"82ba45a3.b704f8","name":"PIR","topic":"zigbee2mqtt/PIR","qos":"2","broker":"12f512eb.9c8b5d","x":130,"y":100,"wires":[["f3413bab.47fab8"]]},{"id":"3a4b5967.b574c6","type":"function","z":"82ba45a3.b704f8","name":"Split","func":"msg1={};\nmsg2={};\nmsg3={};\nmsg4={};\nmsg1.payload = msg.payload.occupancy;\nmsg2.payload = msg.payload.battery;\n\nif ( msg.payload.occupancy ) {\n msg3.payload = \"Présence détectée !\"\n msg4.payload = {\n OccupancyDetected : 1\n }\n} else {\n msg3.payload = \"la pièce est vide\"\n msg4.payload = {\n OccupancyDetected : 0\n }\n}\n\n\nreturn [msg1,msg2,msg3,msg4];\n\n","outputs":4,"noerr":0,"x":380,"y":100,"wires":[["3b83fee7.b1a2b2"],["c23193fa.630a9"],["3a2d5f81.eee14"],["bc648e31.f6e3f"]],"inputLabels":["json"],"outputLabels":["Etat","NIveau batterie","Message notification","Etat Homekit"]},{"id":"f3413bab.47fab8","type":"json","z":"82ba45a3.b704f8","name":"","property":"payload","action":"","pretty":false,"x":250,"y":100,"wires":[["3a4b5967.b574c6"]]},{"id":"c23193fa.630a9","type":"ui_gauge","z":"82ba45a3.b704f8","name":"","group":"a76cdc5d.be91a","order":0,"width":"4","height":"4","gtype":"gage","title":"PIR","label":"%","format":"{{value}}","min":0,"max":"100","colors":["#b51220","#e6e600","#17ca0d"],"seg1":"","seg2":"","x":550,"y":120,"wires":[]},{"id":"2e447a4a.601166","type":"ui_gauge","z":"82ba45a3.b704f8","name":"","group":"a76cdc5d.be91a","order":0,"width":"4","height":"4","gtype":"gage","title":"Porte","label":"%","format":"{{value}}","min":0,"max":"100","colors":["#b51118","#e6e600","#32ca2b"],"seg1":"","seg2":"","x":530,"y":360,"wires":[]},{"id":"7cc7f334.508d0c","type":"mqtt in","z":"82ba45a3.b704f8","name":"Porte","topic":"zigbee2mqtt/Porte","qos":"2","broker":"12f512eb.9c8b5d","x":130,"y":340,"wires":[["1c94d73d.c53d69"]]},{"id":"b832b436.0ac2a8","type":"function","z":"82ba45a3.b704f8","name":"Split","func":"msg1={};\nmsg2={};\nmsg3={};\nmsg4={};\nmsg1.payload = msg.payload.contact;\nif ( msg.payload.contact ) {\n msg3.payload = \"La porte est fermée\"\n msg4.payload = {\n ContactSensorState : 0\n }\n} else {\n msg3.payload = \"La porte est ouverte !\"\n msg4.payload = {\n ContactSensorState : 1\n }\n}\n\nmsg2.payload = msg.payload.battery;\n\n\n\nreturn [msg1,msg2,msg3,msg4];","outputs":4,"noerr":0,"x":380,"y":340,"wires":[["a1d7b7f8.8f6458"],["2e447a4a.601166"],["f37b5a94.a19b98","a47a5db8.951a4"],["5d52112d.4c9f"]],"outputLabels":["Etat","Niveau batterie","Message Notification","Etat Homekit"]},{"id":"1c94d73d.c53d69","type":"json","z":"82ba45a3.b704f8","name":"","property":"payload","action":"","pretty":false,"x":250,"y":340,"wires":[["b832b436.0ac2a8"]]},{"id":"a1d7b7f8.8f6458","type":"ui_switch","z":"82ba45a3.b704f8","name":"","label":"Etat Porte","group":"80560196.e17ca","order":1,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":540,"y":320,"wires":[[]]},{"id":"3b83fee7.b1a2b2","type":"ui_switch","z":"82ba45a3.b704f8","name":"","label":"Etat PIR","group":"80560196.e17ca","order":4,"width":0,"height":0,"passthru":true,"decouple":"false","topic":"","style":"","onvalue":"true","onvalueType":"bool","onicon":"","oncolor":"","offvalue":"false","offvalueType":"bool","officon":"","offcolor":"","x":560,"y":80,"wires":[[]]},{"id":"f37b5a94.a19b98","type":"ui_toast","z":"82ba45a3.b704f8","position":"top right","displayTime":"10","highlight":"","outputs":0,"ok":"OK","cancel":"","topic":"","name":"","x":570,"y":400,"wires":[]},{"id":"bc648e31.f6e3f","type":"homekit-service","z":"82ba45a3.b704f8","accessory":"be545a0c.987228","name":"PIR","serviceName":"OccupancySensor","x":550,"y":200,"wires":[[]]},{"id":"5d52112d.4c9f","type":"homekit-service","z":"82ba45a3.b704f8","accessory":"abf76c70.fbd85","name":"Mi Switch","serviceName":"ContactSensor","x":540,"y":480,"wires":[[]]},{"id":"a47a5db8.951a4","type":"ui_text","z":"82ba45a3.b704f8","group":"80560196.e17ca","order":2,"width":0,"height":0,"name":"","label":"Etat","format":"{{msg.payload}}","layout":"row-spread","x":530,"y":440,"wires":[]},{"id":"3a2d5f81.eee14","type":"ui_text","z":"82ba45a3.b704f8","group":"80560196.e17ca","order":3,"width":0,"height":0,"name":"","label":"Présence","format":"{{msg.payload}}","layout":"row-spread","x":560,"y":160,"wires":[]},{"id":"12f512eb.9c8b5d","type":"mqtt-broker","z":"","name":"MQTT Local","broker":"localhost","port":"1883","clientid":"","usetls":false,"compatmode":true,"keepalive":"60","cleansession":true,"birthTopic":"","birthQos":"0","birthPayload":"","closeTopic":"","closeQos":"0","closePayload":"","willTopic":"","willQos":"0","willPayload":""},{"id":"a76cdc5d.be91a","type":"ui_group","z":"","name":"Niveaux batteries","tab":"6355179e.0ee2e8","order":2,"disp":true,"width":"4","collapse":false},{"id":"80560196.e17ca","type":"ui_group","z":"","name":"Etats ","tab":"6355179e.0ee2e8","order":1,"disp":true,"width":"8","collapse":false},{"id":"be545a0c.987228","type":"homekit-accessory","z":"","accessoryName":"Xiaomi Mi Motion","pinCode":"111-11-111","port":"","manufacturer":"Xiaomi","model":"RTCGQ01LM","serialNo":"0x00158d000159a218","accessoryType":"11"},{"id":"abf76c70.fbd85","type":"homekit-accessory","z":"","accessoryName":"Xiaomi Mi Switch","pinCode":"111-11-111","port":"","manufacturer":"Xiaomi","model":"WXKG01LM","serialNo":"0x00158d000155d2b7","accessoryType":"6"},{"id":"6355179e.0ee2e8","type":"ui_tab","z":"","name":"Xiaomi Smart Home","icon":"dashboard"}]

Vous pouvez même intégrer vos accessoires Xiaomi Aqara et Mijia dans l’appli Maison si vous possédez un iPhone.

xiaomi smart home pir motion door aqara mijia zigbee2mqtt nodered

Les accessoires de sécurité peuvent envoyer des notifications dès qu’un événement est déclenché même si vous n’êtes pas chez vous (à condition d’avoir un pont Homekit à la maison, une Apple TV ou un iPad).

xiaomi smart home pir motion door aqara mijia zigbee2mqtt nodered homekit notification

Pour en savoir plus, je vous conseille de lire ces tutoriels précédents :

Verrouiller la gateway

Une fois que tous les accessoires sont associés, il est plus prudent d’interdire l’association de nouveaux périphériques. Dans le fichier de configuration, passez la clé permit_join à false.

Boitier à imprimer en 3D

J’ai mis à disposition les fichiers STL d’un petit boitier à imprimer en 3D sur Thingiverse ici.

cc2531 zigbee2mqtt gateway 3d printed case

Comparaison de la portée de réception par rapport à la gateway officielle

Le sniffer USB CC2531 est avant tout est accessoire pour mettre au point les projets d’objets connectés. L’antenne Zigbee est gravée sur le PCB. Elle n’est pas forcément optimisée pour une réception à très longue portée. Pour en avoir le coeur net, j’ai fait un test comparatif (rapide) entre ma Gateway officielle et le Sniffer CC2531. Rien de bien scientifique dans ce test, j’ai simplement placé les deux gateway l’une à coté de l’autre puis vérifié la réception du bouton connecté dans les mêmes conditions (au même endroit).

Lieu Gateway Officielle Xiaomi Sniffer Zigbee CC2531
Chambre 1 Oui Oui
Chambre 2 Non Oui
Chambre 3 Non Non
Grenier Oui Oui
Grenier (très éloigné) Non Non

A ma grande surprise, le Sniffer reçoit aussi bien (pour ne pas dire mieux) les commandes du bouton connecté Mi Switch que la gateway officielle. C’est dommage qu’il n’existe pas de connecteur pour une antenne externe pour améliorer encore un peu plus la portée de réception. Mais vu le prix d’un Sniffer, ne vous privez pas de multiplier les ponts 🙂

Pour le moment les gammes Aqara et Mijia ne sont pas encore commercialisées dans la boutique officielle de Xiaomi France qui s’est ouverte le 25 mai dernier. En attendant, vous pourrez vous procurer vos accessoires directement en chine ou sur Amazon.

Page GitHub du projet : zigbee2mqtt 

Plugins officiels Domoticz et Home Assistant

Deux plugins ont été développés pour faciliter l’intégration sur Domoticz et Home Assistant. J’ai juste testé le plugin sous Domoticz. Suivez ce tutoriel qui explique en détail comment installer des plugins python sur Domoticz.

Une fois installé, vous disposez d’un nouveau type de matériel qui dispose d’un panneau de configuration. Il permet d’indiquer l’adresse IP du broker MQTT sur lequel récupérer les accessoires et d’activer / désactiver l’autorisation de jumelage.

zigbee2mqtt connector settings domoticz plugin

Une fois configuré, tous vos accessoires déjà jumelés apparaissent automatiquement dans la liste des appareils. Il ne reste plus qu’à les ajouter comme n’importe quel autre accessoire domotique.

domoticz zigbee2mqtt devices appareils domotiques xiaomi mijia aqara

 

Comme vous pouvez le constater, le friendly name est correctement utilisé pour nommer les accessoires

Comment ajouter de nouveaux accessoires à Domoticz ?

Commencez par jumelé les nouveaux accessoires comme d’habitude.

Normalement, les nouveaux devices devraient être ajoutés automatiquement à la liste des accessoires disponibles mais si ce n’est pas le cas, ouvrez le plugin Zigbee2MQTT dans les appareils puis cliquez sur update (mettre à jour). Retournez voir la liste des accessoires, vous devriez y trouver les nouveaux appareils.

 

Mises à jour :

  • [11/09/2018] comment démarrer le pont comme un service avec systemctl
  • [7/02/2019] installer le plugin Zigbee2MQTT pour Domoticz
  • [20/05/2019] Mise à jour vers le nouveau lien de téléchargement du firmware sur GitHub

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous désinscrire à tout moment.

Promos à ne pas louper

17
Poster un Commentaire

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

  S’abonner  
Notifier de
lionel martin

L’installation des dépendances n’a pas l’air de fonctionner avec node v12.4.0 et npm v6.9.0

NiS

Pourrait-on avroir l’URL exacte du sensor Xiaomi utilisé?

Nicolas Silberzahn
Nicolas Silberzahn

“Le firmware Zigbee2MQTT est disponible sur GitHub sur cette page”: l’URL ne marche plus.

JM

Bonjour

Je ne vois pas comment faire des répéteurs avec un cc2531. Pour moi sur le wiki, pour faire des repeteurs c’est le cc2530 qui est utilisé. Je me trompe?

En tout cas je suis preneur si vous avez le bon firmware.

Merci
JM

Didier

Salut, Merci beaucoup pour ton tuto. Je tente toujours de le mettre en place. J’ai enfin reçu tous les composants mais pas de chance mon CC debugger ne fonctionne pas.J’ai pas mal cherché mais mon windows 10 ou mon linux ne reconnait même pas le hardware. Je n’arrive donc même pas à l’étape mise à jour du driver. J’ai changé le cable USB et de ports USB. J’ai ouvert la boite et je me rends compte que ce n’est pas exactement la même carte que décrit dans la doc de TI. Pourtant quand je le branche au sniffer j’ai bien… Lire la suite »

Adomi

Bonjour,
Merci pour ce tutoriel !

Pouvons nous récupérer et contrôler nos capteurs via Domoticz ? Le plugin HomeKit sur NODE-RED est obligatoire ou nous pouvons utiliser HomeBridge ?

Merci d’avance, A.

Bonjour Adomi. Je viens de publier la seconde partie qui explique comment inclure les accessoires Xiaomi Aqara ou Mijia à Domoticz. Pour le moment le projet Zigbee2mqtt renvoie les mesures et les états des accessoires Xiaomi vers un serveur MQTT. Il publie les messages de façon générique sous la forme d’un objet JSON clé:valeur. Il n’y a que pour Home Assistant que le travail a été fait jusqu’au bout (c’est un serveur domotique très apprécié des développeur mais un peu plus difficile à prendre en main quand on débute en programmation). Il faut donc “re-fabriquer” un message compréhensible par Domoticz… Lire la suite »

(。◕‿‿◕。)

A noter que la procédure de flash peut se faire aisément sous Linux via cc-tools (plus simple que tout le tralala windows), mais aussi que la page du projet ZigBee2MQTT mets a disposition un firmware pour routeur (ce qui, en jargon Zigbee est ce qu’on appelle un répéteur).
On peut donc flasher plein de petits CC2531 qui seront autonomes, juste branchés a des petites alimentations USB de GSM par exemple.

Vincent Giorgi

Salut !

Le lien vers le firmware Zigbee2MQTT n’est plus valable. Je pense que Koen a modifié la structure du git …

Cordialement

Bonjour Vincent et merci beaucoup pour l’info. Effectivement, il y a beaucoup plus de modules Zigbee supportés maintenant. J’ai mis le liens vers la carte low cost que j’ai utilisé pour tester. Je mettrai à jour l’article après les vacances. A très bientôt.

crunch attak

Bonjour,
Petite question , est ce que c’est aussi compatible avec les ampoules Yeelight ? carJ’ai mon panier prêt à être payer pour essayer….
Merci d’avance, C.

Bonjour Crunch. Non désolé, les ampoules Yeelight utilisent une connexion WiFi à la place du Ziigbee. J’imagine que la contrainte de consommation d’énergie est moins importante pour une ampoule alimentée en 220V. De plus un module WiFi coûte moins chère à fabriquer qu’un module Zigbee.

Domotique et objets connectés à faire soi-même