À l’ère du numérique, de l’automatisation et de la volonté effrénée de faire disparaître toute forme de câble, de fil et de tout ce qui traîne par terre et qui peut faire trébucher, un groupe d’industriels s’est réuni pour former la « ZigBee Alliance« .
Sous ce libellé « Star-warien » se cache en fait le désir de faire émerger une sorte de langue universelle pour faire dialoguer tous les objets qui nous entourent : le ZigBee. Un objet ça peut être une lampe de chevet comme un volet roulant ou une cafetière. Le ZigBee se veut simple, sans-fil, peu cher à mettre en œuvre et surtout économe en énergie.
Les objets doués de cette langue deviennent alors communicants et c’est la magie ! La chaudière qui s’arrête quand il fait assez chaud ou qu’il n’y a plus personne dans la maison, le réverbère qui s’allume la nuit quand le portail s’ouvre et qu’un véhicule rentre, enfin bon, c’est comme dans Harry Potter, sauf que là, c’est pour de vrai et sans incantation aucune.
Naturellement la magie n’existe pas, enfin pas officiellement en tout cas, aussi tout cela a une explication.
Le ZigBee comment ça se parle ?Les ordinateurs, et tous les objets électroniques, ne savent pas parler. Dommage. Mais ils font très bien ce qu’on leur dit de faire. Lorsqu’on leur dit de faire quelque chose, on ne leur parle pas, non, ils ne comprennent pas plus l’humain qu’ils ne le parlent, on les programme. Parfois ils ne font pas bien ce que l’on voudrait qu’ils fassent, et dans ce cas on parle de « bogue », mais c’est une autre histoire.
Bref, pour faire causer deux objets électroniques entre eux, on crée ce que l’on appelle un protocole. Un protocole entre deux machines, c’est un peu comme le protocole qu’il faut respecter quand la comtesse du coin vient manger à la maison : « mes hommages Madame », genou flexion, baisemain sans toucher la main, et tout le toutim. Un protocole entre deux machines, c’est un ensemble de règles (normalement) très strictes régissant la communication entre ces deux machines.
ZigBee est un protocole informatique.
Accessoirement, ZigBee a été conçu pour être utilisé sans fil. C’est pour l’effet magique.
Il s’appuie lui même sur un autre protocole nommé 802.15.4 sur lequel on ne s’étendra pas ici. Il suffit juste de savoir que c’est le 802.15.4 qui fournit au ZigBee le matériel pour appréhender l’air, le monde du « sans-fil » en quelque sorte.
Souvent lorsque l’on parle de protocole, on parle également de réseau. En effet, si un objet peut communiquer avec un autre, il peut également le faire avec plusieurs. Et quand plusieurs objets communiquent ensemble avec le même protocole, alors on parle de réseau. Pour ce qui nous concerne on parlera de réseau ZigBee.
Un réseau ZigBee, comment ça marche ?
C’est très simple. Il peut y avoir trois types d’objets dans un réseau ZigBee :
- un objet « end-device » : c’est un objet simple du réseau qui a sa propre fonctionnalité. Allumage d’une lampe, détection de mouvement, que sais-je… Il peut y avoir plusieurs dizaines d’objets de ce genre dans le réseau ;
- un routeur : c’est un objet un peu plus futé qu’un simple objet, puisqu’il est capable, en plus de gérer sa propre fonctionnalité, de transmettre un message reçu à un autre objet, si ce dernier est, par exemple, trop loin pour être directement contacté par l’émetteur du message. Tout comme les objets de type « end-device », il peut y avoir plusieurs routeurs dans le réseau, mais la présence d’un routeur n’est pas forcément nécessaire au fonctionnement du réseau ;
- un coordinateur : c’est le chef d’orchestre du réseau sans qui rien ne serait possible sur le réseau. Comme dans un orchestre il ne peut y en avoir qu’un. Il est au courant de tous les objets qui composent le réseau. Il est lui aussi un objet du réseau et a d’ailleurs la fonctionnalité de routage.

