36

RTS Somfy avec Domoticz et RFXcom RFXtrx433E

Jusqu’à présent, pour commander des volets roulants Somfy, on ne disposait que de 2 options, relativement coûteuses :

  • l’achat d’une box domotique compatible : Somfy Box, Zibase ou HomeWizard.
  • bidouiller à partir d’une télécommande et d’une carte I/O

Un nouveau module RFXCOM est sur le marché à partir d’aujourd’hui et vient combler un vide: il s’agit du module USB RFXtrx433E, évolution du RFXTrx433 qui supporte le protocole RTS de Somfy. Son surcoût  est de 10€ par rapport à la version de base, ce qui est très raisonnable, surtout quand on compare le prix du dispositif  au prix des box supportant le protocole (HomeWizard restant la plus raisonnable)…

Il existe donc maintenant une solution utilisable par des logiciels libres via l’API RFXcom et un hardware type Raspberry Pi. Mon objectif est de supporter cette fonctionnalité dans FHEM, mais avant de me lancer là-dedans, il me faut d’abord être sûr que la carte reçue fonctionne correctement. Comme j’ai lu que la dernière version de Domoticz la supportait, c’est aussi l’occasion de tester cet autre logiciel libre !

Le nouveau RFXtrx433E

Hardware

Je n’ai pas eu la version définitive mais une préversion basée sur l’ancien RFXtrx433, aussi ce que j’ai pu écrire ici ne correspond pas à ce qu’on trouvera dans le commerce.

Fonctionnalités

Il ne supporte que l’émission. Dommage : il ne sera pas possible de connaître l’état de ses volets si on les commande avec la télécommande d’origine.

Sont implémentées les fonctions stop, up, down et program. Les premières se passent de commentaire. La dernière permet de faire l’appariement du RFXTRX433E avec le récepteur Somfy RTS, comme on va le voir ci-après.

Il est possible de définir 30 dispositifs RTS  dans le RFXtrx

RTS Somfy et Domoticz

Installation de Domoticz

Comme il faut installer la dernière version (au moins la r1770 du 21/05/2014), j’ai compilé Domoticz sur mon PC en utilisant le tutorial suivant : Installer Domoticz sur Debian. Ne pas hésiter à regarder le reste du Wiki, il est excellent.

Reconnaissance du RFXtrx

Dans l’onglet « setup », choisir « Hardware ». Compléter le formulaire comme ci-après, en donnant un nom au RFXtrx433E (ex: RFX), choisir le type « RFXCOM – RFXtrx433 USB » et si le RFX est bien branché et reconnu, on peut sélectionner dans la liste « Serial Port » le port série USB. Puis cliquer sur « Add ». Le RFX apparait dans la liste des hardwares reconnus.

domoticz add RFXtrx

Définition des devices RTS

Reste à définir un device « Volets roulants » et apparier le RFXcom avec.

Définition d'un volet roulant Somfy dans Domoticz

Définition d’un volet roulant Somfy dans Domoticz

C’est très simple :

  1. Dans l’onglet « Switches », créer un nouveau device comme indiqué sur la copie d’écran. Sélectionner « Blinds » (volets) comme « Swith Type », et « RFY » comme type (le protocole RTS est appelé RFY dans le SDK du RFXtrx). Être patient et ne pas cliquer sur « Add Device », ça viendra plus tard.
  2. Prendre la télécommande d’origine du volet et descendre ce dernier à mi-course
  3. Appuyer 3 s sur le bouton « prog » de la télécommande (dans mon cas, ce sont des interrupteurs radio et le bouton est au dos). Le volet bouge brièvement vers le haut et le bas pour signifier qu’on est en mode apprentissage
  4. Appuyer sur le bouton Test dans Domoticz . En principe l’appariement se fait et le volet bouge !
  5. Cliquer sur « Add Device » pour conserver la définition dans Domoticz

Il ne reste plus qu’à utiliser son volet avec le device nouvellement créé …

volet roulant Somfy dans Domoticz

Notes

  • Sur les six digits de l’ID, mettre le premier à 0 (contrairement à ma copie d’écran) : c’est ce qui est prévu par le SDK RFXCOM. Quelle que soit la valeur de ce digit, on aura au final la même définition
  • La valeur 00 pour le « Unit Code » est prévue pour adresser tous les dispositifs ayant le même ID en même temps
  • Le code pour FHEM est maintenant disponible (tuto en anglais, vu le nombre d’utilisateurs de FHEM en France actuellement)
    .

