La Zigate est une petite passerelle qui permet de rendre compatible un grosse liste de produits Zigbee avec différentes supports.
Elle peut être utiliser de différentes façons, sur votre ordinateur ou sur une boxe domotique par l’intermédiaire du module USB (49€), sur une RPI grâce au module PiZigate (29€) ou encore de manière autonome via le module Wifi (69€).
Tous ces modules permettent de répondre à la majorité des cas de figure actuelles!
Dans cet article, je vais me concentrer sur le module « PiZigate » testé avec une Raspberry Zero WH (21€). L’objectif est de réaliser une passerelle capable de communiquer en Zigbee avec un grand nombre de produits que vous pouvez découvrir ci-dessous.
Création de l’image
Pour débuter, je me suis créé une nouvelle image toute fraîche de Raspbian sur laquelle j’ai activé le Wifi et le SSH.
Après avoir créer ma carte SD avec Etcher, il est nécessaire d’ajouter 2 fichiers dans le répertoire « boot« . Le premier « ssh » va permettre de se connecter via Putty et le second « wpa_supplicant.conf » va activer la connection Wifi :
Le fichier « wpa_supplicant.conf » doit contenir les infos suivantes :
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev ap_scan=1 update_config=1 network={ ssid="SSIDDeVotreWifi" psk="MotDePasseDeVotreWifi" key_mgmt=WPA-PSK }
Si tout se passe correctement lors du prochain démarrage, votre Raspberry se connectera automatiquement à votre réseau Wifi et sera également accessible en SSH via un utilitaire tel que Putty (Windows) ou Terminal (Mac, Ubuntu)
Installation de la PiZigate
Voici notre PiZigate :
Comme la majorité des modules Raspberry, il suffit de le brancher sur les pins GPIO et faire en sorte que rien ne dépasse de la Raspberry, rien de compliqué en soi 😉
Le module respecte la taille de la Raspberry Zero ce qui rend le tout très propre:
Et ensuite ?
Le branchement seul ne suffit pas, il est nécessaire de configurer la RPI pour qu’elle reconnaisse parfaitement la PiZigate.
Si votre PiZigate n’est pas correctement configuré, la LED bleue aura une luminosité assez faible (en bas à droite de la Zigate) :
Pour la configurer, il n’y a qu’à suivre la documentation mais je vous récapitule tout ça :
Tout d’abord connectez-vous via Putty/Terminal et exécutez les commandes suivantes (les lignes commencant par # sont des commentaires) :
sudo nano /boot/config.txt #Rajouter en fin de fichier les lignes suivantes (désactivation du bluetooth): dtoverlay=pi3-disable-bt enable_uart=1 #Sauver avec CTRL+X puis Y (yes) sudo nano /boot/cmdline.txt #Effacez l’inscription suivante : console=serial0,115200 #Sauver avec CTRL+X puis Y (yes) sudo systemctl disable hciuart sudo usermod -aG gpio pi sudo apt-get install wiringpi sudo nano /etc/rc.local #Rajouter juste avant « exit 0 », les lignes suivantes. Elles permettent de passer la PiZigate en mode "Production" gpio mode 0 out gpio mode 2 out gpio write 2 1 gpio write 0 0 gpio write 0 1 #Sauver avec CTRL+X puis Y (yes) sudo reboot
Lorsque votre PiZigate est correctement configurée, la luminosité de la LED bleue s’intensifie :
Comment utiliser la PiZigate
Le Wiki officiel n’indique pas grand chose à ce niveau mais vous avez 2 possibilités.
La première est d’utiliser la PiZigate avec une solution « clé en main » tels que Eedomus, Domoticz ou Jeedom. La seconde consiste à écrire sois même le code.
Pour notre article, j’ai décidé d’opter pour la deuxième solution.
Pour accélérer le développement, je suis allé sur Github…Ma recherche ne m’a pas donné énormément de résultats mais il y a malgré tout un projet très intéressant « node-zigate« .
Je décide donc d’écrire une interface web en NodeJS qui va utiliser cette librairie. Le but n’est pas de fournir une solution complète mais de voir ce qu’il est possible de faire avec cette PiZigate tout en conservant le contrôle de ce qu’il se passe. Au final, il ne m’aura donc fallu que quelques heures pour obtenir un résultat!
Si vous souhaitez tester votre PiZigate, le code est dispo sur Github « domotique-info » et s’installe en ligne de commandes :
#Installation de node #Vérifier la version a installer avec la commande "uname -m" et remplacer le lien par le bon URL que vous retrouvez sur la page NodeJS wget https://nodejs.org/dist/v10.16.3/node-v10.16.3-linux-armv6l.tar.xz #Extraire le contenu tar -xf node-v10.16.3-linux-armv6l.tar.xz #Entrer dans le répertoire cd node-v10.16.3-linux-armv6l/ #Copier le contenu et revenir en arrière sudo cp -R * /usr/local/ #Rédémarrer la RPI (nécesaire suite à l'installation de node) sudo reboot #Installation de git sudo apt-get install git #Récupérer les sources git clone https://github.com/domotiqueinfo/zigate.git #Après redémarrage, se reconnecter en ssh cd zigate npm i
Ensuite, on lance la solution grâce à :
node /home/pi/zigate
Via votre navigateur préféré, rendez-vous sur l’adresse ip de votre raspberry sur le port 3000 : http://192.168.X.Y:3000 ou encore http://raspberrypi:3000
Par défaut, le compte pour se logué est « test/test ».
Une fois logué, votre dashboard sera vide, ce qui est normal :
Vous avez ensuite la possibilité d’ajouter des périphériques via le menu « Actions » et la fonctionnalité « Démarrer inclusion » :
Le mode inclusion dure 30sec, pendant ce laps de temps vous aurez la possibilité d’ajouter des périphériques mais pas d’interagir avec.
Pour ma part, j’ai su appairer ma petite ampoule Osram ainsi qu’une ampoule IKEA Tradfri.
Si tout se passe bien, vous verrez dans le log des lignes défilées ce qui signifie que votre ampoule a su être appairée.
Si ce n’est pas le cas, pensez à effectuer un reset de votre périphérique Zigbee et tentez à nouveau !
A présent, vous pouvez rafraîchir l’interface via le menu « Actions > Rafraîchir ».Vous verrez alors apparaître votre ampoule que vous pourrez commander :
Cette solution ne supporte que les ampoules mais avec un peu plus de travail, il est tout à fait possible d’envisager une passerelle complète en Zigbee!
Si vous êtes intéressé par l’ajout de certaines fonctionnalités, faites le moi savoir! Je regarderais pour les ajouter!
Conclusion
La mise en place du PiZigate est simple mais nécessite quelques notions Linux. La documentation explique le tout pas à pas. Elle est complète mais manque peut être ci et là de quelques précisions(ex : Sauver un fichier en ligne de commande).
Pour l’utilisation à proprement parler du PiZigate, le module rempli parfaitement son rôle. Pour ceux qui souhaitent avoir la main, il ne faudra pas avoir peur de plonger dans la documentation pour comprendre ce qu’il s’y passe.
Pour les autres, les solutions « clés en main » (eedomus / jeedom / domoticz) proposent des plugins , ce qui rend l’utilisation de ce module encore plus simple.
Au final, le projet est prometteur et offre de bonnes perspectives quant à l’utilisation du Zigbee. Reste à la communauté de grandir afin de proposer de nouvelles choses pour les utilisateurs…