Accueil | Niveau de difficulté | Avancé | Fabriquer une passerelle domotique RFLink/RFXCom 433MHz pour 10,50€ (test avec Domoticz)

Fabriquer une passerelle domotique RFLink/RFXCom 433MHz pour 10,50€ (test avec Domoticz)

RFLink à base d'Arduino Mega 2560 et d'un module radio Super Heterodyne.
rflink rfxcom domoticz jeedom superheterodyne rbx6 ksa6

RFLink est un projet Open Source qui permet de réaliser une passerelle (gateway) entre un logiciel domotique et des modules domotiques qui communiquent par ondes radio. C’est une alternative très économique à la gateway commerciale RFXCom très connue. RFLink est capable de gérer les fréquences 315, 433, 868, 915MHz et depuis peu le 2,4GHz en utilisant des modules nRF24L01+. RFLink est développé par la société Hollandaise Nodo.

Pourquoi remplacer une RFXCom par une RFLink ?

RFXCom est le nom commercial d’une passerelle radio très connue et employée en domotique. La quasi totalité des logiciels domotiques prennent en charge cette passerelle mais son plus gros inconvénient reste son prix. Il est difficile de la trouver à moins de 100€. Si votre budget domotique est serré, la passerelle RFLink est une alternative très économique et facile à réaliser. Si vous n’avez pas l’âme d’un bricoleur ou si vous débutez, Nodo commercialise des kits à assembler soi même ou des modules prêt à l’emploi sur sa boutique en ligne à partir de 37€ environ.

Que peut-on faire avec une Gateway RFLink

L’équipe de Nodo travaille depuis plusieurs années maintenant sur ce projet et ajoute constamment de nouveaux matériels pris en charge par la gateway. Si vous possédez des modules compatibles avec le firmware de la RFLink, vous pourrez recevoir les trames de cette dernières (état, données…) et les afficher dans votre logiciel domotique. Vous pourrez également transmettre des trames depuis votre logiciel domotique et ainsi piloter les actionneurs par ondes radios. La version R43 prend en charge une liste impressionnante de matériels dans tous les domaines (la liste complète est disponible ici). En voici un petit aperçu rapide :

  • Alarmes,
  • Ampoules MiLight (2,4GHz),
  • Carillon,
  • Chauffage,
  • Commande d’ouverture de volet,
  • Consommation électrique
  • Détecteur de fumées ou d’incendie,
  • Détecteur de mouvement,
  • Interrupteurs et variateurs de lumière,
  • Ouverture de porte,
  • Relai,
  • Sirène,
  • Station météo et capteur météo,
  • Suivi de consommation énergétique,
  • Thermostat,
  • Télécommandes avec apprentissage des codes…

Matériel radio compatible : choisissez un récepteur de qualité

Pour fabriquer une passerelle RFLink, Nodo préconise (avoir les avoir tous testés à priori) d’utiliser un module radio de qualité pour s’assurer d’une bonne émission / réception des paquets. Les modules Asiatiques low cost sont déconseillés (même s’ils peuvent convenir pour des essais ou une utilisation à courte distance). Pour ma part, j’ai opté pour un module Super Heterodyne RXB6 qui coûte environ de 5,30€.

Module RadioCaractéristiques
rflink domoticz jeedom aurel tranceiver rtx-mid-5vAurel RTX-MID-5vFréquence : 433,92 MHz

Sensibilité : +10/-106dBm

Consommation : 13mA

rflink rfxcom domoticz jeedom superheterodyne rbx6 ksa6SuperHeterodyne RXB6 ou KSA6Fréquence : 433,92 MHz

Sensibilité : -116dBm

Consommation : 6mA

Certifications  CE / FCC

rflink-domoticz-jeedom-syn480rSYN480R (récepteur)

SYN115 (transmetteur)

Fréquence : 433MHz

Sensibilité : -107dBm

rflink nrf24l01nRF24L01+ PA LNA (avec antenne)

Adaptateur avec alimentation régulée (recommandé)

Fréquence : 2,4GHz

Emetteur