(A suivre …)

36 Comments

  1. Même si le RFTtrx433e ne fait pas de réception, étant donné qu’il n’y a pas de retour d’état dans le RTS, il n’y a pas moyen de connaitre l’état des volets.
    Donc ce n’est pas bien grave!
    Donc cette nouvelle version est une bonne nouvelle.

    • Bonjour Fred,
      On a moyen de connaître l’état des volets si on utilise une télécommande dont les codes peuvent être lus par le RFXtrx433e. Par exemple une télécommande ou un interrupteur Chacon. Il suffit de mettre de côté ses télecommandes Somfy et utiliser ces dispositifs pour commander les volets indirectement via le logiciel (Domoticz et bientôt FHEM, par exemple). Si on passe systématiquement par le contrôleur domotique, celui-çi « sait » quel est l’état du dispositif. Voir par exemple FHEM : utilisation de la télécommande du kit 3 prises télécommandées Castorama
      Cependant je ne le ferai pas pour des questions de sécurité : autant ça n’est pas gravissime que quelqu’un allume ou éteigne mes lampes en ayant sniffé mes codes de télécommande, autant ça m’embêterait qu’on puisse ouvrir mes volets. Il faudrait utiliser un autre mode de communication pour les interrupteurs : filaire (IPX800) ou zWave par exemple. Je pense que c’est pour des questions de sécurité que la lecture n’est pas intégrée dans le produit.
      Mais tu as raison : le produit est super tel quel et n’a pas de concurrence pour le DIY.

  2. Bonjour Olivier,

    Encore un super tuto ! 1 question :
    – tu sais que j’ai essayé de compiler sur notre dockstar domoticz, mais sans succès. Tu as utilisé une Debian sur ton PC car tu n’as pas réussi à installer Domotics sur ton dockstar ? sinon, as tu essayé ou pourrais tu essayer ? car Domoticz me parait très bien pour moi (même s’il a moins d’option que FHEM pour l’instant mais il évolue bien je trouve) ?

    merci
    fred

    • En fait ça fait déjà deux ans que je suis sous Linux sur mon PC qui n’est pas un foudre de guerre, et finalement Windows ne me manque pas trop, je trouve toujours un logiciel libre qui répond à mes besoins. Du coup c’était assez facile de tester Domoticz.
      Pour le Dockstar, j’ai dans ma to-do-list d’installer une cross-chain sur ce PC pour faire de la compilation croisée, car je pense qu’en natif ça peut durer des plombes (je me suis lassé au bout d’une journée). Mais il faut prendre le temps de le faire … je te tiens au courant
      C’est vrai qu’on a moins besoin de mettre les mains dans le cambouis qu’avec FHEM et c’est facile de mise en œuvre. Mais FHEM est vraiment très flexible et s’adapte à un peu tout ce qu’on veut.

  3. trop fort pour moi ! cross compilation veut dire que tu utilises les ressources du pc pour compiler sur le dockstar ? c’est quelque chose à créer ou il y a des tuto pour ca ?
    En fait, ma compilation a échoué sur le dockstar vers les 42 %, alors même que j’ai mis u disque virtuel de 8 Go. Donc niveau mémoire ca devait aller, mais il était complètement bloqué, même après 8 h.
    La cross compilation résoudra le problème tu crois ?
    J’ai hâte que tu le fasse pour que je puisse y arriver aussi alors !
    merci
    fred

    • La Compilation croisée permet de générer du code binaire pour une autre plate-forme que celle sur laquelle on fait fonctionner le compilateur. Si tu veux t’essayer à compiler pour le dockstar depuis un PC, il faut auparavant mettre en place une chaîne de compilation (toolchain) sur ce dernier.
      Pour le Dockstar, commence par regarder ici.
      Ca m’intéresse aussi d’avoir les résultats : je n’ai pas le temps de m’y pencher pour le moment.

  4. Salut Olivier

    merci pour ta réponse. J’ai laissé un message à Shyd, car je n’ai pas hyper compris la méthode cross compilation.
    Voici le message (il ne répondra pas je pense, vu que le dernier message à plus d’un an). Est ce que tu penses que ca peut marcher ? (mon english est plus pourri que le tiens 😉

    So I decided to try to cross compile. Could you say me, if this lines below, are correct ? (I copy your tutorial but don’t understand all) : I want to execute all this command on a ubuntu PC (ok ?).
    1 wget http://dev.shyd.de/dockstar/se
    2 chmod +x setup_codesourcery.sh
    3 ./setup_codesourcery.sh

    4 cd /usr/src
    5 svn checkout svn://svn.code.sf.net.p/domoticz/code/domoticz
    6 cd domoticz

    7 yes «  » | make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- oldconfig

    8 # enter the toolchain
    9 codesourcery-arm-2009q3.sh
    10
    11 # run the final build process
    12 # you may want to edit –append-to-version and –revision
    13 # try out the effects 🙂
    14 make-kpkg –rootcmd fakeroot –arch armel –cross-compile arm-none-linux-gnueabi- –append-to-version=-dockstar –revision=1.1 –initrd domoticz_image

    and the deb-file is in /usr/src

    I think there is several error, but I don’t know.
    Thanks very much.

  5. Bonjour, et bien moi c’est la réception qui m’intéressait car j’ai un visiophone somfy rts (v200) et je voulais l’utiliser pour commander mon éclairage extérieur via des relais+raspberry bien moins chers que des modules radio. Autant dire que je suis plus que déçu. Du coup il faut que je revoi ma copie car j’ai commandé le rfx433E pour rien au final.
    Vraiment déçu.

    • Moi aussi ça m’interesse, mais Bert ne veut pas l’intégrer pour des questions de sécurité.
      Je lui ai proposé de mettre en place un mode de fonctionnement qui permettrait de sécuriser la réception (au moins autant qu’avec une télécommande somfy normale, car au final le protocole n’est pas sécurisé). Le principe est de n’apprendre que les codes de télécommandes auxquelles on a un accès physique, et de leur donner un ID virtuel (ce qui est facile, car sur les 6 digits de l’ID le premier est à zéro dans le protocole Somfy : on pourrait donner un ID virtuel avec le premier digit à 1 par exemple et le reste qui s’incrémente).
      Pour faire reconnaître une télécommande, il suffirait de mettre le RFXtrx en mode apprentissage pendant 1 mn (commande spéciale à coder dans le firmware), et celui-ci reconnaitrait la commande « program » de la télécommande quand on appuierait le bouton en question. A ce moment il lui suffirait de remplir une table d’équivalence ID réél / ID virtuel et donner lecture de toutes les commandes suivantes reçues de cette télécommande, avec l’ID virtuel …

      Bert ne veut toujours pas (pas le temps de le développer + occupe de la place dans le firmware…). Peut-être que s’il y a d’autres supporters, il se laissera fléchir ?

      • J’ai questionné le support rfxcom sur le sujet (réponse de Bert), et il s’avère qu’il n’est pas envisageable, techniquement parlant, d’utiliser le rfxcom pour réceptionner le RTS, car le RTS reçoit sur une fréquence différente (433.42Mhz) …

        • Bon ben tant pis ;-(
          Il ne reste plus qu’à ne pas utiliser les télécommandes d’origine mais passer systématiquement par le système domotique pour actionner ses volets. Et à les garder en backup !

  6. Très bonne illustration pour ajouter le contrôle de volets somfy avec domoticz et le RFXtrx433E.

    Toutefois, je rencontre un problème. Le protocole RFY n’apparaît pas dans la liste sur domoticz v 1.1812 hébergé sur mon raspberry maisil apparaît bien dans la liste des protocoles dans domoticz hébergé sur mon windows 7. J’ai dû raté un truc sur le rpi qui est sous raspbian, mais je ne sais pas quoi, une idée ?

  7. Oui sur windows ça fonctionne (je commande mes volets) et sur mon rpi, non. Je me dit qu’il y a peut-être des drivers à installer sur le rpi peut-être. Toi ça fonctionne sur ton rpi ?

    P.S. : J’ai plein d’erreurs php lorsque je veux poster.

      • Quand je tape : dmesg, j’obtient ça :
        [ 3.438900] usb 1-1.3: new full-speed USB device number 4 using dwc_otg
        [ 3.584450] usb 1-1.3: New USB device found, idVendor=0403, idProduct=6001
        [ 3.600693] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
        [ 3.613005] usb 1-1.3: Product: RFXtrx433
        [ 3.621788] usb 1-1.3: Manufacturer: RFXCOM
        [ 3.630669] usb 1-1.3: SerialNumber: A1XOSC8F
        [ 4.277241] udevd[156]: starting version 175
        [ 5.208974] bcm2708_spi bcm2708_spi.0: master is unqueued, this is deprecated
        [ 5.385408] bcm2708_spi bcm2708_spi.0: SPI Controller at 0x20204000 (irq 80)
        [ 5.519693] usbcore: registered new interface driver usbserial
        [ 5.707183] usbcore: registered new interface driver usbserial_generic
        [ 5.828279] usbserial: USB Serial support registered for generic
        [ 6.045349] usbcore: registered new interface driver ftdi_sio
        [ 6.451185] usbserial: USB Serial support registered for FTDI USB Serial Device
        [ 6.603002] bcm2708-i2s bcm2708-i2s.0: Failed to create debugfs directory
        [ 6.754193] ftdi_sio 1-1.3:1.0: FTDI USB Serial Device converter detected
        [ 6.955247] usb 1-1.3: Detected FT232RL
        [ 7.049306] usb 1-1.3: Number of endpoints 2
        [ 7.169292] usb 1-1.3: Endpoint 1 MaxPacketSize 64
        [ 7.284831] usb 1-1.3: Endpoint 2 MaxPacketSize 64
        [ 7.388729] usb 1-1.3: Setting MaxPacketSize 64
        [ 7.484209] usb 1-1.3: FTDI USB Serial Device converter now attached to ttyUSB0
        Donc ça à l’air d’avoir le driver, non ? C’est normal qu’il ne marque que RFXtrx433 et non RFXtrx433E ? Sur le rpi j’ai domoticz v1.1812 et toi ? Mon RFXtrx433E est bien déclaré comme sur ton screen et il capte et actionne mes autre sondes/interrupteurs.

        • Le RFX est donc bien reconnu par Linux et Domoticz
          Moi c’est la version 1.1797 que j’ai compilée (sur PC sous Linux, je ne l’ai pas encore mis sur raspberry pi) et ça fonctionne bien.
          Ce qui ne fonctionne pas chez toi c’est que RFY n’est pas dans la liste « Type » lorsque tu veux ajouter le device ?

          • Exacte sur mon windows 7, je l’ai. Mais au niveau consommation électrique je préfère laissé tourner mon rpi ^^

      • J’ai trouvé si on fait une installation manuel de domoticz à partir d’un raspbian, il y un truc qui man (je ne sais pas quoi, mais je vais comparer les deux pour essayer de trouver ^^). Par contre si tu prends l’image sd card pour rpi et que tu passe en mise à jour de domoticz beta, là le RFY apparaît dans la liste des types.

  8. Salut Olivier,

    Bonne nouvelle ! j’ai compilé cette nuit domoticz sur mon dockstar squeeze, en 1 h. Ca marche super. Et je n’ai rien changé à ma config (j’ai juste arrêter fhem). Peut etre que cette version 1.1812 a modifié qqchose.
    Moi qui pensais acheté un Rpi, finalement le Dockstar le fait très bien. Et ca prend bcp moins de RAM que FHEM (5.3 Mo au lieu de 12.4 Mo).
    Et franchement pour un newbie comme moi, domoticz est super simple à utiliser. Le 1-wire que j’essayer de faire fonctionner depuis 6 mois sur Fhem, a été détecté directement par domoticz (le owserver de fhem n’a jamais voulu entrer en contact avec mes sondes, mais seulement avec le serveur sur le port 4304).
    bonne continuation, et comme je vois que tu as un Rpi et domoticz sur un PC, je continue de te suivre
    merci
    fred

  9. Bonjour je voulais savoir le nombre de codes de télécommande que le moteur peut mémoriser. Pour gérer mes volets par domotique avec Domoticz mais aussi par les boîtiers natif.
    Merci

    • Trouvé une doc pour le moteur Oximo RTS qui indique que le nombre maximum de points de commandes associé est de 12 (dépend probablement du moteur)

      Comme la doc indique que la limite pour le nombre de capteurs est de 3, cela semble montrer que qu’ils sont reconnus différemment par le moteur : je pencherais pour l’utilisation du protocole RFY-EXT pour les capteurs, mais ne peux pas le vérifier. Si quelqu’un a une idée, ça m’intéresse, pour ma culture …

      Je ne sais pas non plus ce qui se passe si on atteint la limite : il est probable qu’on ne peut pas appairer de nouvel actionneur avec le volet. A moins que le premier soit remplacé par le nouveau ?!!!

  10. Bonjour,

    J’utilise Domoticz avec le Rfxtrx433e depuis un mois maintenant. Tous mes volet Somfy fonctionnent correctement depuis l’interface. Aujourd’hui j’ai ajouté deux volets filaires Somfy qui me restait avec un micro recepteur RTS Somfy. Le premier a été associé directement sur l’interface mais le second ne voulait rien savoir. J’ai tenté plusieurs ID et Unit code différents et au bout d’un bon moment c’est passé. Par contre je pilotais mon nouveau volet en même temps qu’un ancien, comme s’ils avaient le même code. J’ai supprimé l’ancien et je ne peux plus l’ajouter depuis l’interface…
    Une idée ?

  11. Bonjour, j’y ai pensé mais le module est pour l’instant à maxi 5m de chaque volet…
    En raccordant le module sur mon PC, je remarque bien qu’en appelant certain ID plusieurs volets réagissent…

    • Personnellement j’ai un volet sur 5 qui ne fonctionne pas à cause d’un problème de traversée de plusieurs murs (il est à côté des autres mais la radio c’est capricieux….)
      Autres pistes :
      – limitation par le firmware du rfx du nombre de télécommandes virtuelles (16 sur les premières versions et 30 maintenant)
      – le moteur accepte lui aussi un nombre limité de télécommandes (12 en tout cas sur un modèle, cf commentaires plus haut)
      Peut-être qu’à force d’essayer des tas de codes différents tu as atteint une de ces limites ?
      Il y a moyen de faire oublier au rfx ses télécommandes et pareil pour le moteur (dans ce denier cas je n’essaierais pas l’oubli total, mais seul celui d’une en particulier …)

  12. J’essaie en vain de connecter en USB un RFXtrx433E à un PC sous Windows 7. Le RFX est reconnu mais un pilote est cherché et non trouvé (donc pas de port com pour rentrer sous RFXmngr.
    Quelqu’un a-t-il une idée ?
    Merci

  13. Bonjour,

    Je souhaite acquérir un RFXtrx433E pour piloter mes volets roulants mais connectés à des modules (de réception) DI-O branchés sur mes volets. Ma question est: puis-je connecté ce RFXtrx433E sur ma bbox ou Bbox sensation par exemple (pour l’alimentation). Je piloterais mes volets à distance via l’aplication Zibase Multi.
    Merci pour vos réponseS.

    • le RFXtrx433 doit être connecté sur la box domotique (en l’occurence la zibase multi avec un adaptateur USB OTG). Il n’est pas une box autonome lui-même

  14. bonjour
    avec une telecommande telis 4 RTS, donc 4 boutons, soit 4 volets (ou groupes de volets) :
    j’ai programmé le volet bouton 1 passage en mode programmation par appui 3s,
    sur rfxmanager id 1-00-01 et unit code 1, program, transmit. tout est ok . ce volet fonctionne avec rfxtrx433e
    passage au deuxieme volet bouton 2, avec la meme telecommande (4programmes), passage en mode programmation par appui 3s,
    sur rfxmanager id 1-00-02 et unit code 1, program, transmit. mais cette programmation ne donne rien.
    quel est votre avis ? merci de votre retour

    • Je ne vois pas. Ça m’étonnerais que vous ayez atteint la limite du nombre de télécommande admise par le moteur, à moins que vous n’ayez fait de nombreux essais avec d’autres ID ou télécommandes ?
      Il faudrait demander au support RFXcom
      Si vous trouvez, je suis intéressé par la réponse car ça peut toujours servir.

  15. Bonjour,

    Si problème avec les volets RTS, (conflits – 2 volets sur le même canal – volet « muet »…) il suffit de réinitialiser la mémoire des moteurs concernés avec les micros coupures au tableau (Voir doc SOMFY)…
    Attention : Il vous faudra reprogrammer les fins de courses… voire le sens de rotation…

  16. Bonjour,
    Ayant besoin de contrôler mes volets Somfy RTS depuis android, je me suis tourné vers une solution bien plus simple avec le AirSend. Je ne regrette vraiment pas mon achat et vous fait par de mon expérience.

    Bien à vous.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *