(modifié le 3 septembre 2017 à 18:29)

Vous le savez j'ai chez moi plusieurs systèmes domotique qui cohabitent.

Somfy avec la Somfybox, un Raspberry Pi avec du Zwave et plus récemment Delta Dore pour la gestion de ma chaudière à gaz.

test-rfxtrx433e

Il n'est pas pratique de faire cohabiter autant de protocoles car ils ne peuvent pas interragir entre eux. La solution réside dans un petit boitier magique, le RFXCom RFXtrx433e.

RFXtrx433E

C'est le modèle du boitier que je vous présente aujourd'hui : RFXtrx433E fabriqué par la société RFXCom. C'est un boitier USB capable de communiquer avec de très nombreux périphériques et marques : Chacon, La crosse technology, Oregon, Digimax, X10, DIO... et Somfy RTS, le protocole radio historique de Somfy. A ne pas confondre avec le procole Somfy io-homecontrol qui est capable de retourner l'état d'un périphérique et que l'on trouve par exemple sur les volets roulants de la marque.

rfxtrx433e

Comme son nom l'indique le RFXtrx433E est un émetteur / récepteur la bande des 433,92MHz, fréquence très utilisée en domotique, d'où sa compatibilité avec un grand nombre d'émetteurs. Il se connecte en USB (mini USB / USB). Historiquement il existe plusieurs versions du RFXCom : RFXtrx433 et RFXtrx433E. Evidemment la version la plus complète est celui que je vous présente.

rfxtrx433e_ouvert

Ce boitier RFXCom est tellement populaire qu'il est compatible avec de nombreuses solutions domotiques : jeedom, eedomus, vera et l'excellente solution libre Domoticz. Celle que j'utilise sur mon Raspberry Pi B+.

Une antenne au format RP-SMA est livrée avec le boitier, ainsi qu'un câble miniUSB.

Je me suis tourné vers le spécialiste de la vente de produits domotiques pour ce test, le site Domadoo que je remercie d'avoir répondu favorablement à ma sollicitation. Un code de réduction de 15% vous attend en fin de billet pour ceux qui veulent acquérir le module. Pensez à faire un tour sur le blog domadoo qui regorge de guides, tutoriels et news.

Mise à jour du firmware

La première étape consiste à installer la dernière version du firmware dans le RFXCom. Il faut le faire dès le départ car une mise à jour de firmware efface la configuration du module. A moins d'avoir besoin d'une nouveauté supportée avec une nouvelle version firmware vous n'aurez plus besoin de le mettre à jour par la suite.

Téléchargez sur cette page :

  • le firmware "RFXtrx433E Ext Firmware", au moment où j'écris nous en sommes à la v250 (changelog sur le blog RFXCom) puis extraire l'archive
  • RFXflash Programmer
  • RFXmngr
  • le guide d'utilisation en français

Un ordinateur fonctionnant sous Windows est requis pour la suite. Aucun driver n'est nécessaire, Windows va reconnaître le périphérique comme un port COM virtuel USB (USB serial port dans les périphériques).

Connecter le RFXCom au PC puis lancer RFXmngr (manager): File > Connect > USB et choisir le numéro COM. La version actuelle du firmware doit s'afficher :

rfxmngr-fw-version

Si vous avez déjà la dernière version alors sautez l'étape de mise à jour. Sinon : déconnecter la liaison (file disconnect) puis fermer RFXmngr.

Lancer RFXflash programmer, choisir le port COM et cliquer sur l'icone "connect to device" (1) pour se connecter au RFXCom en mode "mise à jour de firmware" :

rfxflash-detect

"Device found" témoigne de la bonne détection du module par l'ordinateur. Cliquer alors sur "Open HEX file" (2) puis choisir la dernière version du firmware téléchargé précédemment, celle ayant le numéro le plus grand (249 dans mon cas) :

rfxflash-select

"Hex File imported" apparaît.

Cliquez sur "write device" (3) pour écrire le firmware dans le RFXCom :

rfxflash-write

"Finished operation" signifie que le flash est un succès :

rfxflash-finished

Cliquer sur (4) pour passer le RFXCom en connexion USB classique.

C'est terminé, fermez RFXCom Flash Programmer.

Appairer  les modules Somfy RTS

Avant d'aller plus loin il faut débrancher toutes vos prises (douilles, etc) Somfy, elles ne doivent plus être alimentées. N'ignorez pas cette étape sinon cela ne fonctionnera pas.

somfy-prises

Nous devons appairer le module RFXCom avec les différents équipements Somfy, dans mon cas il s'agit de prises RTS. Je pars du principe que vous avez déjà appairé une télécommande Somfy avec votre prise (ou douille, etc) car nous en aurons besoin.

