Fil pilote 433Mhz DIY
Présentation

Après avoir cherché des solutions dans le commerce (que j'ai trouvé hors de prix), je me suis lancé dans la réalisation d'une passerelle 433Mhz <-> fil pilote DIY. C'est ce que je vous propose de découvrir dans cet article.
Le but du dispositif est donc de pouvoir piloter des radiateurs avec un programmateur en utilisant l’interface du « fil pilote », mais sans fil...C'est pas clair ce que je raconte? Oui j'avoue, on va donc faire un petit schéma.
Dans une installation conventionnelle, le programmateur est relié physiquement aux différents radiateurs au travers d’un fil, dit « pilote » qui transmet l’ordre de commande :
Le
dispositif que je vais vous présenter remplace cette liaison filaire par une liaison sans
fil RF 433MHz :
Il est constitué de 2
boitiers:
- Un boitier transmetteur Tx qui sert de convertisseur ‘Fil Pilote -> Emetteur RF 433MHz’. Ce boitier est connecté localement au programmateur. Son rôle est de lire et décoder l’ordre « fil pilote » émanant du programmateur en local. Il diffuse ensuite cet ordre grâce à l’émetteur RF.
- Un boitier Récepteur Rx qui sert de convertisseur ‘Récepteur RF 433MHz -> Fil pilote’. Ce boitier est relié localement au niveau de chaque radiateur. Son rôle est de réceptionner et décoder la trame reçu en liaison RF. Il se charge ensuite de retranscrire l’ordre sur l’interface fil pilote local à destination du radiateur sur lequel il est raccordé. Il faut donc un boitier Rx par radiateur.
Le fil pilote, c'est quoi?
Ce terme désigne en fait un système de commande basé sur le
signal électrique alternatif 230 Vac.
Le radiateur va réguler la température grâce à son thermostat interne en fonction du mode envoyé par le fil pilote.
On se rend compte ici que la gestion des 4 ordres de bases est ultra basique: un montage avec 2 optocoupleurs à sortie triac + 2 diodes est suffisant. Le net regorge d'exemple:
Présentation du boîtier récepteur Rx
La partie Hard
Ce boîtier est destiné à être relié à un radiateur pourvu d'un fil pilote. Voici à quoi il ressemble une fois terminé:![]() |
"Wahoou! Il est beau..." |
Il est destiné à être installé en saillie juste quelque par à proximité du radiateur qu'il pilote. . Ce boitier est conçu à partir d'un PCB simple face:
![]() |
"Quand je dis DIY, c'est pas pour rien" |
La taille du PCB de 50x50mm a été spécialement étudiée pour prendre le moins de place possible et rentrer dans une boite de dérivation Legrand référence 860 57 disponible dans n’importe quel GSB.
La carte est structurée autour d’un microcontrôleur PIC16F1825. D’un côté il lit les trames en provenance du récepteur 433Mhz, et de l’autre il génère l’ordre du fil pilote au travers d’un ensemble d’optocoupleur triac et de diodes.
La carte est structurée autour d’un microcontrôleur PIC16F1825. D’un côté il lit les trames en provenance du récepteur 433Mhz, et de l’autre il génère l’ordre du fil pilote au travers d’un ensemble d’optocoupleur triac et de diodes.
La carte est également munie de 2 leds d’indication d’état ainsi que
d’un bouton reset. Celui-ci permet de reseter le PIC si besoin sans devoir
couper l’alimentation. C'est le petit trou en façade que l'on voit sur la photo.
Le tout est alimenté par un montage à capa chutrice branché directement sur le 230V, et protégé en amont par un fusible. Il est également possible d’alimenter la partie
basse tension à l’aide d’une pile 9V branché sur le bornier 2 voies lors de
phases de tests pour vérifier le bon fonctionnement de la partie basse tension. Cette dernière partie est totalement optionnelle et n’est pas indispensable au
bon fonctionnement de la carte.
Et voici l'antre de la bête:

Vue de dessous

Vue de dessus


![]() |
Une fois intégrer sans le capot |
La partie Soft
Je ne vais pas détaillé ici le code source. Si cela vous intéresse, je vous invite à parcourir le dépôt Github.
Voici le principe utilisé: Le PIC reçoit le signal en provenance du récepteur 433Mhz sur 2 modules CCP. Le premier va détecter les fronts montants tandis que le second va détecter les fronts descendants.
Il est alors possible de connaitre exactement la durée des fronts hauts et des fronts bas en comparant la valeur du Timer entre 2 interruptions générés par les modules CCP.
Le protocole HomeEasy
C'est le principal intérêt de ce projet: il utilise un protocole standard compatible avec de de nombreux systèmes domotiques tel que Chacon (gamme DI-O), Zibase ou Rxfcom.
...Et?
Hé bien voilà où je veux en venir: ce petit boîtier Rx dont je vous rebats les oreilles depuis quelques dizaines de lignes s'apparent à un module Qubino ZMNHJD1 (le Z-Wave en moins). Il peut donc être détourné facilement pour être utiliser avec n'importe quelle box domotique en lieu et place du boitier Tx.
...Et?
Hé bien voilà où je veux en venir: ce petit boîtier Rx dont je vous rebats les oreilles depuis quelques dizaines de lignes s'apparent à un module Qubino ZMNHJD1 (le Z-Wave en moins). Il peut donc être détourné facilement pour être utiliser avec n'importe quelle box domotique en lieu et place du boitier Tx.
https://github.com/Sooun/fil_pilote
Merci de m'avoir lu et n'hésitez pas à poster!
Sooun
très bon montage
RépondreSupprimerBonjour,
RépondreSupprimerQuel board/interface faut-il disposer pour pouvoir programmer le PIC ?
Par ailleurs, je souhaiterais pouvoir commander envoyer des ordres au boitier RX directement depuis mon Rpi avec Domoticz/RFLink. Le boitier RX filtre t'il les messages HomeEasy reçu suivant un ID matériel ?
Merci par avance.
Bonjour,
RépondreSupprimerPour pouvoir programmer le PIC, il vous faut un programmateur Pickit 3. On en trouve facilement aux alentours de 20€.
Concernant le traitement des messages reçus, voici comment ça marche:
Les trames pour lesquelles le boitier RX va réagir sont définies dans le code source du programme. Voici à quoi cela ressemble:
// CONSTANTES
#define ARRET 0x2C674E81
#define CONF 0x2C674E90
#define ECO 0x2C674E91
#define HORS_GEL 0x2C674E92
Donc pour pour répondre à votre question, oui il y a filtrage des messages.
Pour que le boitier RX fonctionne correctement avec le RFlink, il faut effectivement que le code ID que vous renseignez dans Domoticz pour chaque mode (Arrêt, Confort, Eco...) corresponde à la trame attendu dans le boitier RX.
Il n'y a pas de "mode apprentissage" dans le boitier RX, tout est prédéfini directement dans le code source (que vous pouvez modifiez bien sûr)
Sooun
Bonjour,
RépondreSupprimerLes liens sur le dépot github ne sont plus valides. Est-il possible de les actualiser?
De plus, dans l'hypothèse où les commandes sont envoyées par une box domotique ("custom" genre domoticz ou jeedom), est-il possible de se contenter du boitier RX seul?
Merci d'avance pour vos réponses.
Bonjour,
RépondreSupprimerJe viens de mettre à jour les liens sur Github, merci pour l'info.
Et oui, il est tout à fait possible d'utiliser le boitier RX en association avec une box domotique. Je pense même que c'est son principal intérêt. J'ai fait le test avec un Arduino + RFLink + Domoticz et ça fonctionne très bien. Il y a quelques subtilités pour la configuration des"interrupteurs" dans Domoticz, mais dès que j'aurais un plus de temps, je ferais un petit article.
Sooun