315mhz xd-fstSi vous désirez commander des appareils domotique, il faudra également ajouter un émetteur radio. Pour la fréquence 433MHz, Nodo ne préconise rien de particulier. Les modules low cost XD-FST FS1000A semblent convenir parfaitement et ne coûtent presque rien (environ 1,70€). Par contre le récepteur ne sera d’aucune utilité.

Reste du matériel nécessaire

Le firmware RFLink est trop volumineux pour fonctionner sur un Arduino R3 classique. C’est pour cette raison qu’il vous faudra faire l’acquisition d’un Arduino Mega 2560. Un clone d’Arduino Mega peut également convenir. Pour ma part, j’ai opté pour un SainSmart Mega 2560. L’Arduino Mega est un peu plus encombrant qu’un Arduino R3. On trouve également des clones plus compacts (mais je n’ai pas encore testé). L’avantage pour Nodo d’avoir opté pour un Mega 2560 est le grand nombre d’entrée/sortie. Plutôt que de devoir configurer le firmware en fonction du module radio employé, celui-ci envoi les paquets des signaux à envoyer à toutes les antennes reliées à l’Arduino.

Pour améliorer la réception de votre gateway, il est préférable d’ajouter une antenne externe avec connecteur SMA. Pour démarrer, vous pouvez prendre un simple morceau de cuivre de récupération 17cm de long. Un câble de section 1,5mm2 pourra faire l’affaire.

Coût de fabrication

Voici le coût moyen de fabrication à minima, sans boîtier ni antenne externe (un simple câble de cuivre de 17cm).

MatérielMatériel choisi pour l’articlePrix
Arduino Mega 2560Clone Arduino Mega25606,74€
Module radio 433MHz (récepteur)Superheterodyne RXB61,10€
Module radio 433MHz (émetteur)XD-FST FS1000A1,69€
Breadboard400 points1€
AntenneCâble de cuivre
Total approximatif10,50€

Pour fabriquer une gateway plus compacte, on peut aussi opter pour un clone d’Arduino Mega 2560 Mini (je n’ai pas encore testé avec RFLink).

arduino mega 2560 mini usb rflink domoticzArduino Mega 2560Mini avec câble USB8,59€
rflink rfxcom domoticz jeedom superheterodyne rbx6 ksa6Récepteur radio 433MHzSuperheterodyne RXB6
1,10€
315mhz xd-fstEmetteur radio 433 MHzXD-FST FS1000A1,86€
rflink-arduino-mega-mini-25600-plaque-prototypeBreadboardCompatible Mega Mini
3,53€
 Total approximatif15,08€ 

Si vous préférez acheter votre matériel sur Amazon, voici une liste de matériel déjà toute prête.

Câblage des modules radio

La câblage est très simple. Les modules radio ne nécessitent qu’un alimentation 5V, la mise à la masse et le câblage de la sortie Data. Si vous optez pour une antenne externe (attention elle n’est pas disponible sur tous les modules), il faudra câbler le +5V, GND et ANT (l’antenne)

Nodo a répertorié le câblage des modules pris en charge par RFLink. Voici un tableau de synthèse tiré du blog de Nodo.

ModulePin 1Pin 2Pin 3Pin 4Pin 5Pin 6Pin 7Pin 8Pin 9Pin 10

Aurel RTX MID 5V

AntenneGNDMega/Pin 14 (TX)Mega/Pin 15Mega/Pin 22GNDMega/Pin 19 (RX)Mega VCC (100nf au GND)

Super Heterodyne RXB6 ou KSA6

AntenneMega/Pin 16 (RX VCC)Mega/Pin 19 (RX)GND

SYN480R

VCCMega/Pin 19(RX)GNDAntenne

Qiachip WL101 + WL102

Antenne GNDVCC (3 à 5V)Mega/Pin 19 (??)Mega/Pin 19 (??)

NRF24L01 (Nodo) pour capteurs

 GND VCC (max 3.6V) CE : +3V (max. 3,6V) CS : Mega/Pin A12 SCK : Mega/Pin A15MOSI : Mega/Pin A13 MISO : Mega/Pin A14 IRQ : –

NRF24L01*

GNDVCC (max 3.6V)CE : Mega/Pin 48CS : Mega/Pin 49SCK : Mega/Pin 52MOSI : Mega/Pin 51MISO : Mega/Pin 50 IRQ : –

