Arduino et Télécommande Somfi Telis 4 RTS (volets roulants)

Bonjour à tous,

Petite présentation de mon second projet Arduino mené à bien, à savoir l'asservissement d'une télécommande Somfi Telis 4 RTS par l'arduino.

Objectif
Le but est de pouvoir commander des volets roulant Somfi depuis un PC, et, par la suite, par internet. Somfi propose une solution professionnelle à un prix prohibitif plus un abonnement qui permet de se connecter sur leur site web pour contrôler son installation.
Le but étant ici de le faire pour beaucoup moins cher, sans abonnement, et au passage d'engranger un peu de pratique sur ce genre de projet.

Matériel Requis
1 Télécommande Somfi Telis 4 RTS - 5 cannaux (en occasion trouvée sur ebay)
1 Freeduino Eleven (comptaible Arduino Uno avec en prime une petite zone de test)
1 CNY74-4 (Opto-coupleur 4 cannaux)
4 résistances 47 Ohm (en entrée de l'opto-coupleur)
1 Connecteur mâle simple rangée (1x36) pour CI (pour réaliser deux connecteurs)
1 nappe de lecteur de disquette (pour relier la télécommande à l'Arduino)
Tout le nécessaire pour souder et un peu de fil fin pour router sur la zone de test (j'ai pris des reste de nappe informatique)

Prix
Hors matériel de soudure, moins de 100 €

Réalisation
Face arrière de la télécommande

Face avant de la plaquette la télécommande

J'ai identifié les deux pôles des 4 boutons poussoirs (celui à l'arrière sert uniquement lors de l'apairage) pour
y souder mes fils. J'ajoute aussi une paire pour alimenter la télécommande depuis l'arduino, et se passer de la pile.

Dessous une fois soudé (la pile est encore présente)

Dessus une fois soudé

Ensuite fermeture de la télécommande (un peu au chausse-pied) découpe d'une fenêtre pour faire passer mon connecteur
et pistolet à colle pour faire tenir la nappe sans risque d'arrachage. J'ai eut la main un peu lourde sur le pistolet à colle et la télécommande n'est surement plus ouvrable par des moyens conventionnel.

Pour finir soudure des éléments du circuit (simplissime) directement sur la zone de teste du Freeduino Eleven. La aussi je me suis
loupé car j'avais mis les mauvaise résistance, et du coup ma re-soudure est une version Frankenstein.

Télécommande et Freeduino vu de dessous

Télécommande et Freeduino vu de dessus

Le sketch arduino est très simple, tout est commandé en mode série, par l'envoie d'un caractère :
A : Bouton Up On
a : Bouton Up Off
1 : Bouton Up On x ms puis Off
B : Bouton Stop On
b : Bouton Stop Off
2 : Bouton Stop On x ms puis Off
C : Bouton Down On
c : Bouton Down Off
3 : Bouton Down On x ms puis Off
D : Bouton Canal On
d : Bouton Canal Off
4 : Bouton Canal On x ms puis Off

Ci-joint le projet sous Fritzing, le source Arduino et deux photos Haute résolution.

Des questions, des suggestions ?

SomFOO-Fritzing.zip (47.4 KB)

SomFOO-Arduino.zip (782 Bytes)

Bravo. Simple et efficace.
Je retiens l'idée du CNY74-4 pour simuler l'appuie sur les boutons poussoirs.
J'avais utilisé des relais pour ma part.

Gromain

Bonjour,

Je suis sur le même projet que toi.
J'ai déjà bien avancé.
Je pilote mes volets (11 fenêtres pilotées par une commande Centralis RTS) depuis une page web (séparée en deux : une partie php/html pour l'envoi des ordres à la commande et une partie visualisation par une Ip cam du fontionnement des volets). Cette page fonctionne en ligne depuis une adresse en IP fixe et est accessible depuis un PC à distance ou un Iphone.

Pour le moment, je ne pilote que des leds....
Je pensais juste piloter les poussoirs de la commande avec un transistor 2n2222.

Tu parles de canaux pour la télécommande. Peux-tu nous en dire plus (cela permet de changer le choix du volet ? Comment gères tu cela ?

Tu as choisis un optocoupleur. Peux tu nous donner le schéma de câblage de ce circuit avec l'arduino qui semble un meilleur choix ?

J'aimerai bien faire évoluer ce projet avec une station météo. J'ai lu que certaines étaient interfacables avec un arduino..... mais LESQUELLES ???? Quels sont les meilleurs choix ??

Merci

colassep:
Pour le moment, je ne pilote que des leds....
Je pensais juste piloter les poussoirs de la commande avec un transistor 2n2222.

J'ai préféré une isolation totale entre les deux circuits, même si au final j'alimente la télécommande depuis l'arduino.

colassep:
Tu parles de canaux pour la télécommande. Peux-tu nous en dire plus (cela permet de changer le choix du volet ? Comment gères tu cela ?

La télécommande Telis 4 RTS commande 5 canaux (volets) différents, le passage d'un canal à l'autre se fait par un appui sur le 4ième bouton de la télécommande. Le canal choisi est mémorisé au niveau du soft qui commande l'arduino (qui n'est pas développé par moi).

colassep:
Peux tu nous donner le schéma de câblage de ce circuit avec l'arduino qui semble un meilleur choix ?

Le shéma Fritzing est join au premier post.

colassep:
J'aimerai bien faire évoluer ce projet avec une station météo. J'ai lu que certaines étaient interfacables avec un arduino..... mais LESQUELLES ???? Quels sont les meilleurs choix ??

Les stations Lacrosse semblent s'y préter, mais attention au modèle. Un exemple d'application

Merci pour tes infos.

Je n'ai pas de bouton supplémentaire sur mon RTS (j'ai les mêmes télécommandes pour chacun des volets + un central (ils doivent avoir une programmation différente). Ta commande est donc plus intéressante.

Pour le fichier Fritzing, je dois mal m'y prendre car lorsque j'ouvre un des trois fichiers intégrés au Zip, la page reste vide....

J'ai vu qu'il existe des stations La Crosse sympa... Les models 2801 semblent en 868 Mhz. C'est interfacable avec un arduino pour pas trop cher ? Ce modèle est certes cher mais complet et comme je ne suis pas initié, j'ai peur de tomber sur un modèle un peu merdique !! Ou bien de devoir rajouter des options qui au final coûteraient encore plus cher !

En tous cas, je suis bien content de voir que ce forum est rempli de passionnés. Je débute et se sentir moins seul est un grand réconfort.

Ton projet est terminé ? Tu utilises une page web pour le contrôle ?

Merci beaucoup.

colassep:
Je n'ai pas de bouton supplémentaire sur mon RTS (j'ai les mêmes télécommandes pour chacun des volets + un central (ils doivent avoir une programmation différente). Ta commande est donc plus intéressante.

Si c'est du Somfy tu peux acheter une télécommande Telis 4 et disposer des 5 canaux sur une seule télécommande. Maintenant avec 11 volets à commander, ça va vite devenir compliqué (et cher). La solution ultime serais bien sur de pouvoir commander les volets directement avec un signal 433Mhz issu de l'Arduino, mais là c'est une autre histoire.

colassep:
Pour le fichier Fritzing, je dois mal m'y prendre car lorsque j'ouvre un des trois fichiers intégrés au Zip, la page reste vide....

"Chez moi ça marche", mais au pire il y a une copie d'écran de l'implantation dans le premier post. De toute façon, le montage est extrêmement simple.

colassep:
J'ai vu qu'il existe des stations La Crosse sympa... Les models 2801 semblent en 868 Mhz. C'est interfacable avec un arduino pour pas trop cher ? Ce modèle est certes cher mais complet et comme je ne suis pas initié, j'ai peur de tomber sur un modèle un peu merdique !! Ou bien de devoir rajouter des options qui au final coûteraient encore plus cher !

La je ne peut pas t'en dire beaucoup plus, seulement que toute les solution Arduino que j'ai vu sont en 433MHz.

colassep:
Ton projet est terminé ? Tu utilises une page web pour le contrôle ?

"ma partie" du projet est terminée. J'ai réalisé ce petit montage pour un ami équipé en Somfy. Je sais que mon montage fonctionne et il viens de commencer la partie PC pour gérer tout ça, d'abord avec un petit soft, puis en HTTP. Mais je n'en sais pas plus sur ses projets.
Le but était d'asservir ces 5 canaux et permettre une extension future - mission accomplie !

Effectivement, je ne peux pas piloter chacun des volets avec mon système. Je pilote tout d'un coup (Somfy aussi), c'est d'ailleurs ce qui m'interesse : pouvoir tout ouvrir ou fermer quand je ne suis pas chez moi. Il va falloir que je me penche aussi sur les histoires d'heures (arduino n'a pas d'horloge je crois), afin de pouvoir ouvrir ou fermer au coucher du soleil par exemple (sans me connecter au web). Je vais chercher dans les topics ce qui traite de ce sujet.

Pour le Fritzing, ca y est !! Tes fils verts et oranges qui sortent de l'opto et qui vont sur un bornier sont tes sorties vers les volets ?

Pour le 868 Mhz... je vais chercher un peu si je trouve des infos... le 433Mhz tend à disparaitre dans le futur.

Il doit être content ton pote ! C'est sympa ...

Il va falloir que je me penche aussi sur les histoires d'heures (arduino n'a pas d'horloge je crois), afin de pouvoir ouvrir ou fermer au coucher du soleil par exemple (sans me connecter au web)

il te faut une horloge RTC, mais si c'est juste pour ouvrir/fermer matin et soir, il y a encore plus simple en utilisant une simple photorésistance sur une entrée analogique (ça marche bien chez moi)

Gromain

colassep:
Pour le Fritzing, ca y est !! Tes fils verts et oranges qui sortent de l'opto et qui vont sur un bornier sont tes sorties vers les volets ?

Tout à fait.

Gromain59:
il te faut une horloge RTC, mais si c'est juste pour ouvrir/fermer matin et soir, il y a encore plus simple en utilisant une simple photorésistance sur une entrée analogique (ça marche bien chez moi)

Oui, c'est une solution beaucoup plus élégante, d'autant plus qu'avec l'horloge temps réel, il faudrait en plus gérer un éphéméride. Cependant l'horloge peut avois d'autres applications. Pour ma part j'utilise le Module RTC de sparkfun.

Merci Pixelk pour tes précisions.

Effectivement, avoir une horloge RTC semble bien mieux (est-ce compliqué à gérer au niveau de l'arduino ? Qu'entends tu par gérer un éphéméride ?)

Quand à la photorésistance, j'y avait bien pensé, mais ouvrir les volet le matin n'est plus possible si elle est à l'intérieur car il fera noir !
De plus, il fait jour très tôt en été, et il faudra pouvoir gérer le retard d'ouverture pour simuler un réveil normal.

La solution de la date et l'heure web (depuis mon site php) n'est pas envisageable car il faut executer la page pour que le code correspondant s'execute (a moins que vous ayez une parade ??)

Désolé pour la présentation de mon texte. Je bricole avec les "Quote" et ne parviens pas à reprendre vos commentaires !!

Merci Gromain à toi pour tes conseils.

colassep:
Effectivement, avoir une horloge RTC semble bien mieux (est-ce compliqué à gérer au niveau de l'arduino ? Qu'entends tu par gérer un éphéméride ?)

Quand à la photorésistance, j'y avait bien pensé, mais ouvrir les volet le matin n'est plus possible si elle est à l'intérieur car il fera noir !
De plus, il fait jour très tôt en été, et il faudra pouvoir gérer le retard d'ouverture pour simuler un réveil normal.

Ah en fait tu ne veux pas vraiment le commander en fonction du lever et coucher du soleil, mais selon des heures préprogrammées ? Là effectivement un RTC est la meilleure solution.
Sinon, pour suivre le cycle solaire, une photorésistance s'installe bien sur au soleil !
Pour l'éphéméride, c'était au cas où tu voulais suivre les jours solaires, l'horloge ne suffit pas, il faut savoir quand se lève et se couche le soleil chaque jour, d'où le besoin d'un éphéméride.

colassep:
La solution de la date et l'heure web (depuis mon site php) n'est pas envisageable car il faut executer la page pour que le code correspondant s'execute (a moins que vous ayez une parade ??)

Si tu utilise déjà un Ethernet Shield, rien ne t'empêche d'utiliser le Client NTP (network time protocol) qui est une des démo de la librairie.

Ok Gromain, je comprends pour l'éphéméride.

Ha... interessant ce Client NTP (network time protocol). Je vais aller voir cela de plus près.

En fait j'ai une arduino depuis 4 jours et je découvre tout !!! C'est d'enfer !

Pour l'horloge RTC, cela utilise combien d'E/S sur la carte arduino ? Une seule ?

Merci beaucoup.

colassep:
Pour l'horloge RTC, cela utilise combien d'E/S sur la carte arduino ? Une seule ?

2 pins :
ds1307rtc, tutoriel ladyada

Jean-François:

colassep:
Pour l'horloge RTC, cela utilise combien d'E/S sur la carte arduino ? Une seule ?

2

Je dirais plutôt les 3 du SPI + 1 de slave select (pour un chip en SPI bien sur).

*** EDIT ***

Ah pardon, tu fais référence à une puce en I²C, donc 2, toutes mes excuses

colassep:
Tu parles de canaux pour la télécommande. Peux-tu nous en dire plus (cela permet de changer le choix du volet ? Comment gères tu cela ?

Hello,

je suis l'heureux destinataire du montage.
Le but était de trouver un équivalent pas trop cher à Home Motion: http://www.somfy.fr/accueil/decouvrir/nos-produits/home-motion-by-somfy.html
J'ai un PC allumé 24h/24, accessible à distance, donc une liberté uniquement limitée par mes compétences pour l'outil.

J'ai d'abord commencé par une application qui simule la télécommande:

  • les 4 boutons
  • gestion et affichage du canal courant

J'ai fait une petite application en C++, en utilisant Qt ( http://qt.nokia.com/ ) et QSerialPort ( http://gitorious.org/inbiza-labs/qserialport ).
La gestion de la télécommande est terminée, il ne reste plus qu'à rendre ça un peu joli ( je vais essayer de mettre une vraie image de la telco somfy ).

Pour la suite, je vais passer sur 3 axes:

  1. une interface web super light pour que ça soit accessible via un smartphone (surtout que j'ai un vieux nokia 5800)
  2. un moyen de programmer les volets pour simuler une présence pendant les vacances
  3. un moyen de créer des "raccourcis"... Par exemple le soir, on ferme souvent 3 volets en entier et on laisse le dernier ouvert de quelques cm pour que le chat puisse sortir sur la terrasse. L'idée est, en une manipulation, de lancer cette commande (volet 1 => down, volet 2 => down, volet 3 => down, volet 4 => up, attendre jusqu'à ce qu'il soit en haut => down, puis stop après x secondes).

Pour faire tout ça, je pense modifier mon appli télécommande pour qu'elle soit capable de:

  1. accepter des ordres par ligne de commande (ex: "somfy.exe -cmd=up", "somfy.exe -cmd=down", "somfy.exe -cmd=channel"...)
  2. pouvoir gérer des séquences enregistrées ( "" ), voire un peu plus évolué ( "<select=5>" )

Puis ensuite avec les tâches planifiées windows programmer le tout.
Pour la partie web, je ne sais pas encore, j'ai les connaissances de base en php, mais je vais ptet utiliser un outil que fait ma boite pour ça.

Pour l'instant pas trop de souci, si ce n'est la gestion du canal courant, et de l'état "en train de changer de canal", mais rien d'insurmontable.

Bonjour,

ayant moi aussi des volets roulants Somfi, je me suis intéressé au montage proposé dans le 1er post et l'ai couplé avec une Ethernet shield pour pouvoir gérer les commandes directement en http depuis mon téléphone par ex.

Merci pour les infos que vous avez fourni, ceci étant mon 1er essai avec une arduino, elles m'ont étées d'une grande aide.

Pour mon montage, j'ai juste changé l'un des pins utilisés par la télécommande (le 4), l'ethernet shield l'utilisant déjà (j'ai pris le 6).

Et pour ceux qui seraient intéressés, voici le code que j'utilise.
Il fait un peu moins de 16ko au final avec les librairies.

Il permet la gestion des volets par le port série, et par le serveur web.

Ma conf par défaut utilise l'ip 192.168.1.246

Attention, il n'y a pas d’authentification de gérée pour le moment...

Merci encore!

Somfi_Web.ino (8.44 KB)

(deleted)

Bonjour tous,

@pixelk (ou à quelqu'un ayant la solution) : comment as tu identifié les broches de chaque bouton ? j'ai beau testé dans tous les sens et je ne trouve rien.... j'ai pourtant toute la chaine raspberry pour l'envoi en 433, l'arduino pour la réception, l'optocoupleur et je n'arrive à trouver la bonne connexion sur les broches des boutons (ils sont similaires au tien mais 2 broches sont situées chacune entre 2 autres broches).

Merci beaucoup !

Salut,

moi j'avais contrôlé avec un multimètre (sans pile dans la télécommande) en pressant les boutons et voyant sur quels pins j'avais un contact ou pas de mémoire...

Bon courage!

Bonjour et merci pour la réponse

c'est pourtant ce que je fais mais le bouton a l'air peu commun et je n'arrive pas à trouver de lien entre les broches. comment testes tu exactement avec le multimetre ?

Je ne connais pas ce type de bouton... dès que j'a trouvé comment mettre une photo je vous montre ça.