Interrupteurs domotique Blyss de castorama

voici , en hexadécimal les 4 trames radio du dernier message de skywodd

Telec Skywodd ON F E 3 9 2 1 A 8 0 D A F 4
Telec Skywodd OFF F E 3 9 2 1 A 8 1 E 6 E D

Inter Skywodd ON F E 7 9 5 F 7 8 0 6 7 0 C
Inter Skywodd OFF F E 7 9 5 F 7 8 1 9 8 4 E

Le décalage de 4 bits entre adresse en eeprom et trame radio, les 4 bits supplémentaires dans la trame, le passif dans la conception des télécommandes et la définition des trames.... peut laisser penser à une trame organisée en quartets.

Le premier quartet qui suit l'adresse est 0 pour ON et 1 pour OFF , du moins sur cet échantillon de trames !

Est-ce que 2 trames ON ou OFF successives du meme emetteur sont identiques ?

comparaison 4 trames.ods (26.1 KB)

Artouste:

skywodd:
je n'ai pas de casto à proximité , dommage ... pour toi :grin:

bonjour
J'avais complétement zappé l'ouverture récente du casto paris XV
Je vais aller faire un tour en sortie de job
si dispo (à priori ok au stock magasin) je vais prendre ça pour jouer

mais j'aimerais que tu m’ôte un doute :

Tu n'es pas rémunéré par l'enseigne pour les achats du jour dans cette gamme de produits ? :grin:

barbudor:
Cool ca avance bien
Bien vu le coup d'effacer l'EPROM. Heureusement que tu pouvais toujours régénérer le contenu après si ca foirait.

Tu me crois si je te dit que j'avais pas vraiment pris en compte ce point :*
J'avais un dump donc oui je pouvais sauver les meubles en cas de probléme, mais vu que l'eeprom était vierge au départ j'ai pas vraiment cherché plus loin. :grin:

barbudor:
Ce soir je vais aller acheter un kit "télécommande 5 canaux + interrupteur-récepteur"
Sur la télécommande 5 canaux il y a donc :

  • 5 boutons ON
  • 5 boutons OFF
  • 1 bouton ALL ON
  • 1 bouton ALL OFF

Je ferais des captures ce qui nous permettra d'augmenter le nombre de trames pour valider.

J'ai pas testé le bouton "ALL x" il doit surement envoyer les 5 trames "x" à la suite il faudrait que je regarde.

