Vue normale

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
À partir d’avant-hierFlux principal

L’importance du maillage (mesh) en ZigBee

Dans ce billet, comme le titre le stipule, je vais tenter grâce à mon expérience personnel de montrer l’importance du maillage en ZigBee.

En effet, j’ai déménagé il n’y a pas longtemps dans une nouvelle maison qui n’était, bien entendu, pas équipée de système de domotique. Parmi les besoins les plus urgents, il y a la centralisation des volets roulants.

Dans la maison précédente, qui était en construction, j’ai pu facilement câbler grâce à des modules Yokis. Rien ne vaut le filaire ! Cependant, quand c’est de la rénovation, on change forcément de stratégie.

Le ZigBee étant mon protocole radio préféré (on se demande pourquoi ;)), j’ai donc décidé, de domotiser les 10 volets roulants électriques de la maison.

Vote :

 

Le point fort du ZigBee

Sur ce blog nous avons déjà parlé énormément du protocole radio ZigBee avec ces astuces, ces avantages et certains inconvénients.

Cependant, même si nous avons eu l’occasion d’en parler, nous n’avons pas assez insisté sur une fonction (présente dans d’autres technologies radios) qui donne tout son sens au ZigBee mais surtout corrige en partie ses défauts.

Le maillage (mesh), dans sa généralité, permet tout d’abord de renforcer les liens radios entre le concentrateur (coordinator) et les appareils (capteurs, interrupteurs, lumières etc…). Ce système donne la possibilité à un appareil d’être accessible et/ou de pouvoir atteindre son but en utilisant le meilleur chemin.

Structure-of-typical-ZigBee-mesh-network

Comme on peut le voir sur la schématique, il existe plusieurs routes pour atteindre le coordinateur (coordinator) et de même dans l’autre sens.

Il faut aussi savoir que la création du maillage en ZigBee est automatique et que vous n’aurez absolument pas la maîtrise des différents liens. La création du maillage est aussi dynamique. En effet, le maillage change en fonction de plusieurs paramètres dont la qualité, et comme ce sont des choses qui évoluent, le maillage évolue… lentement … mais surement.

Ce que l’on peut aussi observer, c’est qu’il existe 2 autres types d’appareils (devices) en ZigBee, les routeurs et les « end devices ».

Dans le maillage ZigBee, seuls les routeurs sont en mesures de transférer l’information et donc d’être un maillon du réseau. En général, tous les appareils sur secteur sont en mesure d’avoir cette fonction. Il arrive parfois que ce ne soit pas le cas (assez rare). Par contre, aucun appareil sur pile n’est en mesure d’accroître le maillage (en tout cas, à ma connaissance).

Du coup, la première chose à penser lorsque l’on a décidé de se lancer dans le ZigBee, c’est de trouver les éléments indispensables au maillage. Ils devront être sur secteur (obligatoirement) et répartis sur l’ensemble de la maison pour bien couvrir et renforcer le réseau.

Le meilleur moyen de quadriller sa maison

Comme dit précédemment,  l’urgence pour moi était de domotiser les volets de la maison. En effet, il est évident que la centralisation de 10 volets me paraît nécessaire pour un fainéant comme moi ;). (La domotisation des volets apporte bien sûr d’autres atouts ).

Commencer par les volets est aussi une très bonne manière de créer un réseau ZigBee performant. En effet, une maison (SI elle dispose de volets roulant électriques) est logiquement entourée d’ouvrants et donc de volets. Ce qui permet de disposer d’un routeur ZigBee sur toute la périphérie de la maison.

Voici le schéma (grossier) de ma maison :

schema_domo_maison

En Orange : Les volets roulants
En Rouge : un routeur ZigBee
En bleu : Coordinateur ZigBee

En débutant donc avec ce principe, le réseau ZigBee sera déjà correctement maillé pour accueillir des capteurs dans la maison mais aussi dans le jardin.

Comme rien n’est parfait, il faudra peut-être prévoir d’autres routeurs ZigBee (type « répéteur Ikea ») pour renforcer le maillage ou couvrir des zones d’ombres.

A mon sens, la domotisation des volets roulant reste le meilleur moyen de créer « naturellement » un réseau ZigBee avec un maillage  efficace.

