Go Down

Topic: Protocole Somfy (Reverse engi RTS) (Read 82482 times) previous topic - next topic

groy

ok j'vais essayer de trouver un peu de temps pour manipuler le logiciel que je connais pas... on verra bien !

bon courage

Black_Ware

Durée de l'entête : 2.45ms
Durée d'un demi temps d'horloge : 650us
Durée d'un temps d'horloge complet : 1.30ms
Pulses : 44
Fréquence : 229.327 Hz

Voilà mon analyse qui, je l'espère est correcte. :3

Je joint un screen + le fichier du projet si cela intéresse quelqu'un  ^_^



http://www.mediafire.com/download/kyel4n7tgd48i3d/base.olp

PS : j'obtiens une erreur lors de l'ajout de fichiers joints  ;)


chabot380

Bonsoir

Un peu de lecture avant de vous em....bêter !  :smiley-mr-green:
SOMFY c'est rolling code !

http://www.geeek.org/domotique-les-telecommandes-a-code-tournant-801.html

A+
ORDINAUSORE 2Ghz AMD64 QUI S'ALLUME EN 48 SECONDES AVEC UBUNTU 12.04
ARDUINO UNO / Shield Ethernet / RTC DS1307
Programmation Python et j'apprends le C
Technicien Télé Vidéo à la retraite.


Black_Ware

Hello tout le monde  ;)

Après avoir trouvé un peu de temps j'ai exporté plusieurs trames en csv dans le but d'essayer de les décoder et de trouver des points communs. J'ai essayé un codage en 8 bits.
Cependant ce n'est qu'après que je me suis rendu compte que les trames n'avaient pas toutes la même taille  :smiley-yell:
Je vous lie donc le fichier que j'ai créer aujourd'hui avec plusieurs trames.

Thank for your precious help  :~

mck21

Si je apporter ma pierre, http://www.google.com/patents/EP1696402A1?cl=fr donne quelques infos, comme la durée de la trame (140ms) et la taille des données (56bits)

Black_Ware


liollury

Hello,

j'avai déjà jeter un coup d'oeil sur ce protocol (plus bourrin je soude un fil entre la sortie du controlleur et l'emetteur RF sur une télécommande et j'analyse via la prise audio de mon pc, donc pas de parasite).
J'avais remarquer comme toi que le code ne change pas systématiquement mais plutot en fct du temps (je crois toutes les minute de mémoire).
Pour le reste, et meme si j'avai un signal propre, je n'ai pas su décoder la trame (ne sachant déjà pas si j'avai un 1 ou un 0 devant les yeux :D )

Black_Ware

Content de savoir que je ne suis pas le seul à galérer x)
J'essaye juste de me procurer une télécommande rts pas chère depuis un petit bout de temps pour pouvoir souder dessus sans prendre le risque de tuer ma seul télécomande (et donc mon volet par la même occas  :smiley-mr-green: et puis comme ça, c'est moins bourrin) Puis j'essayerais de jeter un coup d'oeil du coté de la rom et de l'eeprom voir si il n'y a pas quelque chose d'intéressant  ]:)

Cependant comme je ne suis pas un pro dans ce domaine ^^ je risque de patauger un chouil au début  :smiley-fat:


Black_Ware

#24
Jun 08, 2014, 08:20 pm Last Edit: Jun 08, 2014, 08:22 pm by Black_Ware Reason: 1
Bonjour tout le monde,  ;)

Après avoir récupérer une ancienne télécommande RTS, j'ai essayé de lire le programme contenu dans le MCU, ce fut un echec cuisant, cependant je me suis penché sur la demande de brever que nous a donné mister mck21.
Il s'avère, que ce document est une véritable mine d'or, nous savons donc que :
                                                      - La durée de transmission d’une trame complète selon le protocole RTS est de l’ordre de 140 ms, en incluant la synchronisation hardware, la synchronisation software
                                                       - Que la trame est constitué au total de 56 bits
                                                       - Qu'il utilise un code Manchester et contrôle systématiquement la fin de trame
                                                       - un front montant représente un bit de logique 1 et un front descendant représente un bit de logique 0.  :smiley-sweat:
                                                       - La trame contient un total de 56 bits
                                                       - Le 1er octet (8 bits) ==> est une clé random pour le cryptage
                                                       - Le 2nd octet (4 bits) ==> la commande (haut, stop, bas,...)
                                                       - Le 3e octet (4 bits) ==> checksum
                                                       - Le 4e et 5e octet (8 bits + 8 bits) ==> rolling code
                                                       - 6e, 7e, 8e (8 bits + 8 bits + 8 bits) ==> adresse de l'émetteur

Voila qui va me faire avancer un peu plus.  :P

PS : ma télécommande de base semble utiliser la v1 du protocole RTS contrairement à la 2nd qui utiliserait la v2 (avec les 6 ou 12 bits de synchro obligatoires + infos entre les trames de bases).

Artouste


Bonjour tout le monde,  ;)
...

Voila qui va me faire avancer un peu plus.  :P

PS : ma télécommande de base semble utiliser la v1 du protocole RTS contrairement à la 2nd qui utiliserait la v2 (avec les 6 ou 12 bits de synchro obligatoires + infos entre les trames de bases).

C'est bien de ne pas lacher "le morceau"  :smiley-mr-green:  mais il persiste là , un "bon paquet" d'inconnues à connaitre  avant de resoudre simplement l'equation   :D

nikhosa

Salut à tous,

Ce sujet m'intéresse aussi. Je suis tombé sur le forum Arduino bien que ne faisant pas partie de la communauté (mais ca ne me fait pas peur de m'y mettre !)

En poussant mes recherches, je suis tombé sur ce lien (en anglais)
http://pushstack.wordpress.com/
avec les détails techniques ici http://pushstack.wordpress.com/somfy-rts-protocol/
Et le résultat sur github https://github.com/dimhoff/radio_stuff/blob/master/decoders/decode_somfy.c

C'est pour du Somfy US, mais on peut spéculé que le protocole est le même.

Voilà, j'espère que ca vous avancera, tenez le forum au courant des développement ! Je n'ai pas le matériel pour le moment pour me lancer dans les tests, mais je suis sûr que les plus avancés d'entre vous arriveront à quelque chose !

Black_Ware

Salut Nikhosa,

Tout d'abord merci pour tes liens qui ont l'air à 1st vue, extrêmement prometteurs.
Je vais regarder tout ça à tête reposé dès demain si je trouve le temps.  :smiley-mr-green:

Content de savoir que la communauté arduino à un nouveau membre ^^

AingTii

Hi,

ok, I'm just try to log the signal with the arduino, but right now i'm hard working
about, because I'm just a beginner in programming, many years ago I program with Basic
on a Comodore C64/C128.
But in C I have to learn alot.

So I connect a Somfy remote with my Arduino Uno.
Ardunio should send the signal, maybe every 5 Sec, than after a little time should log
the signal on an SD card.
So the plan.

But I have a little Problem about sending, if i programm it, its send the whole time, even I stopp
it but arduino is log the signal.
But its really important to adjust the time when send, when log and in witch width it has to log every bit
In the analysis I found, the the minimum clock is 650 micro seconds, but if it is an Manchester, we have to look if it is 0 or 1 because I think the manchester is ls just looking is it going up to 1 oder down to 0

I'm also a very beginer in all of that.....

So hoping we can manage it together.

The background is, that I like to control my Somfy Motors in the house.
I know I can by an Ta Homa Box, but I don't like the system, that I have to bye an
expensiv Box and the rent an Server. I like that all in my network not in the internet....
If I like to controll, I will use an VPN direktly not over an external Server I cant control, but
the server owner can control.....

thanks
Jens

yoyolb

Bonjour,

Je confirme qu'en appliquant les indications données sur le site http://pushstack.wordpress.com/somfy-rts-protocol (URL donnée dans un précédent post par nikhosa) j'arrive à lire les trames transmises par une télécommande TELIS ainsi qu'à piloter mes volets.

Matériel: ARDUINO UNO + module RR3-433 pour la réception + module RT4-433 pour l'émission (433.92 MHz).

A noter: un écart parfois jusqu'à 30% sur la durée des trames (entre les valeurs théoriques et les valeurs mesurées).

Je possède par ailleurs des volets d'une autre marque (télécommande M-SOFT, 868.3 MHz, qui semble émettre en FSK) et je suis preneur d'infos à ce sujet.

Lionel.

Go Up