barbudor:
Comme j'ai des problèmes avec les modules 433MHz que j'ai acheté chez LedSee (pas réussi à la faire fonctionner pour l'instant), je fais essayer d'ouvrir la télécommande pour me piquer directement à l'intérieur.

Prend le signal au niveau de la broche du µc.
Au début je piquer le signal sur la broche de modulation du résonateur 433MHz ... OLS me sortait des interférences hors norme ...
PS: Il faudrait vraiment qu'ils ajoutent un mode pour ignorer certaines voies, sinon il faut toutes les mettre au GND pour éviter les interférences ...

al1fch:
Est-ce que 2 trames ON ou OFF successives du meme emetteur sont identiques ?

Je démarre OLS et je te dit ça :wink:

Artouste:
si dispo (à priori ok au stock magasin) je vais prendre ça pour jouer
http://www.castorama.fr/store/Prise-telecommandee-et-telecommande-BLYSS---Interieur-prod4470026.html?isSearchResult=true&navAction=jump

J'éspére que le protocole des prise murales et des interrupteurs muraux sont identique ?
La télécommande semble être la même que pour les interrupteurs muraux, donc théoriquement ça devrait marcher ?

Artouste:
mais j'aimerais que tu m’ôte un doute :
Tu n'es pas rémunéré par l'enseigne pour les achats du jour dans cette gamme de produits ? :grin:

Je ne gagne pas un centime que ce soit sur les achats du jour chez casto, chez watte...., ou chez n'importe qui d'autre.
Du reste j'espère que casto ne viendra pas râler qu'on as "tipiaké" le protocole de leur systéme ... ce serait la douche froide :.
(M'enfin une enseigne de bricolage qui serait contre le bricolage ça me semblerai peu probable)

Je vais rechercher mais il y a une directive Européenne qui autorise tout rétro-ingenierie d'un protocole pour assurer l'interopérabilité des systèmes.
Tant que ce n'est pas de la contre-façon (copier le design du produit).

barbudor:
Je vais rechercher mais il y a une directive Européenne qui autorise tout rétro-ingenierie d'un protocole pour assurer l'interopérabilité des systèmes.
Tant que ce n'est pas de la contre-façon (copier le design du produit).

Il me semble aussi, du reste il y a une loi qui est passé pour la décompilation de logiciels récemment.
Bref au pire si ils râlent on verra bien.

Par facilité je suis en train de faire les captures de trames sur l'interrupteur pour voir si il y aurait une quelconque différence entre plusieurs émissions.
La télécommande c'est plus le bordel vu que je dois utiliser un récepteur RF ... donc bonjour les interférences.

(J'ai le droit de massacrer autant que je veut l'interrupteur et le récepteur ... mais surtout pas la télécommande ... c'est elle qui gére toute la baraque familiale :sweat_smile:)

Bon mauvaise nouvelle ... enfin pas vraiment ...

Il y a un rolling code à la fin de chaque trame ...
J'ai fait un 10aine de capture à chaque les bits en fin de trame change ...

Mon hypothèse : Pour éviter qu'un appui soit pris en compte plusieurs fois l'émetteur ajoute un octet (aléatoire ?) en fin de trame qui sert de "one time token".
Ceci expliquerai pourquoi mon sketch de replay ne marchai pas ...

Edit: Zip avec 10 trames en pièces jointe + image qui présentant la zone de différences entre la trame 1 et la trame 5
Ps: Je suis en train de coder en décodeur .ols -> donnée hexa ne vous casser pas la tête pour le moment :wink:

Bon j'ai bien avancé :grin:
J'ai bricolé un script python de décodage automatisé des fichiers .ols (voir piéce jointe)

Le résultat (à vérifier bien sur) :

trame_on_1.ols.txt :
FE 79 5F 78 6 71 30
trame_on_2.ols.txt :
FE 79 5F 78 6 70 90
trame_on_3.ols.txt :
FE 79 5F 78 D AB 90
trame_on_4.ols.txt :
FE 79 5F 78 E 69 80
trame_on_5.ols.txt :
FE 79 5F 78 9 8F 30
trame_on_6.ols.txt :
FE 79 5F 78 1 E6 20
trame_on_7.ols.txt :
FE 79 5F 78 6 72 60
trame_on_8.ols.txt :
FE 79 5F 78 D A2 70
trame_on_9.ols.txt :
FE 79 5F 78 E 64 70

Edit :
Et voila ce que donne les trames OFF :

trame_off_1.ols.txt :
FE 79 5F 78 1E 6B E0
trame_off_2.ols.txt :
FE 79 5F 78 19 87 A0
trame_off_3.ols.txt :
FE 79 5F 78 11 E7 B0
trame_off_4.ols.txt :
FE 79 5F 78 16 78 0
trame_off_5.ols.txt :
FE 79 5F 78 1D A9 B0
trame_off_6.ols.txt :
FE 79 5F 78 1E 61 0
trame_off_7.ols.txt :
FE 79 5F 78 19 8E E0
trame_off_8.ols.txt :
FE 79 5F 78 11 E4 A0
trame_off_9.ols.txt :
FE 79 5F 78 16 7C B0

On remarque tout de suite le 1 devant chaque valeur du 5eme octet.

Donc mon hypothèse :
xx xx xx xx yz zz
x -> adresse de l'émetteur
y -> 0 pour allumer, 1 pour éteint
z -> rolling code (?)

trame_off_sample.zip (12.7 KB)

trame_on_sample.zip (12.6 KB)

Bonsoir
quelques photos et commentaires.
ce sera tout dans les manips pour ce soir, j'ai interdiction de sortir "mes jouets" :grin:
pour un appui bref sur une touche la telco envoie une salve de 4 trame pour une durée totale de ~0.36" (4 X .09" ~ )
en cas d'appui continu, les trames sont émises sans discontinuer (X fois 0.9" ~) .

De mon test rapide en sortie d'un recepteur UHF , j'ai l'impression que les trames ne sont pas identiques, ça reste à etre verifier plus precisemment.

Le MCU utilisé dans la prise et la telco sont des Holtek HT48R06A-1 (en DIP pour la prise)

constat : en cas de coupure et retour de courant sur la prise, la prise ne conserve pas l'etat ON si c’était le cas avant coupure (mais c'est préférable niveau sécurité)

un .wav rapide de la modulation
http://cjoint.com/12jn/BFptIQwrhov_blyss.wav

qq photos
à suivre pour approfondir les tests quand je pourrais 8)


