Protocole Somfy (Reverse engi RTS)

Hello grande communauté d'arduino.cc !

Je me dirige vers vous aujourd'hui car après beaucoup de recherches, je trouve peu (pour ne pas dire pas) d'informations concernant le protocole de communication de Somfy (RTS il me semble). Mon but étant de communiquer entre l'arduino et mes volets pour finaliser en quelques sortes mon projet de domotique.
C'est donc là que j'ai eu une idée venue tout droit du ciel :cold_sweat: Pourquoi ne pas "reverser" le protocole ? ]:smiley:

Pourquoi ne pas utiliser d'autres télécommandes jumelées ? Tout simplement car je ne tiens pas a acheter un dizaine de télécommandes a 50€ pour au final les souder et avoir un résultat assez "bordélique" :zipper_mouth_face: .

C'est donc là que je me tourne vers Vous pour savoir par où commencer. :smiley:
Sachant que je dispose d'un bus pirate v4 de Dangerous Prototypes (très très très utile 8) ), de modules émit/receiv 433Mhz et que je n'ai toujours pas reçu un analyseur logique ainsi qu'un kit rx/tx 868 Mhz qui ne devraient pas tarder maintenant.
Je souhaiterais éviter toutes manip "dangereuse" pour la télécommande car sans télécommande :slight_smile: plus de volets. S'il le faut
j'achèterais une autre télécommande que je jumèlerais pour pouvoir la torturer :grin:

Bonne soirée :wink:

Black :sleeping:

Black_Ware:
...
Sachant que je dispose d'un bus pirate v4 de Dangerous Prototypes (très très très utile 8) ), de modules émit/receiv 433Mhz et que je n'ai toujours pas reçu un analyseur logique ainsi qu'un kit rx/tx 868 Mhz qui ne devraient pas tarder maintenant.
Je souhaiterais éviter toutes manip "dangereuse" pour la télécommande car sans télécommande :slight_smile: plus de volets. S'il le faut
...

Bonsoir
sujet discuté ici recemment il me semble (j'ai un doute sur le "somfy")
edit : non c'etait pour du "portail" mais ça ne change fondamentalement rien "au probleme" *
Il semble que le/les protocoles RF somfy soient assez lourds

tu semble disposer ou bientot disposer d'une bonne base , mais avant de resoudre par RI le "protocole"
il faut faire de l'analyse de trames en profondeur

un exemple ici où à plusieurs et pour "le fun" pour la plupart il y a eu de la collaboration sympathique :grin:

le probleme surtout là avec du produit "captif et onereux, genre volets" c'est surtout que personne à commencer par bibi , ne va pas investir juste pour "jouer" :grin:

debut du topic (23 pages)
http://forum.arduino.cc/index.php?topic=109892.0

au passage , un maintenant incontournable pour déjà bien regarder est d'utiliser un dongle compatible SDR à - de 20€ pour faire de l'acquisition et de la comparaison sur de la large bande 434 /868/... autres

exposé succintement ici à l'epoque (meme topic , mais ... loin :grin: )
http://forum.arduino.cc/index.php?topic=109892.msg865028#msg865028

Je crains que Somfy utilise du rolling code (pour éviter qu'on puisse rentrer chez toi en hackant une télécommande pour ouvrir tes volets).

Re / Bonsoir

au passage , un maintenant incontournable pour déjà bien regarder est d'utiliser un dongle compatible SDR à - de 20€ pour faire de l'acquisition et de la comparaison sur de la large bande 434 /868/... autres

exposé succintement ici à l'epoque (meme topic , mais ... loin smiley-mr-green )
Interrupteurs domotique Blyss de castorama - #293 by Artouste - Français - Arduino Forum

Moi qui commençais à me demander si un tel outils existait x)
Je vais voir si je peux l'acheter :grin: Merci pour l'info

En ce qui concerne le tropic sur les Inter Bliss j'étais déjà tombé dessus et avais lu les 20 pages à la volée (je sais c'est pas bien :P) alors je vais revoir un peu ça :wink:

Je crains que Somfy utilise du rolling code (pour éviter qu'on puisse rentrer chez toi en hackant une télécommande pour ouvrir tes volets).

Pour le rolling code il me semble (si mes souvenirs sont bons) que le protocole Bliss en utilisait. J'espère juste qu'il rajoutera juste assez de piquant pour le fun sans faire tomber le projet a l'eau ]:slight_smile:

Pour l'analyse de la trame en profondeur je ne suis pas sûre d'avoir "pour l'instant" le matériel nécessaire (je pense surtout a l'analyseur logique et au stick compatible avec le SDR). Cependant je vais quand même essayer quelques trucs :wink: (je sais pas encore quoi mais on verras bien 8))

Merci de vos réponses !
Bon début de journée !

Black

PS : Je ne pense pas avoir le temps de tester ça demain (journée débordante). Je pense que je pourrais vers Dimanche midi.

Bonjour

Sachant que je dispose d'un bus pirate v4 de Dangerous Prototypes (très très très utile smiley-cool ), de modules émit/receiv 433Mhz

Le soft OLS est compatible avec Bus Pirate (j'ai utilisé le OLS mais pas avec Bus Pirate...j'en ai pas !)
ça devrait déjà permettre de relever quelques trames en sortie de récepteur 433MHz et commencer à tenter de deviner le type de codage du bit, le format de la trame... la présence ou non d'un code tournant...

Dernière version (aout 2013) OLS 0.9.7 http://www.lxtreme.nl/ols/#download

Hello,

Merci pour l'astuce al1fch Cependant j'ai reçu ce matin même l'OLS :wink:
Après quelques fail j'essaye encore de faire marcher le tout (qui n'a pas l'air de sniffer grand choses :grin: )
Je regarde encore quelques infos dessus mais je ne comprend pas trop les triggers et si j'en ai l'utilité ici.
Tout conseil / démarche d'utilisation est la bienvenue. :stuck_out_tongue_closed_eyes:

Bonne aprèm

Black

Bon après quelques tests j'obtiens des résultats assés irréguliers :~
J'ai essayé de sniffer sans configurer les triggers mais je ne suis pas sûre que ça soit une bonne chose.
Je pense qu'il y a aussi des parasites mais je voudrais capter un signal avant d'isoler le tout sans doute dans une cage de faraday.
J'obtiens en résultat soit une ligne continue en position haute / basse et surtout j'ai un résultat 1 fois sur 30 :blush:

(petite illustration de ce que j'ai)

Je n'ai pas l'impression que ce soit une trame normale =(

I'm a newbie 8)

Black

Bonjour

ce que tu montres içi est à un niveau de détail beaucoup trop grand, c'est peut être un 'bout de parasite'.....

Une trame habituelle de télécommande 433 MHz (je ne connais pas les signaux Somfy) s'étale sur plusieurs dizaines de mS. Une horloge à 100kHz suffit sans doute pour l'acquisition de ce genre de trame.

Si tu sais que le signal, au repos, est à 1 tu peux activer sur la bonne voie un trigger en front descendant

Essai vite fait avec :
-comme soft : OLS 0.9.7 tournant sur XP
-comme matériel : une carte Arduino UNO flashée avec le sketch "logic_analyzer.ino"
-un récepteur 433 MHz de récupération, alimenté en 3,3V, envoie son signal sur la pin numérique 8
-telecommande 433 MHz pour prise secteurs LIDL ('SilverCrest')

ci dessous : la trame obtenue, synchronisée sur le premier front descendant, et les onglets de configuration
Avec un hardware à la hauteur les contraintes sévères de l'Arduino UNO disparaissent !
J'ai du, içi, réduire à l'extrème la fréquence d'acquisition pour avoir une trame entière.(20kHz c'est trop lent pour restituer correctement les impusions courtes de cette trame
Trigger : pour 'Mask' j'ai coché la case du bit 0 (= 'channel 0'), pour 'Value', j'ai laissé décoché pour que la capture commence dès que le niveau logique passe à 0

onglet connection.jpg

onglet acquisition.jpg

onglet trigger.jpg

Bonjour,
Vous êtes très intéressant sur ce sujet, je suis moi même équipé de volet Somfy, mais avec moteur IO et une box Tahoma, et je crois que le protocole est vraiment très fermé, et même après les avoir contacté, ils ne compte pas faire d'API.

Hey y'a du bon ! :stuck_out_tongue_closed_eyes:

Merci à toi al1fch pour l'aide à la config :drooling_face: J'aurais pu galérer encore longtemps :grin:
J'ai donc fais le test avec une simple télécommande en 433Mhz (que j'ai déjà fais marcher avec RCSwitch) et j'ai obtenu le résultat suivant qui a tout de même plus la tête d'une trame :wink:

J'ai donc testé celà avec une télécommande somfy et en utilisant un seul bouton j'ai récupérer le meilleur résultat fort ressemblant aux précédents.

Merci encore à toi pour le grand pas que tu m'as aidé à franchir :stuck_out_tongue:

je suis moi même équipé de volet Somfy, mais avec moteur IO et une box Tahoma

Désolé je ne connais pas vraiment Tahoma :smiley:

et même après les avoir contacté, ils ne compte pas faire d'API.

On la fera sans eux (l'API) ]:slight_smile:

Merci encore de vos réponses

Black

PS : Je vais encore attendre d'avoir fabriquer la cage de faraday pour étudier des trames "saines"

Hello

Après comparaison de plusieurs trames, j'essai de décoder celles-ci cependant après avoir commencé à les décoder (sans doute de la mauvaise façon :drooling_face: ) à la main, je me demande si c'est comme cela qu'il faut s'y prendre :~

Cependant après analyse rapide je n'ai pas remarqué de changement de trames lors de l'apui sur une touche identique... ce qui remet en cause la présence de rolling code (bizare :% )

Je suis désolé de manquer de compétence dans ce domaine :.
Merci a vous de m'aider :sweat_smile:

Bonne nuit

Black_Ware:
Cependant après analyse rapide je n'ai pas remarqué de changement de trames lors de l'apui sur une touche identique... ce qui remet en cause la présence de rolling code (bizare :% )

Cela m'etonnerait que les trames somfy soient identiques
soit tu ne choppe pas les bons trucs
soit tu analyse mal

colle ici 5/6 trames completes
faites à qq minutes d'intervalles

Voila voila :wink: J'ai mis environ une minute entre chaques trames. (Et j'ai aussi trouvé la source parasite... mon téléphone :blush:)

trame 1 :

Trame 2 :

Trame 3 :

Trame 4 :

Trame 5:

Trame 6 :

Cependant après seconde analyse :frowning: il semble que ma première soit éronnée :3 ça m'étonnais aussi... Je n'ai peut être pas laissé assez de temps entre chaque sniff :stuck_out_tongue:

Bonjour,

cette discussion et le résultat :slight_smile: m'intéresse fortement !

Tu as réussi à décoder ?

Merci

Plop

Nop pas encore :3 je sais pas trop de quel façon m'y prendre pour décoder :frowning: mais j'espère bien que le projet aboutira.

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

bon courage

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 :slight_smile:

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

Bonsoir

Un peu de lecture avant de vous em....bêter ! :grin:
SOMFY c'est rolling code !

A+

Merci :frowning:

Hello tout le monde :wink:

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 :stuck_out_tongue_closed_eyes:
Je vous lie donc le fichier que j'ai créer aujourd'hui avec plusieurs trames.

Thank for your precious help :~

bas.ods (20.5 KB)