Concrètement

Maintenant que mes objectifs sont claires, il faut trouver les bons appareils pour domotiser le tout.

Mes volets roulant électriques sont filaires et pilotés avec un interrupteur Schneider.

interrupteur-volet-roulant_1

J’ai cherché le moyen le moins couteux et le moins intrusif pour que tout fonctionne même si la domotique tombe en panne.

Pour cela, 2 moyens possibles… soit changer tous les interrupteurs, soit rajouter un micro module.

Mon choix s’est finalement porté sur un micro module car je n’ai pas trouvé d’interrupteur assez joli (pour madame) ou trop cher (10x interrupteurs Legrand, c’est une somme ;))

J’ai donc choisi ce micromodule :


Sur Amazon pour les plus pressés

ou

Sur Aliexpress pour les avoir moins cher

Ce micro module s’interface très bien avec l’interrupteur et possède toutes les fonctionnalités nécessaires :

micro module volet zigbee

Fonctionnalités ZigBee :

  • Monter
  • Stop
  • Descendre
  • Position (en pourcentage)
  • Etat

L’appairage se fait en mettant votre coordinateur ZigBee préféré en mode « Appairage » et avec une aiguille de laisser appuyer 5 sec sur le bouton présent dans le petit trou en haut à droite du module.

Bon comme tout n’est jamais rose, ce micro module a des inconvénients.

Inconvénients

Le micromodule prend forcément de la place et si vous avez des boites d’encastrement au chausse pieds et un espace restreint, cela se révèle très compliqué d’insérer le module. Alors qu’avec un interrupteur ZigBee Legrand, vous n’avez pas ce souci.

L’autre particularité de ce micro module est qu’il faut le calibrer. En effet, par défaut, les commandes « monter » ou « descendre » sont actives 10 sec puis s’arrêtent. Donc si vous avez des petits volets, souvent cela suffit mais pour des volets de portes-fenêtres ou baies vitrées, ce n’est pas suffisant.

Calibrage du micro module

Voici un petit tutoriel pour calibrer ces micro modules. Pour cela, j’utilise une ZiGate (forcément) et l’outil de test ZWGUI (que vous pouvez retrouver sur le site ZiGate.fr)

En effet, avant d’intégrer tous les modules dans la domotique, j’ai préféré les calibrer un par un car le calibrage est une fonction spécifique et les box domotiques ne sont pas toutes en mesure d’organiser la calibration.

Pour ce faire, j’ai donc choisi un volet, démonté l’interrupteur et branché les modules (un par un).

J’ai branché une ZiGate puis lancé l’outil ZWGUI.

micromodule_volet_zigbee

Pour l’outil de test ZWGUI, il faut suivre le test classique présent sur zigate.fr  et aller jusqu’à la fin. Vous serez en position d’appairage « Permit Join »

Quand la ZiGate clignote, il suffit d’appuyer 5 sec (à l’aide d’une aiguille) sur le bouton dans le petit trou en haut du module. Le module va clignoter bleu puis s’éteindre. Côté ZWGUI, vous aurez les messages de « Device Announce » qui vont apparaître :

ZWGUI_appairage

Une fois le module appairé, on vérifie dans quel mode il est configuré. Pour cela, on va faire une commande « Read Attribute » (onglet Général)

ZWGUI_Read

La commande va interroger le cluster « Window covering » 0x0120 sur l’attribut 0xF000

ZWGUI_Read_response

Voici la réponse 0x8100 qui montre une valeur à 0x01 qui stipule que le module est en mode « production ».

Du coup, pour le passer en mode calibration, il faut écrire 0x00 dans cet attribut. Pour cela, il faut utiliser la commande « write attribute ».

ZWGUI_Write_0

Une fois effectuée, on peut s’apercevoir après une nouvelle lecture que le mode calibration est bien actif.

ZWGUI_Read_response_0

Maintenant, nous sommes prêt pour la calibration du module. Voici la marche à suivre:

Il faut tout d’abord fermer le volet. Pour cela, il faut utiliser la commande « Window Covering »et entrer la valeur 0x01

command_1

Quand le volet est totalement fermé, il faut relancer la commande avec la valeur 0x02

command_2