Lorsqu’un objet est mis sous tension, il recherche un coordinateur avec lequel il va s’appairer. Cette phase d’appairage peut-être assez complexe, aussi nous ne l’aborderons pas ici. Ceci fait, il fera partie intégrante du réseau et pourra alors transmettre ses informations comme recevoir des ordres.
Un réseau ZigBee peut être maillé (mesh network) et/ou en étoile. Dans un réseau maillé, tous les composants peuvent parler directement entre eux (c’est ici le cas pour les routeurs, dont fait partie le coordinateur), pour peu qu’il n’y ait pas un éloignement trop grand ou des obstacles diminuant la portée. Dans un réseau en étoile, les composants doivent passer par un élément central, c’est le cas pour les end-devices vis-à-vis des routeurs ou du coordinateur.
Mais le ZigBee, c’est fait comment ?
En huit mots : le ZigBee c’est quand même bien fait.
L’Alliance ZigBee a défini plusieurs types de comportement afin de classer les objets. Ces types sont appelés profils. À ce jour, cinq profils ont été définis par l’Alliance (ça fait vraiment guerre des étoiles) :
- Le profil ZigBee Smart Energy décrit les fonctionnalités des objets intégrant la gestion de l’énergie (thermostat d’ambiance, relève de compteurs, consommation instantanée, …) ;
- Le profil ZigBee and RF4CE décrit les fonctionnalités des télécommandes pour les appareils électroniques ;
- Le profil ZigBee Health Care décrit les fonctionnalités des objets touchant à la santé (cardiofréquencemètre, balance, pression sanguine, …) ;
- Le profil ZigBee Building Automation décrit les fonctionnalités des objets entrant dans le contrôle des immeubles (détection d’événements et gestion de l’allumage/extinction des lumières, chauffage, climatisation) ;
- Le profil ZigBee Home Automation décrit les fonctionnalités des objets entrant dans le contrôle de la maison. Un peu comme pour les immeubles, mais à l’échelle en dessous, avec un zeste de simplicité…
Chaque profil liste précisément les types d’objets qu’il pourra couvrir et décrit tout aussi rigoureusement les fonctionnalités obligatoires et optionnelles pour chacun de ces types.
Les objets, les profils, comment ça s’emboîte ?
Un objet c’est une sorte de commode, dans laquelle il peut y avoir plusieurs dizaines de tiroirs numérotés (que ZigBee appelle Subunits). Dans chaque tiroir se trouvent un ou plusieurs coffrets, eux aussi, numérotés (que ZigBee appelle Clusters). Enfin, dans chaque coffret, se trouvent des petites cases numérotées, décidément, (que ZigBee appelle Attributs). Chacune de ces cases contient une simple valeur : un nombre ou un texte, une température ou un degré d’humidité par exemple.
De son côté, un profil va définir, d’abord de manière générale, puis pour chaque type d’objet référencé, la liste des clusters qu’un objet peut ou doit, selon les cas, mettre en œuvre. Il définit également ce qu’on est en droit d’attendre d’un objet, ses fonctionnalités et interactions avec l’environnement.
La conformité d’un objet avec un profil n’est absolument pas nécessaire à son fonctionnement, il s’agit juste d’un gage d’interropérabilité avec des objets ou applications tiers.
Pour la petite histoire, les numéros de cases (attributs) présentes dans un coffret (cluster) sont référencés dans la ZigBee Cluster Library (ZCL), une sorte de grimoire qu’il convient d’avoir sur sa table de chevet pour faire son intéressant juste avant d’aller se coucher.
C’est fini ?
Oui, nous venons de faire un rapide tour d’horizon de ZigBee sans trop rentrer dans les arcanes du protocole lui-même. Le but était de rendre accessible et compréhensible la chose au plus grand nombre, sans pour autant nécessiter de sortir l’encyclopédie universelle et le décodeur qui va avec. Peut-être est-il atteint ?

20 décembre 2009
Est-ce que quelqu’un à fait des calculs de combien d’énergie une maison, par exemple, aller consumer en plus en fournissant de quoi alimenter la conversation entre tous ces appareils communicants ? Le ZigBee fonctionne sur une fréquence de 2,4GHz ? Si tel est le cas les deux inconvénients sont la portée (moins de 30 m en champ libre) et la consommation énergétique. Non ?