XD-FST FS1000A

GNDVCC : Mega/Pin 15Data : Mega/Pin 14
  • Câblage pour MiLight et objets MySensors.

Il est possible de cabler deux antennes nRF24L01 (Nodo / MiLight – MySensors) pour pouvoir profiter de deux protocoles en même temps.

Remarque. Pour le moment, RFLink ne peut pas être utilisé comme une gateway MySensors. La passerelle est capable de recevoir des messages mais elle est incapable d’envoyer des messages vers un noeud. Cette fonction est plutôt réservée pour l’apprentissage et le développement. On pourra s’en servir comme sniffer par exemple.

Rien de bien compliqué coté câblage, voici ce que ça donne avec un module radio 433MMhz Super Heterodyne.

montage rflink rfxcom arduino mega 2560 superheterodyne domoticz
RFLink à base d’Arduino Mega 2560 et d’un module radio Super Heterodyne.

Téléverser le firmware

Pour installer le firmware RFLink, Nodo a développé un petit utilitaire appelé RFLinkLoader. On ne passera donc pas par l’IDE Arduino. Allez sur la page Sourceforge pour récupérer le fichier compressé du projet.


rflink-sourceforge

 

Le ZIP contient (entre autre) les éléments suivants :

  • Le firmaware RFLink, fichier RFLink.cpp.hex,
  • RFLinkLoader
  • Avrdude (nécessaire pour installer le firmware sur la puce ATMEL)
  • RFLink Protocole Référence : explication du protocole de réception et d’envoi des messages avec des exemples pour des appareils courants
  • Supporter Device List : la liste complète des appareils supportés, également disponible ici.

rflink contenu zip firmware

Que peut-on faire avec RLinkLoader ?

RFLinkLoader permet tout d’abord d’installer le firmware sur l’Arduino Mega 2560 (fichier RFLink.cpp.hex). Depuis que la passerelle supporte les modules 2.4GHz, on doit passer par le loader pour activer le mode NodoNRF pour utiliser des capteurs à base de nRF24L01+. Si vous voulez utiliser des ampoules Mi-Light, vous devrez également activer le mode MiLightNRF depuis le Loader.

Installation du firmware

Branchez l’Arduino Mega 2560 sur le port USB puis lancez le programme RFLinkLoader. Ouvrez le sélecteur de fichier (Select File) puis indiquez le chemin vers le firmware (fichier RFLink.cpp.hex). Vérifiez que l’Arduino Mega est bien reconnu et proposé dans le combo Serial Port. Lancez le téléchargement depuis le bouton Upload/program Firmware to device. L’opération ne dure pas très longtemps. Le logiciel vous informera de la fin de l’opération via une boîte d’information.

rflink console port serie log

Premiers tests de réception

Nous allons maintenant faire quelques tests pour découvrir comment fonctionne la passerelle RFLink. J’ai utilisé une (vieille) prise télécommandée Phoenix qui me permet de commander l’allumage / extinction d’une lampe ainsi qu’un ancien détecteur de mouvement à la norme X10. Nous verrons dans de prochains tutoriels comment communiquer avec des appareils plus récents. Le principe restant toujours le même.

Mettez en marche la console en appuyant sur le bouton Serial Port Logging. En activant le mode Debug, vous aurez plus de détail sur la réception des messages. L’autre solution consiste à utiliser le journal (log) de Domoticz. Nous verrons comment faire un peu plus loin.

Interception des messages envoyés par la télécommande Phoenix

En appuyant sur le bouton ON de la prise A, on obtient le code suivant

Puis sur OFF,

flink reception messages commandes on/off telecommande phenix

Interception de la détection de présence par un détecteur X10 MS13E

Le détecteur Marmitech MS13E à la norme X10 n’est plus commercialisé aujourd’hui mais comme nous allons le voir, on peut encore très facilement l’utiliser avec un logiciel domotique récent sans la moindre difficulté. L’idée de cet article étant de fabriquer une passerelle 433MHz et la découvrir, le MS13E convient parfaitement.

Le MS13E possède deux boutons HOUSE/ON et UNIT/OFF. En appuyant sur HOUSE/ON on simule la détection d’une présence. On récupère le message suivant