Ensuite ouvrir le volet complètement (valeur 0x00)

command_0

Et relancer la commande avec la valeur 0x02 (STOP) lorsque le volet est complètement ouvert.

command_2

Une fois que tout est ok, il suffit de remettre le module en mode production :

ZWGUI_Write_1

Et voilà, le module est calibré.

Même si cette calibration est un peu laborieuse (surtout parce que les box domotiques n’ont pas encore intégré cette fonctionnalité), elle apporte une certaine sécurité pour les moteurs de volets roulant mais aussi permet de pouvoir gérer la position du volet (pourcentage du temps d’ouverture ou fermeture) et ce dernier point est plutôt très utile.

Conclusion

Le maillage ZigBee, dans une maison, est vraiment primordiale et permet d’avoir une domotique le plus fiable/performante. Personnellement, je trouve que commencer par la domotisation des volets est une très bonne solution, un bon point de départ pour créer un réseau ZigBee.

Chaque maison et environnement est bien entendu différent et il peut y avoir d’autres alternatives. Cependant, je pense que l’infrastructure d’une maison est globalement la même et qu’énormément de maisons sont conçues comme la mienne, à savoir des volets roulant qui entourent la maison.

Voici un exemple de maillage de ma maison à un instant T

schema_domo_maison_maillage_3

Vous l’aurez compris, j’ai une nouvelle maison et du coup, il y aura d’autres articles sur les modifications et sa domotisation.

A bientôt !

Hack Ikea Frekvens panel – ESP8266

Ikea est une super enseigne, on y trouve de tout (bon ok, surtout en meuble) mais ils se diversifient de plus en plus. Notamment, vous avez pu voir qu’ils s’étaient lancés dans la domotique avec le gamme Tradfri. Dans l’ensemble, les produits qu’ils proposent sont d’un très bon rapport qualité/prix … c’est d’ailleurs leur plus gros atout… Il me semble.

Dans cet article, une fois n’est pas coutume, on va détourner l’un de leur produit pour l’adapter à nos besoins.

Comme d’habitude, le nom du produit est imprononçable et je m’y reprend à 3 fois pour bien l’écrire mais ça vaut quand même le coup de vous en parler.

Nous allons donc détourner le Frekvens panel d’Ikea afin de le piloter à travers un ESP8266.

PS : avant d’aller plus loin, je dois vous dire que ce détournement n’est pas de moi et je vous conseille d’aller visiter le github de son initiateur. D’ailleurs, je ferai référence à son travail dans la suite parce que rien ne vaut la source. 🙂

 

Achat

Pour se procurer ce magnifique objet, il suffit de se rendre sur le site marchand Ikea

ikea_frekvens_panel

Lien : https://www.ikea.com/fr/fr/p/frekvens-eclairage-a-led-multifonction-noir-30420354/
Prix : ~= 40€ (Peut être en solde parfois à (29€) )

Pour le NodeMCU, vous pouvez vous le procurer en mode pressé ici :

Prix : ~= 8€ en prime

Bon alors cet appareil est un afficheur LEDs (monochrome) qui permet « d’ambiancer » vos soirées. Il réagit selon la musique (ou le bruit) et fait clignoter ses LEDs selon le programme que vous aurez sélectionné.

Il est muni de 2 boutons. Un pour ON/OFF et l’autre pour choisir le programme lumineux.

Conceptuellement, il est très abouti et qualitatif. Même si pour nous, cela n’aura pas grand intérêt, il est prévu pour s’imbriquer avec les autres produits de la gamme. Comme avec des LEGO, vous pourrez monter votre propre architecture sonore et créer votre propre configuration pour animer vos soirées.

Démontage du Frekvens panel

Voici la partie la plus complexe. Démonter cet appareil s’est révélé être très complexe. En effet, hormis les quelques vis à enlever, il a fallu comprendre comment accéder à la carte électronique pour l’enlever. J’ai énormément galéré et j’ai finalement réussi … mais je vous renvoie vers cette vidéo Youtube qui m’aurait bien été utile …

Avec cette vidéo, vous comprendrez mieux comment il faut faire pour tout démonter.

Je n’ai donc pas grand chose à rajouter dans cette section… Ah si … bonne chance !!! 😉