Artouste:
De mon test rapide en sortie d'un recepteur UHF , j'ai l'impression que les trames ne sont pas identiques, ça reste à etre verifier plus precisemment.

Le MCU utilisé dans la prise et la telco sont des Holtek HT48R06A-1 (en DIP pour la prise)

Les HT48Rxxx sont utilisé un peu partout dans les sonnettes, les prises télécommandé low-cost, etc ...
J'ai rien dit c'est des HT12Exx dans les sonnettes.

Ps: Je viens de regarder ton .wav on dirait de la modulation FSK ?
Une chose est sur ce n'as pas l'air d'être le même type de signal !

Je vais faire des photos de ce que j'ai sous la main, j'ai l'impression que le matos montré sur le site de casto ne correspond pas.

Edit : J'ai vérifié, donc les deux articles que j'ai linké sont bien ceux que j'ai, par contre la version avec la télécommande sans écran ne correspond pas.
Ce qui est bizarre c'est qu'il semblerait d'aprés les photos que les deux soit compatibles (ou alors j'ai zappé un truc) ...
Les photos : https://dl.dropbox.com/u/53604363/photo_blyss_2.zip (admirez un peu la caisse anti-interférences :wink: on fait avec ce qu'on as :grin:)

J'ai amélioré le script python, il peut à présent détecter une trame même au milieu d'autre morceaux de trames ou de bruits.

J'ai aussi commencer un morceau de code arduino pour tenter d'émuler un émetteur.
-> Problème en utilisant des valeurs aléatoires pour les 16 derniers bits le récepteur ne réagis pas ...

Je joint le nouveau script python + le .ino de test
J'ai testé de re-décoder une trame émise par mon .ino ... pas de probléme ... ça vient donc de ces 16 derniers bits ...

ols2data.py (2.35 KB)

Je vais avoir du mal à suivre, vous allez à fond la caisse

Acheté ma paire télécommande 5 canaux + inter mural télécommandé ce soir.
Démontage et soudage de fil de mesure dans la soirée.

Sinon j'ai trouvé cet article intéressant : http://www.abavala.com/2012/02/23/blyssbox-liveez-technology-la-box-domotique-de-castorama/

Comme les boites Blyss faisait référence à une "Liveez Technology" je me demandais s'il n'y avait pas un standard la derrière. Raté c'est du propriétaire.

<mode_hors_sujet = on/>
J'ai l'impression que Casto comme Decathlon sont en train de tuer les marques (à l'exception des grandes marques internationales). Chez Decath on ne trouve quasiment plus que des sous marques appartenant au magasin (Quetchua, Wedze, B'Twin, ...) et Casto suit la même logique
Perso çà ne me plais pas du tout. Je suis pour les standards ouverts et la variété des solutions.
J'ai peur qu'à terme cela tue l'innovation.
<mode_hors_sujet = off/>

skywodd:
J'ai aussi commencer un morceau de code arduino pour tenter d'émuler un émetteur.
-> Problème en utilisant des valeurs aléatoires pour les 16 derniers bits le récepteur ne réagis pas ...