Dans le cas contraire :

  1. Brancher une prise Somfy
  2. Restez appuyé sur le bouton de la prise pendant plus de 10 secondes pour supprimer tous les appairages (le voyant va clignoter puis s'éteindre)
  3. Appuyez pendant environ 2 sec sur le bouton de la prise (le voyant clignote)
  4. Appuyez sur le bouton au dos de la télécommande
  5. Le voyant de la prise va s'éteindre
  6. Testez On/Off depuis la télécommande et vérifier que la prise accepte les ordres

Somfy en RTS utilise des rolling codes, ou code tournants. Le RFXCom va donc devoir être en écoute pour pouvoir produire les bons rolling codes, d'où l'appairage nécessaire avec une télécommande existante.

Si ce n'est pas encore fait débranchez toutes vos prises Somfy, je le répète et ce n'est pas pour rien.

  1. Connecter le RFXCom au PC
  2. Ouvrir RFXmngr
  3. Brancher la première prise à appairer
  4. Mettre la prise sur ON à l'aide de la télécommande (la led bleue s'allume)
  5. Appuyer 3 sec au dos de la télécommande sur le bouton d'association (la led de la télécommande s'allume brièvement puis la prise clignote)
  6. La prise passe automatiquement sur OFF
  7. Onglet RFY dans RFXmngr
    • Type RFY
    • ID: 0 - 00 - 01
    • Command : program
  8. Appuyer sur Transmit
  9. La prise va passer sur ON puis sur OFF
  10. C'est fini 🙂

Votre RFXCom est maintenant appairé avec cette prise, tout comme votre télécommande d'origine qui le reste également.

Si vous avez une télécommande 4 voix Somfy il faut bien sûr au préalable se positionner sur la voix souhaitée (clignote en rouge de 1 à 4) :

somfy-tel

Pour associer une autre prise débrancher toutes les autres, et répétez l'opération en choisissant un ID différent "0-00-02" par exemple.

Voici ce que donne "list remotes" avec 3 télécommandes enregistrées :
================================================
RFY command
================================================
Packettype = RFY
subtype = RFY
Sequence nbr = 82
id1-3 = 010101
Unit = 1
Command = List remotes
rfu1 = 00
rfu2 = 00
rfu3 = 00
Signal level = 0 -120dBi
Packettype = Interface Message
subtype = RFY remote:0 is empty
Packettype = Interface Message
subtype = RFY remote:1 ID:00 00 01 unitnbr:1
Packettype = Interface Message
subtype = RFY remote:2 ID:00 00 02 unitnbr:1
Packettype = Interface Message
subtype = RFY remote:3 ID:00 00 03 unitnbr:1

Détection du RFXCom sous Raspbian

J'utilise Domoticz sur un Raspberry Pi B+, avec une alimentation de 2A.

Une fois le RFXCom connecté sur l'un des 4 ports USB du Raspberry Pi vérifiez qu'il est bien détecté :
$ dmesg | grep -e "RFX\|tty"
[ 0.001748] console [tty1] enabled
[ 0.141339] 20201000.uart: ttyAMA0 at MMIO 0x20201000 (irq = 83, base_baud = 0) is a PL011 rev2
[ 3.113512] usb 1-1.5: Product: RFXtrx433
[ 3.124411] usb 1-1.5: Manufacturer: RFXCOM
[ 3.282000] cdc_acm 1-1.4:1.0: ttyACM0: USB ACM device
[ 3.475470] usb 1-1.5: FTDI USB Serial Device converter now attached to ttyUSB0

Le boitier est identifié sur le port "ttyUSB0". Cette commande offre plus de détail :
udevadm info --query=all --name=ttyUSB0 | grep -e "RFX\|tty"
P: /devices/platform/soc/20980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/ttyUSB0/tty/ttyUSB0
N: ttyUSB0
S: serial/by-id/usb-RFXCOM_RFXtrx433_A1Z5MEMF-if00-port0
S: ttyUSB9
E: DEVLINKS=/dev/serial/by-id/usb-RFXCOM_RFXtrx433_A1Z5MEMF-if00-port0 /dev/serial/by-path/platform-20980000.usb-usb-0:1.5:1.0-port0 /dev/ttyUSB9
E: DEVNAME=/dev/ttyUSB0
E: DEVPATH=/devices/platform/soc/20980000.usb/usb1/1-1/1-1.5/1-1.5:1.0/ttyUSB0/tty/ttyUSB0
E: ID_MODEL=RFXtrx433
E: ID_MODEL_ENC=RFXtrx433
E: ID_SERIAL=RFXCOM_RFXtrx433_A1Z5MEMF
E: ID_VENDOR=RFXCOM
E: ID_VENDOR_ENC=RFXCOM
E: SUBSYSTEM=tty