Détournement matériel avec l’ESP8266

Préparation du panel

Une fois la carte électronique sortie de son boitier, voici ce que l’on a :

Board_frekvens_ikea

Alors, dans cette image, c’est l’arrière du panel (de l’autre côté, il y a les LEDs 16×16). Le PCB blanc est composé des 16 contrôleurs LEDs et le PCB vert, c’est le « cerveau ». Il comprend le microcontrôleur et la gestion des boutons et du microphone avec un ampli op très connu (LM358).

Notre objectif est donc de se substituer au PCB vert pour le remplacer par un ESP8266. Il faut donc dessouder.

La meilleure méthode (comme souvent) pour dessouder est d’utiliser un pistolet à air chaud.

Une fois effectué, vous devait obtenir ceci :

ikea_frekvens_nude

 

Adaptation matérielle avec un ESP8266

Une fois effectué, il nous reste à câbler le panel vers un ESP8266. Pour des raisons de commodité et rapidité, j’ai donc utilisé un NodeMCU.

Voici le schéma de câblage proposé par « @frumpurino » :

cablage_frekvens

L’autre avantage du NodeMCU, c’est qu’il est muni d’un régulateur de tension qui permettra de transformer le 3.9VDC (tension peu commune 😉 ) en 3.3VDC et du coup alimenté le micro et les LEDs.

cablage_frekvens_ikea

Pour récupérer les boutons, il faut récupérer les fils rouge / noir / blanc qui étaient soudés sur le PCB vert.

PCB_vert

Pour cet article, on oubliera la gestion du micro pour 2 raisons :

  • Je n’en ai pas besoin personnellement
  • Il faudrait utiliser un ampli op que le NodeMCU n’a pas.

Cependant, ce microphone pourrait être utile pour de la détection de présence ou encore déterminer un niveau de bruit. Ce genre de besoin est demandé parfois pour les résidences secondaires.

Schéma du nodeMCU

Voyons comment on peut tout relier.

NodeMCU_schema

 

Voilà ce que ça donne au final :

nodemcu_frekvens_ikea

Maintenant que tout est câblé, il ne reste plus qu’à coder.

Bon comme d’habitude, pour des raisons de rapidité et simplicité, utilisons l’IDE Arduino.

Un firmware qui va bien

En plus d’avoir trouvé un super détournement, l’auteur de ce hack a aussi développé une librairie Arduino. Basée sur la librairie GFX adafruit, cela va largement faciliter le développement d’un firmware pour contrôler le panel 16×16.

Les fonctionnalités actuelles

  • Paramétrage WiFi en mode STA ou AP
  • Mise à jour OTA
  • Afficher du texte défilant
  • Afficher un caractère fixe
  • Accès à une API WEB

Toutes ces fonctions ne seront peut-être pas disponibles (ou buggées) à la sortie de l’article, mais je mets tout le projet sur mon github afin que vous puissiez suivre l’évolution ou que vous puissiez contribuer.

Voici à quoi l’interface WEB ressemble (Jquery + Bootstrap stockés dans la flash)

config_wifi_frekvensConfig_apiweb

Il est aussi possible de changer la configuration du panel via une API :

http://<IP>/api?text=bonjour&size=&scroll=&light=&x=&y=

La page renverra OK en retour.

Vous pourrez alors l’intégrer facilement dans votre box domotique avec un plugin HTTP REST.

Et Voilà le résultat :

frekvens_ikea_hack

Conclusion

Alors ce hack n’est pas très évident pour tout le monde car il nécessite des compétences en soudure et démontage mais, je trouve qu’il en vaut vraiment la peine car l’objet en lui même est très beau et que les fonctionnalités rajoutées (mise en mode connecté) sont un vrai plus. Bref un bon DIY WAF …

Si ce hack intéresse énormément de personnes, je peux créer un PCB qui viendrait en lieu et place du PCB vert et qui permettrait (en plus d’être plus propre) d’ajouter un ampli op pour gérer le microphone et rajouter par exemple une photorésistance afin de gérer la luminosité automatiquement.

Bref, dites moi en commentaire s’il y a des intéressés et n’hésitez pas à contribuer !

A bientôt !

❌
❌