Sommaire
Fiche technique
La PiZigate disponible directement sur le site officiel et compatible Jeedom permet de communiquer avec vos appareils utilisant le protocole ZigBee, au même titre que la Zigate, à la différence que ce module s’utilise grâce aux ports GPIO du Raspberry (contrairement à l’USB pour la Zigate). Par ailleurs, ce produit coûte aujourd’hui 29€ contre 49€ pour sa grande sœur, la Zigate. Vous pourrez ainsi vous séparer, par exemple, de la Gateway de Xiaomi de sorte à ne plus dépendre du Wifi de votre intérieur. Petit confort proposé par le constructeur : la PiZigate est mise à jour quand vous l’achetez. Vous n’aurez donc pas à le faire vous-même dès réception.
Voici les caractéristiques du produit :
- Protocole de communication : ZigBee 2.4Ghz.
- Température de fonctionnement : 0°C – 60°C.
- Alimentation : Raspberry ou équivalent (3.3 VDC).
- Poids : 20g.
- Dimensions : 30×30×15mm.
Compatibilité matérielle :
- 1A, 1A+, 1B, 1B+, 2B, Zéro (sans modification).
- 3B, 3B+, Zéro W (modifications à apporter).
Je remercie ZiGate qui a accepté de me fournir un exemplaire de ce produit en échange de la rédaction de cet article sans aucune autre condition imposée.
Préparation pour Raspberry PI 3B, 3B+ ou Zéro W
Avant de débuter l’installation de la PiZigate pour contrôler vos équipements ZigBee avec Jeedom, il est important de savoir si votre Raspberry PI est nativement compatible ou non avec le module.
Si vous utilisez un Raspberry 1A, 1A+, 1B, 1B+, 2B ou Zéro, vous n’aurez aucune modification à apporter.
Si vous utilisez un Raspberry PI 3B, 3B+ ou Zéro W (avec bluetooth natif) :
- Dans un premier temps désactiver le bluetooth en suivant ce tuto.
- Dans un second temps, toujours en SSH, éditez le fichier cmdline.txt :
sudo nano /boot/cmdline.txt
Supprimez ensuite la liste suivante :
console=serial0,115200
Sauvegardez le fichier et exécutez les commandes suivantes :
sudo systemctl disable hciuart sudo usermod -aG gpio pi
Redémarrez ensuite votre Raspberry PI pour que les changements soient pris en compte.
sudo reboot
Configuration
Il vous faut dans un premier temps procéder à l’installation de la PiZigate sur le Raspberry. Celle-ci s’installe facilement en prenant soin d’avoir la partie antenne à l’intérieur de la carte. Bien que cela augmente la dimension du Raspberry, le constructeur indique que la carte à bien été étudiée de sorte à rentrer dans les boitiers standards des Pi A, B ou Zéro. Me concernant , aucun problème pour insérer ensuite mon Raspberry PI 3B+ dans le boitier de mon PiDrive.
Voici aussi un schéma des connecteurs de la PiZigate.
Si vous souhaitez obtenir davantage de précisions sur l’utilité des PIN, vous pouvez consulter directement la documentation officielle.
Connectez-vous ensuite en SSH à votre Raspberry PI et vérifiez si les outils pour piloter les GPIOs sont installés.
gpio -v
Si vous obtenez un message d’erreur indiquant que la commande gpio est inconnue, installez les paquets associés (je vous suggère, avant l’upgrade, de faire une sauvegarde externe de Jeedom).
sudo apt-get update sudo apt-get upgrade sudo apt-get install wiringpi
Une fois les paquets installés, vous pouvez revérifier si les outils poir piloter les GPIOs sont fonctionnels.
gpio -v
Exécutez ensuite la commande permettant d’obtenir des informations sur l’état des PIN.
gpio readall
Vous devriez obtenir le résultat suivant :
Les 2 lignes encadrées en rouge correspondent aux 2 Pins qui doivent être pilotés pour gérer les fonctions « Flash » et « Reset« . Nous allons ensuite modifier la valeur présente dans les colonnes « Mode » et « V » pour que la configuration des Pins soit correcte.
Pour ce faire, exécutez les commandes suivantes successivement. Vérifiez alors la différence de luminosité pour la Led bleu qui doit éclairer davantage après les avoir exécuter.
gpio mode 0 out
gpio mode 2 out
gpio write 2 1
gpio write 0 0
gpio write 0 1
Si vous observez bien cette différence, vous pouvez appliquer ces mêmes modifications mais au démarrage du Raspberry cette fois. Pour ce faire, exécutez d’abord la commande suivante.
sudo nano /etc/rc.local
Ajoutez ensuite les lignes suivantes juste avant le « exit 0 »
gpio mode 0 out gpio mode 2 out gpio write 2 1 gpio write 0 0 gpio write 0 1
Sauvegardez puis redémarrez votre Raspberry.
reboot
Au démarrage, la Led bleu s’éclairera d’abord faiblement pendant quelque secondes avant de gagner en luminosité, comme précédemment.
Test de la PiZigate
Cette étape n’est pas obligatoire pour l’utilisation de la PiZigate mais est vivement conseillée puisqu’elle va vous permettre de vérifier que tout est ok mais aussi de comprendre quelle port utiliser dans votre plugin entre /dev/ttyAMA0 et /dev/ttyS0 avec Jeedom pour piloter vos équipements ZigBee.
En effet, par défaut :
- Si vous utilisez un Raspberry 1A, 1A+, 1B, 1B+, 2B ou Zéro, le port /dev/ttyAMA0 est le port principal qui devra être choisi dans votre plugin.
- Si vous utilisez un Raspberry PI 3B, 3B+ ou Zéro W, deux cas sont possibles :
- Soit /dev/ttyAMA0 est attribué au Bluetooth : il vous faudra donc utiliser /dev/ttyS0.
- Soit le Bluetooth est désactivé : la PiZigate sera dans ce cas attribuée au port /dev/ttyAMA0.
Si vous souhaitez approfondir le sujet, vous trouverez des détails sur la documentation officielle du Raspberry PI.
Le test se fait donc en SSH sur votre PI. Commencez par récupérer un clone du projet Github :
git clone https://github.com/fairecasoimeme/ZiGate
Une fois téléchargé, naviguez jusqu’au dossier vous permettant de faire les tests :
cd ZiGate/Tools/PiZiGate/Test/Bin/
Donnez les droits d’exécution sur le dossier de test :
chmod +x PiZiGate_test
Le test peut alors être effectué :
./PiZiGate_test /dev/ttyAMA0
Si vous souhaitez tester le port /dev/ttyS0, vous pouvez adapter la commande :
./PiZiGate_test /dev/ttyS0
Si tout se passe bien, vous devriez obtenir ceci :
Vous pouvez donc passer à l’intégration de la PiZigate dans Jeedom pour y piloter vos équipements ZigBee.
Intégration dans Jeedom
Installez dans un premier temps le plugin Abeille (gratuit).
A savoir qu’il existe aussi le plugin Zigate mais que je trouve moins complet et pas aussi plug & play que le plugin Abeille, d’où mon choix.
Accédez ensuite à la configuration du plugin lorsque Jeedom vous le propose.
Puis activez-le.
Choisissez ensuite le port à utiliser : il s’agit de celui que vous avez récupéré précédemment via les tests effectués.
Redémarrer ensuite le daemon du plugin.
S’il le daemon est KO (ce qui peut être le cas si le port par défaut n’était pas bon), démarrez-le de la même manière.
Dès la détection de votre PiZigate par Jeedom, le plugin Abeille va créer une ruche : c’est l’élément central de votre réseau Zigbee.
Inclusion des équipements
Accédez ensuite à la liste des équipements du plugin pour inclure votre premier équipement.
Cliquez ensuite sur le bouton « Inclusion » et suivez les instructions donnés par le constructeur de l’équipement à inclure pour réaliser l’inclusion. Généralement, il faut maintenir enfoncé un bouton pendant quelque secondes.
Pour ma part il s’agit de l’interrupteur rond de Xiaomi.
Un message apparaîtra alors en haut à droite pour vous informer de la création de l’équipement. En rechargeant la page vous trouverez votre nouvel équipement à coté de la ruche.
Sélectionnez-le, vous y trouverez un paramètre Time Out. Ce denier vous permet d’être averti lorsqu’un équipement ne communique pas pendant une certaine durée (60 minutes par défaut). Certains équipements, tels que le bouton Xiaomi, communiquent uniquement lorsque vous effectuez une action particulière (comme un clic sur le bouton). Il vous faudra alors vider ce champ pour éviter d’être alerté inutilement.
Accédez ensuite à l’onglet « Commandes« , comme pour un équipement classique.
Selon l’équipement inclus, le plugin récupère plus ou moins bien les commandes natives de l’équipement. Les plugins sont peut-être encore un peu jeunes, mais vous devriez vous en sortir, les commandes restant binaires ou numériques.
A titre d’exemple, là où le bouton avait nativement une commande pourtant porter les valeurs « click« , « double_click » ou « long_click« , on retrouve à la place deux commandes :
- Etat : la valeur par défaut est 1 (bouton relâché) alors que la valeur passe à 0 en appuyant dessus. L’inversion des valeurs pour cette commande ne semble pas pris en compte (case à cocher). Si vous effectuez un double clic, la valeur restera à 1 (comme lorsque vous n’appuyez pas dessus).
- Multi : la valeur par défaut est 0 et passe à 2 lors d’un double clic. La valeur restera à 0 si vous ne réalisez qu’un seul clic.
Pour aller plus loin
Vérifier le firmware de votre PiZigate
Le plugin Abeille vous permet aussi d’obtenir des informations sur votre PiZigate. Pour ce faire, accédez à la liste des équipements du plugin puis descendez jusqu’à cette fenêtre où vous trouverez notamment la version du firmware utilisé.
Mise à jour du firmware
Le constructeur précise que toutes les PiZigate sont livrées avec le dernier firmware en date. Aussi, cette partie ne devrait pas vous intéresser dès l’installation du module, mais plus tardivement.
Pour réaliser cette action, exécutez les commandes suivantes successivement pour passer le module en mode Flash :
gpio mode 0 out
gpio mode 2 out
gpio write 2 0
gpio write 0 0
gpio write 0 1
Ensuite, vous devrez utilisez le programme suivant :
https://github.com/Jerome-PS/JennicModuleProgrammer
Pour procéder à son installation, connectez-vous en SSH puis exécutez les commandes suivantes successivement :
sudo apt-get install git sudo git clone https://github.com/Jerome-PS/JennicModuleProgrammer.git cd JennicModuleProgrammer/ cd Build/ make
Téléchargez ensuite le firmware souhaité depuis le Github officiel.
Pour la version 3.1a par exemple, récupérez le lien via un clic droit sur le lien du fichier .bin situé en bas puis copiez le lien. En SSH, exécutez ensuite la commande « wget » accompagné du lien à télécharger.
wget https://github.com/fairecasoimeme/ZiGate/releases/download/v3.1a/ZiGate_Coordinator_v3.1a.bin
Désactivez ensuite temporairement le daemon Abeille puis exécutez la commande suivante en SSH :
./JennicModuleProgrammer -V 6 -P 115200 -f "<chemin vers le bin>" -s /dev/ttyAMA0
si /dev/ttyAMA0 est le port utilisé (sinon remplacez-le par le vôtre). Patientez ensuite jusqu’à ce que la mise à jour soit terminée puis réactivez le daemon.
Migrer vers les nouvelles commandes
Si vous utilisiez vos équipements ZigBee dans Jeedom avant l’utilisation de cette PiZigate, vous avez probablement des commandes présentes dans des scénarios et que vous utilisez au quotidien. Il est donc préférable de n’en oublier aucune au moment de migrer vers vos nouvelles commandes. Voici comment vous pouvez procéder.
Récupérer l’historique des valeurs
Une fois la migration de vos commandes terminées, vous n’aurez par défaut plus aucun historique. Vous pouvez cependant copier l’historique de l’ancienne commande vers la nouvelle.
Pour ce faire, choisissez le plugin rattaché à votre ancien équipement.
Puis l’équipement concerné.
Accédez à l’onglet « Commandes« .
Accédez ensuite à la configuration de la commande pour laquelle récupérer l’historique
Puis à l’onglet « Configuration« .
Cliquez ensuite sur la fonctionnalité de copie d’historique et choisissez vers quelle commande vous souhaitez la faire.
Connaître le canal ZigBee utilisé
Avant toute chose, sachez que les canaux ZigBee ne sont pas identiques aux canaux Wifi. En réalité, le canal 11 en ZigBee correspondra plutôt au canal 1 du Wifi. Si vous souhaitez en savoir davantage à ce sujet, je vous suggère de consulter cette documentation.
Quant à la PiZigate, celle-ci choisit automatiquement le canal le moins encombré au démarrage. Celui-ci ne peut être modifié manuellement. Pour savoir quel canal est utilisé, retournez dans les listes des équipements du plugin Abeille.
Sélectionnez ensuite votre ruche.
Accédez ensuite à l’onglet « Commandes« .
Retrouvez ensuite la commande « Network Channel« .
Testez la commande pour obtenir le canal utilisé.
Compatibilité Raspberry PI 4 B
Ajoutez à la fin du fichier la ligne suivante :
enable_uart=1
puis sauvegardez le fichier édité.
Accédez ensuite au fichier /boot/cmdline.txt avec la commande suivante :
sudo nano /boot/cmdline.txt
Effacez ensuite la ligne suivante :
console=serial0,115200
Sauvegardez cette modification puis redémarrez votre Rasperry PI 4 B .
Si wiringpi n’est pas encore installé, vous pouvez tout d’abord tenter de l’installer de la façon suivante :
sudo apt-get update sudo apt-get upgrade sudo apt-get install wiringpi
Si le processus d’installation indique que wiringpi n’est pas disponible ou est introuvable, suivez le processus ci-dessous pour l’installer manuellement.
Exécutez les commandes suivantes pour l’installer manuellement.
cd /tmp wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb
Reprenez ensuite l’étape de configuration, après l’installation de wiringpi.
En conclusion
Je trouve cette PiZigate doublement intéressante : d’une part pour son prix très attractif, et d’autre part pour sa fiabilité. En effet, je n’ai constaté que très peu d’anomalies ou information qui n’aurait pas été remontée au controller (chose que j’avais plus régulièrement en passant par la Gateway). Je trouve donc cette solution idéale pour quiconque souhaite coupler des capteurs de portes/fenêtres Xiaomi et des sondes de température et humidité Xiaomi, pour un faible coût tout en ayant un résultat fiable et très satisfaisant. Par ailleurs, je la préfère à la ConBee II de part les nombreuses fonctionnalités proposées par le plugin Abeille et encore manquantes sur le plugin officiel Deconz. Si vous y voyez donc une utilité pour votre installation, vous pouvez la commander les yeux fermés.
Bonsoir, cette solution compatible avec les produits Xiaomi le sera-t-elle également avec les produits Zipato (Zipatile 1 et 2) qui utilise le protocle Zigbee mais dans un autre format ?
Bonjour,
Merci pour ce magnifique tutoriel.
Je viens d’acquérir une PIZIGate et un raspberry 3b+ et j’ai suivi à la lettre le tutoriel. J’ai lancé le test et apparemment tout vas bien. J’ai installé donc le plugin Abeille et je suis arrivé à l’étape de configuration: j’ai activé le plugin et puis sur la page de configuration je n’ai pas le champ Abeille serial port, j’ai relancé du coup jeedom et dans le log de démarrage j’ai une erreur comme quoi le port série choisi n’existe pas. Est-ce qu’il y une option pour afficher ou non le champ Abeille serial Port?
J’ai déjà installé et réinstallé 3 fois jeedom sur une carte vierge mais toujours la même erreur
Hello, merci pour ton retour !
Dans la configuration du plugin tu as un titre « Connection » en dessous duquel tu as « cache » et « affiche » : clic sur ce dernier bouton, tu auras alors accès a l’option que tu cherches.
Bravo pour ce tuto très clair notamment pour la mise a jour de la pIziGate.
Merci
Merci pour ton commentaire 🙂
Bonjour, je suis utilisateur « averti » de Jeedom depuis plus de 5ans maintenant et j’ai initié mon oncle curieux avec une petite config Rpi+Pizigate pour réutiliser ses accessoires Ikea. Je ne connaissais pas encore les passerelles zigbee en dehors de ma MiHome et mes recherches m’ont dirigé vers ton site. Félicitations pour l’excellent travail de vulgarisation et d’accompagnement présenté ici. Et merci ! Ça aide même un vieux jeedomien rouillé !
Merci pour ton commentaire 🙂
Bonjour
J’ai besoin d’aide svp, après avoir lancé la commande clone github, plus rien ne se passe te mon jeedom est HS…
Que faire pour résoudre ce problème svp ?
Merci
Au temps pour moi désolé, apres quelques plantages, la recuperation du clone github a abouti et jeedom s’est reveillé !
Bonjour,
Je rencontre le même problème que » hnahoulder « .
Impossible d’accéder à la configuration pour choisir le port.
Le plugin me signal que le « Le port série choisi n existe pas (zigate déconnectée ?) »
Je ne comprends pas, au test de la pizigate je n’ai pas de problèmes.
J’ai essayé avec le plugin Zigate et cela fonctionne car je peux choisir le port.
Je préfère le plugin abeille mais il est inutilisable pour moi pour le moment.
Sur ma page je n’ai pas d’onglets connexions ni configuration.
Comment puis-je faire ?
Bonjour,
j’ai exactement le même problème, installation impossible avec zigbee ?
Idem, je n’ai rien trouvé qui corrige
Hello, as-tu suivi les instructions citées au début de l’article ?
https://jeedomiser.fr/article/pilotez-vos-appareils-zigbee-avec-la-pizigate/#Preparation_pour_Raspberry_PI_3B_3B_ou_Zero_W
Bravo très bel article, clair, détaillé didactique. Je suis ravie de trouver une telle documentation car je suis amener à choisir ma plate-forme domotique.
Merci, n’hésitez pas à partager l’article 🙂
Merci pour ce super tuto. Mais pour moi ça coince 🙁
J’utilise une raspberry 3B+ avec la version « Buster »
J’ai bien désactivé le Bluetooth, la led bleue est bien plus lumineuse.
Le port /dev/ttyS0 est bien présent, /dev/ttyAMA0 a disparu après avoir désactivé le Bluetooth.
résultat de la commande : sudo ./PiZiGate_test /dev/ttyS0
Searching /dev/ttyS0…
+ Port : /dev/ttyS0 is not used
Verif GPIOs …
+ GPIO 0 (RESET) –> OK
+ GPIO 2 (FLASH) –> OK
Config GPIOs …
+ GPIO 0 (RESET) –> OK
+ GPIO 2 (FLASH) –> OK
Opening : /dev/ttyS0 …
+ /dev/ttyS0 opened –> OK
– Error from tcgetattr: Input/output error
– Error from write: -1, 5
– No packet received – size sent : -1 – error : 5
Je suis passé sur « stretch », le résultat de la commande ./PiZiGate_test /dev/ttyAMA0 est maintenant correct. Dés que le mauvais temps revient je recommence le test avec « Buster »
Encore merci pour ce tuto.
Bonjour, je vois qu’il faut désactiver le Bluetooth pour installer le Pizigate sur un RPi 3 ou 4. Pourquoi ? Peut-on le réactiver ensuite ? Si oui comment ? Sinon, en utilisant un dongle bluetooth à la place du bluetooth intégré au RPi ?
Bonjour,
Après installation, j’effectue le test et j’obtiens l’erreur suivante :
– No packet received – size sent : 11 – error : 11
Quelle erreur aurais-je faite?
D’avance merci pour votre réponse
Bonjour,
L’erreur semble se produire si :
– la PiZigate n’est pas bien branchée.
– la PiZiGate n’est pas correctement flashée.
Je te conseille de jeter un œil sur le forum :
https://zigate.fr/forum/topic/pizigate-no-packet-received/