Bonsoir
A tu déjà essayé de récupérer une/des trames émises au niveau telco , récepteur OFF et de voir ensuite en le remettant ON si l'emission émulée est bien acquise par le récepteur ?
si il y a du rolling code, il a inévitablement une profondeur prevue en cas de perte

barbudor:
Acheté ma paire télécommande 5 canaux + inter mural télécommandé ce soir.
Démontage et soudage de fil de mesure dans la soirée.

bonsoir Barbudor
La telco est physiquement très ressemblante à celle que j'ai

Oui on a la même
Tu a trouvé sur qu'elle broche prendre le signal ?

barbudor:
Oui on a la même
Tu a trouvé sur qu'elle broche prendre le signal ?

pas ce soir , je n'ai pas le droit de sortir mes "jouets" :grin:
mais si tu ouvre la telco et si les ref de composants sont identiques
voir du coté de U3 et/ou C6 (3eme photo)

Artouste:
A tu déjà essayé de récupérer une/des trames émises au niveau telco , récepteur OFF et de voir ensuite en le remettant ON si l'emission émulée est bien acquise par le récepteur ?
si il y a du rolling code, il a inévitablement une profondeur prevue en cas de perte

J'ai repris une trame capturé précédemment, mis le tout en dure dans mon code, viré le morceau SET_LIGHT() et generate_token(), et ... ÇA MARCHE !

Bon maintenant il faudrait trouver la méthode miracle qui permet de calculer / générer ces 16 derniers bits :.

Youpi j'ai eu du signal. Effectivement à l'entrée du module RF.
Mais je comprend encore d'où il vient car je n'ai trouvé celà sur aucune des broches du micro

skywodd:
J'ai repris une trame capturé précédemment, mis le tout en dure dans mon code, viré le morceau SET_LIGHT() et generate_token(), et ... ÇA MARCHE !
...
Bon maintenant il faudrait trouver la méthode miracle qui permet de calculer / générer ces 16 derniers bits :.

Si en dur avec des "vieilles trames acquises" tu peux toujours générer/émuler du ON/OFF ,ce n'est pas du rolling code , mais plus certainement un CRC ou autre méthode de vérifier l’intégrité de la trame sur un vecteur "simplex"

J'ai trouvé un truc ! :stuck_out_tongue:

J'ai capturé une série de trames On / Off consécutive pour tenter de trouvé une relation dans le temps et ... il y en a une !

FE 79 5F 78 0 E 65 8
FE 79 5F 78 1 6 7E C
FE 79 5F 78 0 9 80 A
FE 79 5F 78 1 D A4 2
FE 79 5F 78 0 1 EB D
FE 79 5F 78 1 E 6A 7
FE 79 5F 78 0 6 78 9
FE 79 5F 78 1 9 84 1

E -> 6 -> 9 -> D -> 1
<----------------

6 -> 7 -> 8 -> A -> E
<----------------

Reste encore 8 bits à décoder ...

Ps: Quelqu'un vois une relation entre les différentes valeurs ?

230 - 11100110
103 - 01100111
152 - 10011000
218 - 11011010
30 -  00011110

Skywodd

Est-ce que tu as utilisé la fonction Run Length Encoding de l'OLS ?
Ca ne capture que les changements d'état et ca permet de décupler les capacités de stockages surtout quand on n'utilise qu'un seul fil

Cf les capture ci jointe
On voit qu'il y a 4 émission de trames a chaque pression de bouton
On voit que pour le bouton ALL_ON il y a aussi 4 émission de trame
Il doit y avoir un histoire d'adresse de groupe (comme un broadcast IP) ce qui devrait nous aider à compléter les champs de bits

J'arrête pour ce soir mais demain je soude un fil pour faciliter les captures et je captures les 10 boutons de la télécommande

barbudor_blysstelco_bouton_4_ON_repetition.olp (20.6 KB)

barbudor_blysstelco_bouton_5_ON_repetition.olp (20.1 KB)

barbudor_blysstelco_bouton_ALL_ON_repetition.olp (18 KB)