MYSENSORS : présentation
Cela fait un moment que je vous ponds des articles sur des dispositifs MySensors, mais je m'aperçois que je n'ai pas précisé de quoi il s'agissait. Comme si cela coulait de source.
Allons-y, cela ne peut pas faire de mal ...
1. Terminologie
Dans cet article j'emploie des termes dont voici la signification :- contrôleur, serveur : le serveur domotique
- objet connecté, dispositif : les différents capteur, actionneurs du système
- passerelle, gateway : le module chargé de communiquer avec les objets connectés
2. MySensors
La librairie MySensors permet de créer des objets connectés à partir de plateformes du type ARDUINO ou ESP8266 :- des capteurs
- température
- humidité
- lumière
- pression atmosphérique
- tension, courant, puissance consommée
- etc.
- des actionneurs
- relais
- lampe
- gradateur
- prise
- arrosage automatique
- etc.
2.1. Les modules radio
Ces objets peuvent communiquer avec un contrôleur (serveur domotique) à l'aide de modules de communications extrêmement répandus :- NRF24L01 - 2.4GHz
- RFM69 - 433Mhz, 868Mhz
- RFM95 - 868Mhz
2.1.1. Le NRF24L01
Le NRF24L01 est un module radio SPI communiquant sur la bande de fréquence 2.4GHz. Il existe en deux versions :
NRF24L01 à antenne imprimée |
NRF24L01 amplifié à antenne externe (connecteur SMA) |
Si l'on désire déporter l'antenne sur l'arrière d'un boîtier, on peut utiliser une petite rallonge avec un connecteur femelle à visser :
Le NRF24L01 est tolérant au 5V sur ses entrées logiques. Voir ici :
https://riton-duino.blogspot.com/2018/08/le-nrf24l01-avec-arduino-uno-nano-et.html
On pourra donc le relier à une carte ARDUINO NANO ou UNO directement, sans avoir à insérer de circuit adaptateur de niveaux logiques.
2.1.2. Le RFM69 ou RFM95
Le RFM69 est un module radio SPI communiquant sur les bandes de fréquences 433MHz ou 868MHz.
Le RFM95 communique sur les bandes de fréquences 868MHz ou 915MHz.
Sauf erreur de ma part il me semble qu'émettre sur la bande 915MHz est interdit en France.
L'antenne de ces modules pourra être réalisée à l'aide d'un simple morceau de fil droit ou en forme de ressort :
![]() |
Antenne 433MHz |
- 433MHz : 16.5cm
- 868MHz : 8.2cm
La solution la plus simple est bien entendu la PRO MINI 3.3V 8MHz. Elle nécessitera toutefois l'utilisation d'un convertisseur USB / série 3.3V :
- chargement du code
- liaison avec la RASPBERRY PI s'il s'agit d'une passerelle
![]() |
RFM69 shield pour ARDUINO UNO |
Ce shield n'a pas de connecteur SMA.
![]() |
Carte breakout AdaFruit |
![]() |
Connecteur SMA (montage bord de PCB) |
Si l'on désire déporter l'antenne sur l'arrière d'un boîtier, on peut utiliser une petite rallonge avec un connecteur femelle à visser :
Comme on le voit les solutions ne manquent pas, et permettent un intégration mécanique impeccable.
2.2. La passerelle
Le contrôleur ne communique pas directement avec les objets, il le fait à l'aide d'une passerelle de communication reliée au contrôleur par USB ou Ethernet.Cette passerelle est constituée généralement d'une carte ARDUINO de base (UNO, NANO, MINI) et possède le même module de communication que les objets connectés.
Il est possible de faire cohabiter plusieurs passerelles sur le même contrôleur :
- passerelle 2.4GHz NRF24L01
- passerelle 433MHz RFM69
- passerelle RFLINK 433MHz
- etc.
Le RFLINK est une passerelle permettant la communication avec des objets connectés 433MHz du commerce (Chacon, Blyss, etc.).
ATENTION : j'ai remarqué que le RFM69 443MHz n'aime pas trop la proximité avec le RFLINK. Il faut les éloigner l'un de l'autre. Dans mon cas, 20cm ont suffit à assurer un fonctionnement correct.
2.3. Le contrôleur
Beaucoup de serveurs domotique peuvent communiquer avec une passerelle MySensors :Sur le volet de gauche de ces différentes pages, vous trouverez la liste complète de ces contrôleurs.
Certains contrôleurs peuvent s'interfacer avec une passerelle MySensors nativement (Domoticz) ou à l'aide d'un plugin. Certains plugins sont payants (Jeedom).
Le contrôleur est installé en général sur une plateforme du type RAPBERRY PI. On peut bien évidemment l'installer sur un PC, mais à quoi bon consommer plus de 30W en permanence alors qu'une RAPBERRY PI fait la même chose en consommant 1 à 2W ?
Je ne vais pas ici refaire ce que d'autres ont déjà fait, mais vous aiguiller pour que vous puissiez trouver la documentation que vous recherchez, et en français quand c'est possible.
A la fin de cet article vous trouverez quelques conseils personnels, ainsi qu'un petit tuto sur l'installation d'une passerelle et de dispositifs MySensors sur Domoticz.
2.4. Le répéteur
Si les distances ne permettent pas à un capteur de communiquer avec la passerelle il est possible d'installer un répéteur entre les deux.Le répéteur est constitué de la même manière que la passerelle, d'une carte ARDUINO basique (UNO, NANO, MINI)et d'un module radio.
Un nœud capteur ou actionneur peut parfaitement jouer le rôle de répéteur, c'est une option :
// Enabled repeater feature for this node
#define MY_REPEATER_FEATURE
Cet ajout dans le code suffit. On peut difficilement faire plus simple.
3. Liens utiles
3.1. MySensors.org
Comment relier votre module radio à votre ARDUINO :https://www.mysensors.org/build/connect_radioLa librairie :
https://www.mysensors.org/about/arduino
Comment construire votre passerelle :
https://www.mysensors.org/build/serial_gateway
Le code de la passerelle est bien entendu fourni. Il tourne sur une carte NANO, UNO ou MINI.
Les exemples avec différents capteurs et actionneurs :
https://www.mysensors.org/build
3.2. Domoticz
Le WIKI :https://www.domoticz.com/wiki/Main_Page
Tutoriel Mysensors :
https://www.domoticz.com/wiki/MySensors
3.3. EasyDomoticz
Tutoriel installation Domoticz :https://easydomoticz.com/domotique-comment-debuter/installation-de-domoticz-sur-raspberrylinux-debian/
Tutoriel Domoticz / MySensors :
https://easydomoticz.com/domoticz-arduino-mysensors-org-partie-2-la-passerelle/
3.4. JeeDom
Tutoriel Mysensors très détaillé :https://www.jeedom.com/forum/viewtopic.php?t=5381
3.5. Domadoo
La présentation :https://blog.domadoo.fr/48220-mysensors-presentation-protocole-domotique-open-source-arduino/
JeeDom :
https://blog.domadoo.fr/guides/jeedom-guide-dutilisation-de-mysensors/
https://blog.domadoo.fr/solution_domotique/jeedom/
3.6. OpenDomotech
Créer des capteurs :http://opendomotech.com/creer-capteurs-mysensors-exemples-de-multi-sensors/
3.7. Anderson69
Tutoriel Domoticz :https://anderson69s.com/2017/03/18/domoticz-domotique-diy/3/
3.8. DomotiqueInfo
Tutoriel Domoticz :https://www.domotique-info.fr/2014/05/domoticz-installation-premiers-pas/
3.9. Asgard Diy
Beaucoup de projets et de tutos ici :https://projetasgarddiy.fr/accueil/
3.10. Mon blog
Certains d'entre vous connaissent déjà mes projets :Thermomètre sur batterie
Thermomètre / hygromètre sur batterie
Thermometre pour freezer
Détecteur de mouvement sur batterie
4. Quelques conseils personnels
4.1. Nommez vos sketches correctement
Lorsque vous développez un objet MySensors donnez-lui un petit nom explicite afin de pouvoir distinguer vos dispositifs dans l'interface graphique du contrôleur.sendSketchInfo("DS18B20 Temperature Sensor", "1.0");
4.2. Pensez à vos objets sur batterie
Si l'objet fonctionne sur batterie, pensez à envoyer régulièrement au serveur la capacité restante en pourcent :sendBatteryLevel(batteryLevel);
Ensuite sur le contrôleur, il vous sera possible d'écrire un script pour récupérer les niveaux de batterie de tous vos capteurs pour les contrôler et vous avertir en cas de défaillance, avec un buzzer ou un écran TFT par exemple.
Vous trouverez un script faisant ce travail dans ce projet :
(voir 10. Téléchargements : checkDevices.py dans l'archive téléchargée).
https://riton-duino.blogspot.com/2019/05/un-afficheur-pour-domoticz-ou-jeedom.html
Je parle bien de capacité batterie et non de tension. Une batterie LITHIUM-ION produit une tension de 4.2V à pleine charge et est considérée comme vide à 3V.
3V représentent 71% de la tension à pleine charge, alors qu'en terme de capacité cette tension équivaut à une capacité restante de presque 0%.
Dans ce projet de thermomètre sur batterie, la capacité de la batterie est calculée par rapport à sa tension :
https://riton-duino.blogspot.com/2018/01/un-thermometre-mysensors-sur-batterie.html
4.3. Pensez aux ESP8266
Il est aussi possible avec certains contrôleurs - avec Domoticz c'est le cas - de construire ses dispositifs sur une base d'ESP8266, en WIFI donc et de les ajouter à Domoticz en tant que dispositif virtuel.Voir le paragraphe "Ajout de votre Sonoff dans Domoticz" :
https://projetasgarddiy.fr/2018/06/14/interrupteur-sonoff-dans-domoticz/
De plus les ESP8266 sont parfaitement capables de fonctionner en basse consommation.
Dans mon système domotique j'ai quatre catégories de dispositifs :
- des dispositifs MySensors
- des dispositifs ESP8266
- des dispositifs du commerce (passerelle RFLINIK)
- une télécommande infrarouge
5. Quelques trucs et astuces
5.1. Ajouter une passerelle MySensors à Domoticz
Ouvrez la page Réglages / Matériel.
Choisissez "MySensors Gateway USB" dans la liste "Type".
Cliquez sur "Ajouter".
5.2. Ajouter un dispositif MySensors à Domoticz
Démarrez simplement votre montage ARDUINO. Celui-ci s'identifiera automatiquement auprès du serveur.Ouvrez la page "Réglages/Dispositifs".
Cliquez sur la petite flèche verte en face de votre dispositif pour pouvoir l'utiliser. Profitez-en pour lui donner un petit nom reconnaissable (icône crayon).
Si votre dispositif est un thermomètre il apparaîtra dans l'onglet "Températures" :
Si votre dispositif est un interrupteur ou une prise commandée il apparaîtra dans l'onglet "Interrupteurs" :
On voit sur cette image les 8 boutons correspondant à une télécommande.
A l'aide du bouton "Edit" vous allez pouvoir associer des actions à chaque interrupteur. Voir plus loin : 5.3. Les actions.
Les scripts sont écrits en langage PYTHON et envoient des requêtes JSON au serveur. Pour un serveur différent de DOMOTICZ l'implémentation sera probablement différente. Pour DOMOTICZ la doc est ICI : https://www.domoticz.com/wiki/Domoticz_API/JSON_URL%27s
Depuis les onglets "Températures" ou "Interrupteurs" cliquez sur l'étoile pour intégrer le dispositif au tableau de bord (la page d'accueil).
Il n'est pas obligatoire d'intégrer tous les dispositifs au tableau de bord, au risque de l'encombrer.
5.3. Les actions
A partir de l'onglet interrupteurs, cliquez sur le bouton "Edit" du dispositif que vous souhaitez configurer :L'action peut être simplement une URL comme ici :
http://192.168.1.11/?pin=1&action=PULSE&delay=100
Il s'agit d'un télérupteur WIFI à base d'ESP8266 que j'ai développé. L'adresse IP est celle de l'ESP8266.
On peut agir également en envoyant une requête JSON à Domoticz.
http://192.168.1.134:8080/json.htm?type=command¶m=switchlight&idx=328&switchcmd=On
http://192.168.1.134:8080/json.htm?type=command¶m=switchlight&idx=328&switchcmd=Off
Cette commande active le dispositif 60 (le home-cinema comme on peut le voir sur la page "Réglages/Dispositifs". L'adresse IP est celle du serveur Domoticz.
Pour commander un autre dispositif il suffit de remplacer cet identifiant par un autre :
- 52 : lumière étage
- 11 : lampe sur pied
- 51 : lampe niche
- etc.
Cette documentation vous sera très utile : https://www.domoticz.com/wiki/Domoticz_API/JSON_URL%27s
Des scripts autonomes peuvent être également développés. Voir quelques exemples ici : https://riton-duino.blogspot.com/2019/05/un-afficheur-pour-domoticz-ou-jeedom.html
Voir : 2.2. Les scripts
6. Conclusion
J'espère que cette petite présentation vous sera utile et a été suffisamment claire.Un dernier conseil : fouillez et explorez, soyez curieux.
Cordialement
Henri
7. Mises à jour
14/05/2019 : 5. Quelques trucs et astuces29/06/2019 : 5.3. Les actions
25/02/2020 : 2.1.1. Le NRF24L01
2.1.2. Le RFM69 ou RFM95
Aucun commentaire:
Enregistrer un commentaire