Le port attribué "ttyUSB0" est dynamique et susceptible de bouger suivant ce que vous connectez sur votre Raspberry Pi, nous allons le fixer de manière permanente afin qu'il ne change plus pour Domoticz qui se base sur cet identifiant.
sudo nano /etc/udev/rules.d/98-usb-serial.rules

Attention : ne pas choisir de nom ttyNomPerso car Domoticz ne le supporte pas, choisir ttyUSBxy (x de 1 à 9, y de 0 à 9) comme le recommande la doc officielle.

Ajoutez cette ligne pour fixer le port "ttyUSB9" (facile à retenir) :
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", SYMLINK+="ttyUSB9"
"idVendor" et "idProduct" correspondent à ce que retourne la commande "dmesg" ou "lsusb" :
Bus 001 Device 006: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Mémorisez le fichier avec ctrl+x > o (pour oui) > Entrée.

Rebootez le RPi pour terminer (sudo reboot).

En complément voici un tutoriel pour personnaliser ce mappage.

Ajout du RFXCom dans Domoticz

Ajouter le périphérique sous Domoticz > matériels :

domoticz-ajout-rfxtrx433e

Puis "Ajouter". Le bouton “Set Mode” permet de configurer le module pour des périphériques exotiques, ne pas y toucher.

Aller ensuite dans Réglages > Périphériques > Inutilisés. Entrer le nom saisi à l'étape précédente "rfxtrx433" pour le retrouver facilement si les périphériques sont nombreux.

domoticz-dispositifs

On retrouve les ids affectés avec RFXmngr : 000001 correspond à 00-00-01. Domoticz détecte les prises RTS Somfy comme des volets si l'on regarde l'icone, ce n'est pas un problème.

Pour ajouter un périphérique il faut cliquer sur la flèche bleue en fin de ligne et saisir un nom : Prise salon par exemple. J'ai suffixé entre parenthèse "(RTS)" pour me rappeler qu'il s'agit d'une prise Somfy, car j'ai aussi du Zwave, Hue. Choisir "unité principale" > bouton "ajouter le dispositif".

Aller dans l'onglet Interrupteurs de Domoticz pour retrouver le périphérique. Il suffit maintenant de cliquer sur l'icone pour allumer ou éteindre notre périphérique RTS. Le bouton éditer permet de changer l'icone, cela n'a aucune influence sur le périphérique, tant que le type est "interrupteur on/off".

domoticz-lampe

ON/OFF sont inversés ?

Il se peut que l'action ON/OFF soit inversée, ceci est lié à un bug de Domoticz et corrigé depuis la version 2.3724.

Pour mettre à jour Réglages > Vérifier les mises à jour > OK pour installer la dernière version.

Si une erreur de connexion apparaît faites la mise à jour en terminal SSH depuis l'utilisateur Pi :

sudo service domoticz.sh stop
cd /home/pi/domoticz
wget http://domoticz.sourceforge.net/beta/domoticz_linux_armv7l.tgz
tar xvfz domoticz_linux_armv7l.tgz
rm domoticz_linux_armv7l.tgz
sudo service domoticz.sh start

Version mobile

Avec Android je vous conseille l'application Dromotica qui s'interface avec Domoticz. A noter que vous pouvez toujours y accéder via un navigateur car l'interface de Domoticz est responsive. Ne pas hésiter à vider cookies, cache et cache application en cas de soucis (fréquents avec chrome).

Conclusion

Ce boitier RFXCom fonctionne à merveille et permet d'actionner mes prises Somfy, sans couper le pilotage de la Somfybox et de télécommandes associées.

domoticz-dashboard

Avec son grand nombre de périphériques compatibles il est très facile d'ajouter de nouveaux capteurs, sondes et interrupteurs. D'ailleurs j'ai pas moins de 8 pages de sondes X10, Oregon... détectées. Ce sont celles de mon voisinage, car en réalité il n'y a aucune sécurité sur la plupart des capteurs (voilà pourquoi il est dangereux de connecter une cafetière...). Mes prises Somfy ne sont pas visibles si l'un de mes voisins avait aussi un RFXCom, grâce au système de rolling codes (principe identique aux clés de voiture).

Vendu environ 110€ chez Domadoo.

D'autres billets autour de Domoticz viendront puisque j'ai créé des scripts bash pour simuler une aube avec mes ampoules Hue ou encore piloter mon ampli Yamaha à travers le réseau (RJ45).

Voici le mode d'emploi et la liste des périphériques compatible avec le RFXCom(stations météo, etc).

Merci à Domadoo de m'avoir permis de réaliser ce test

Auteur : Mr Xhark

Fondateur du blog et passionné par les nouvelles techno, suivez-moi sur twitter