Puis sur OFF,

Comment décoder les messages reçus et émis

Voyons maintenant ce que veulent dire ces messages. Chaque message est formaté. Chaque élément est séparé par un point virgule (;).

Message reçu

PositionElémentSignification
120Type de commande20 pour réception

10 pour émission

21non précisée mais semble être un numéro incrémental
3X10Protocol NameNom du protocole. Ici X10.
4ID=41Device AddressID de l’appareil. Souvent un numéro hexadécimal
5SWITCH=1Button NumberNuméro de la commande
6CMD=OFFActionAction à réaliser par exemple ON/OFF/ALLON/Niveau…

Messages émis

Pour envoyer un message, on passe les paramètres directement dans aucun libellé. Par exemple 10;X10;000041;1;OFF;

PositionElémentLibellé
110Emettre
2X10Protocol NameIci protocole X10
3000041Device AddressID de l’appareil
41Button NumberBouton n°1
5OFFActionEteint l’appareil branché sur la prise commandée

Si vous avez besoin de connaître en détail le fonctionnement de la passerelle RFLink, allez à cette page.

Autres commandes utiles pour exploiter la passerelle RFLink

RFLink dispose également d’un jeu de commandes pour réaliser des opérations de maintenance ou de mise au point. Copiez la commande dans le champ Command to send (sans oublier le point-virgule à la fin) puis appuyez sur Send.

CommandeFonctionRetour
10;REBOOT;Reboot la gateway RFLink
10;PING;Permet de vérifier si la gateway est fonctionnelle20;99;PONG;
10;VERSION;Version et numéro de build20;99;”RFLink Gateway software version”;
10;RFDEBUG=ON;ON/OFF. Active / désactive l’affichage des paquets RF20;99;RFDEBUG=”state”;
10;RFUDEBUG=ON;ON/OFF. Active / désactive le décodage des paquets RF20;99;RFUDEBUG=”state”;
10;QRFDEBUG=ON;ON/OFF. idem que RFUDEBUG mais plus rapide. Pulse times en hexa. Multiplier par 30 pour obtenir la valeur réelle.20;99;QRFDEBUG=”state”;
10;RTSCLEAN;Efface la table des codes stockés dans l’EEPROM interne
10;RTSRECCLEAN=xx de 0 à 15. Efface le code dans l’EEPROM au numéro indiqué
10;RTSSHOW;Affiche les code stockés dans l’EEPROM

Relier la gateway RFLink à Domoticz (sur un Raspberry Pi)

Il est grand temps de tester la gateway sur un logiciel domotique et plus particulièrement sur Domoticz. Aucun plugin n’est nécessaire. Domoticz accepte les passerelles RFLink USB ou réseau. Pour cet article, j’ai utilisé Domoticz sur un Raspberry Pi 3. Comme la passerelle est alimentée par le port USB du Raspberry, optez pour une alimentation d’au moins 3A comme celle-ci. Si votre RPI s’arrête de manière inexpliquée, c’est la première cause du problème en générale.

L’article a été rédigé avec la version v3.4838 de Domoticz.

Attention. Faites une sauvegarde de votre carte SD et/ou de la base de données de Domoticz avant d’installer une Gateway RFLink.

Si vous débutez (Linux, Domoticz, SSH), voici une série d’articles à lire avant de commencer :

Domoticz: installation et configuration sur Raspberry Pi 3 (ou 2)

Commandes utiles pour configurer et utiliser son Raspberry Pi

Connexion SSH pour accéder à un Raspberry Pi à distance

Trouver le port USB sur lequel est branché la passerelle

L’installation de la passerelle ne pose aucun problème particulier. Cependant, si vous avez plusieurs appareils connectés en USB, le risque de s tromper est important. Petit problème, Domoticz est allergique à une erreur de déclaration du port USB.

Connectez vous à votre Pi en SSH ou en direct et exécutez cette commande pour arrêter le service Domoticz

Branchez la passerelle RFLink sur un port USB du Raspberry et exécutez la commande

rflink dmesg -s 1024 port usb gateway rapsberry pi3
Trouver le port USB sur lequel est branché la gateway RFLink avec la commande dmesg -s 1024.

Dans mon cas, l’Arduino Mega 2560 de la passerelle est branché sur le port USB ttyACM0.

Il ne reste plus qu’à redémarrer le service Domoticz avec la commande

Ajout du matériel RFLink

Allez dans les Réglages puis Matériel puis :

  • Donnez un nom,
  • Dans la liste Type, choisissez RFLink Gateway USB (ou Network)
  • N’indiquez aucun temps d’attente
  • Choisissez le port série sur lequel l’Arduino est branché
  • Enregistrez

Ajout d’un dispositif radio

Il existe plusieurs manières d’ajouter un matériel. Dans tous les cas, dès qu’un signal est décodé par RFLink, il est transmis à Domoticz qui l’ajoute à la liste des dispositifs.

Si votre dispositif dispose de boutons (par exemple une télécommande, un mode test pour un détecteur de présence ou de fumées), actionnez le. Le dispositif sera alors directement ajouté dans la liste des dispositifs Domoticz. On l’ajoute comme d’habitude à l’aide de la flèche verte.

rflink x10 détecteur mouvement motion sensor ms13e
Détecteur de mouvement X10 RFLink

 

On peut également ajouter manuellement le dispositif depuis la page Interrupteurs avec la fonction détection Auto (à droite de l’écran). Domoticz est à l’écoute de commandes envoyées par les appareils.

Si aucun matériel ne s’ajoute dans les dispositifs, allez vérifier dans les réglages que Domoticz accepte les nouveaux matériels.

domoticz-activer-decouverte-materiels-auto

Problèmes rencontrés

Voici quelques problèmes rencontrés (et les solutions !) durant la mise au point de cet article.

SituationConséquence
Ne pas débrancher “à chaud” la gateway RFLink du port USBNe débranchez jamais du port USB la gateway. Domoticz plante à tous les coups. Arrêtez le RPI ou arrêtez le service Domoticz avant de le faire
Suppression d’un matériel RFLinkDomoticz peut planter après une suppression d’une gateway dans la liste des matériels. Dans ce cas, il faut redémarrer le RPI. Relancer le service ne semble pas suffire
Indiquer le mauvais port Série dans la configuration du matérielC’est probablement l’erreur la plus grave car à chaque démarrage Domoticz s’arrête dessus. A part supprimer la base de données (et tout perdre), je n’ai pas encore trouvé de solution moins radicale (par manque de temps).

Voilà, vous disposez maintenant d’une passerelle radio pouvant recevoir ou émettre vers des appareils fonctionnant en 315, 433, 868MHz ou 2,4GHz. Même si RFLink reste un projet Open Source, un très grand nombre d’appareils sont pris en charge. Le budget de réalisation (sans boitier ni antenne) est très raisonnable (environ 10€) comparé au boitier RFXcom qui coûte environ 110€. Dans les prochains articles, nous verrons comment rendre la RFLink un peu plus sexy et plus pro en la mettant dans une belle boîte avec une antenne.

Ce forum est à votre disposition pour échanger autour du sujet

  • GG

    Bonjour,

    Peut-être une question bête mais vous expliquez que votre passerelle RFlink peut communiquer sur les fréquences 433 et 868MHz ainsi que 2.4GHz. Or dans cette présentation, vous ne proposez que des émetteurs/récepteurs à 433MHz et 2.4GHz. comment est donc gérée la fréquence 868MHz?

  • gandolfi

    bonjour,
    Merci pour cet article.
    – La passerelle RFLINK est elle capable de capter à la volée un signal radio émis par n’importe quel appareil dans sa gamme de fréquence ? Pour ensuite renvoyer le signal par l’emetteur installé dessus ?
    – Cela m’interesse car mon portail et mes stores sont commandés par radio. Faut il que le modèle soit rentré dans la liste ou bien peut on rentrer manuellement des commandes en fonctions des infos reçus. (ex: je ferme mon portail / je regarde le train d’onde reçu par rflink quand j’actionne le bouton / je lui assigne la commande “fermeture du portail” / par la suite je pourrais fermer mon portail directement à partir de RFLink) ?

    • Bonjour.
      1. Oui, parfaitement. Aucune configuration. Il écoute et envoi
      2.Oui ça devrait pouvoir se faire. Il faut regarder dans cette liste si le matériel est supporté http://www.nemcon.nl/blog2/devlist. S’il n’est pas dans la liste, il faudra lancer les ordres manuellement (tout est expliqué à la fin de l’article). Bon week end

      • gandolfi

        bonjour et merci.
        je ne pensais pas qu’il pouvait décoder le signal d’un module inconnu et le renvoyer à l’identique. c’est vraiment puissant comme dispositif.
        – Une sorte de scanner radio avec enregistrement des signaux ?
        – je sens que je vais bien étudier ton tuto car cette solution pourrait me permettre d’ouvrir de nouveau horizons dans ma connaissance des objets radios.

        – Peut etre peut on piloter des engins RC avec ?

        Bon week-end

  • 59540rebel

    merci pour se tuto mais j’aurais voulue s’avoir si on faire un actionneur
    avec un arduino des relais et 433mhz chinois et connecter sur rflink

    • Bonjour Rebel. RFLink a surtout été développée pour permettre de faire communiquer des appareils domotiques avec un serveur domotique. C’est une passerelle de communication qui ‘intercepte’ les messages envoyés par les appareils pour les renvoyer vers le serveur. La passerelle fonctionne également dans l’autre sens et mimant l’émetteur original. RFLink est donc conçu pour communiquer avec des produits du commerce. Sur le papier rien ne nous empêche d’utiliser la passerelle RFLink pour communiquer avec un Arduino équipé d’une antenne radio car il est possible d’envoyer nos propres paquets radio. Par contre il va falloir tout coder coté Arduino. Ce n’est donc pas le chemin le plus facile. Je vous conseille donc plutot de partir sur la librairie MySensors. C’est très simple à mettre en place. Voici une série d’articles pour débuter : https://www.projetsdiy.fr/category/domotique/mysensors-domotique. L’autre solution consiste à utiliser la librairie Virtual Wire https://www.pjrc.com/teensy/td_libs_VirtualWire.html. Tout va dépendre de vos besoins et de vos connaissances. Voilà, j’espère avoir répondu à votre question. A très bientôt. Christophe

  • David

    Bonjour
    Très bon article qui permet de mieux comprendre et appréhender.
    Par contre, je n’arrive pas à trouver de PCB pour arduino Mega à réaliser soi même : soit on achète chez Nodo, soit on fait avec des plaques expérimentales. Le seul que je trouve est pour un arduino pro mini.
    Quelqu’un aurait-il ça dans un de ses lien ?

  • Migui Pda

    Bonjour,
    je me pose toujours la question de comprendre pourquoi prennent-ils un si gros Arduino.
    Puisque j’en ai un sous la main, serait-ce possible de créer la même chose avec un Arduino Nano ?
    Merci de votre réponse.

    • Bonjour Migui. Oui, c’est frustrant. Le code prend de la place car chaque appareil domotique utilise son propre protocole de communication. L’équipe de dév doit donc ajouter du code pour chaque nouvel appareil. Impossible donc de faire tout tenir dans la petite mémoire de l’Arduino Uno/nano. Enfin, dernier avantage, le Mega dispose de 54 E/S (14 pour un Arduino Uno). Il est possible d’installer plusieurs antennes (en plus du 433MHz) et de piloter des appareils dans différentes fréquences avec une seule gateway.

  • LB

    Hello,

    Je vais me lancer dans ce projet aussi… bien motivé ! 😉

    par contre, dommage votre panier Amazon ne fonctionne plus… 🙁

  • Cyril

    Bonjour,

    J’ai une sonde pt1000 que je souhaiterais relier par onde radio à mon régulateur solaire SoraW. En princpe, la liaison est filaire. Il y a environ 10m de distance avec des murs et une dalle. Je n’y connais rien en électronique et onde radio.
    En principe j’imagine que je devrais faire quelque chose du genre:

    sonde -> fil -> emetteur radio —> recepteur radio -> fil -> régulateur

    Auriez vous des idées de comment je peux réaliser cette installation ?
    Merci pour votre aide.

    Cyril.