J'espère que ce qui suit pourra aider l'un ou l'autre et éviter de passer toute une soirée comme moi à chercher une solution . Tout d'abord un petit point sur ma situation. Je viens d’emménager dans une nouvelle maison qui était équipé d'un store contrôlé par une télécommande RF générique et j me suis dit, ça serait bien que je puisse la contrôler comme le reste de mes équipements connectés. J'avais une petit télécommande RF universelle pour copier un signal que j'utilisait pour une porte de garage et j'ai testé si je pouvais recopier le signal, et ça a marché.
style:
Du coup je suis parti sur l'achat d'un module RFXCom pour mon install de Jeedom ( qui est sur un Docker du NAS synology ).
A la réception du module je test une première fois avec le soft rfxmgr pour voir si j'arrive a capter le signal, et effectivement j'obtiens un truc mais uniquement en mode undecoded. Après lecture de la doc sur le modules rfxcom je vois comment il faut éditer un fichier texte pour renvoyer une trame de type raw. Et première constatation, c'est que je suis obligé de mettre une répétition au minimum de 3 trames. Mais au final ça faisait le job et mon store bougeait.
Code : Tout sélectionner
0
3 <= répétition
2500 <= début de ma trame
389
845
....etc...
10000
Je regarde ce que je capte via ce log et effectivement ça ressemble à ce que je recevais via le soft rfxmgr sur mon PC.
Pour la suite j'essaye de créer une nouvelle télécommande générique et mettre ma trame RAW dans le champs Logical ID. Et là, la même erreur que visiblement d'autres on eu sur le forum, le champs DB est trop petit. ma trame faisait bien plus de 400 caractères (et le champs limité a 127 je crois).
Je me suis ensuite penché sur l'étude de ma trame pour voir si je ne pouvais pas la réduire ou trouver une sorte de protocol ou codage. J'ai remarqué que pour toutes les valeurs, elles se trouvaient soit autour de 400 (+-100) soit autour de 800(+-100) à l'exception de la première qui traînait autour de 2500. Pour mon premier test j'ai remplacé toutes ces valeurs par 400 ou 800 et j'ai pu constater que ma trame continuait à fonctionner via rfxmgr. J'ai cherché les style de codages utilisés en RF et je suis parti sur l'hypothèse que pour les valeur autour de 400 cela correspondait à un 0 logique et autour de 800 un 1 logique. Ce qui m'a déjà réduit la trame à quelque chose de beaucoup plus petit (16 bytes étaient donc réduit à 1 ^^).
Code : Tout sélectionner
800 400 800 400 800 400 .......
1 0 1 0 1 0 ....
Code : Tout sélectionner
10101010011010010101100101101010101001100110100110010110011010101010101010101010101001011010100101011001
1 1 1 1 0 1 1 0 0 0 1 0 0 1 1 1 1 1 0 1 0 1 1 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 0 0 1 0
F 6 2 7 D 6 9 7 F F C E 2
Mais je ne me laisse pas abattre, et je suis parti sur une autre approche. Heureusement pour moi j'ai un container docker avec ma DB mysql qui supportait l'augmentation du champ LogicalID, je l'ai donc mis à 1000 pour être tranquille.
Ensuite j'ai pu recopié la trame récupéré dans le fichier de log, mais la commande ne faisait rien. Puis je me suis souvenu que pour faire marcher la commande via le rfxmgr, j'avais du mettre le paramètre de répétition à minimum 3. et que dans le log du debug, la trame reçu avait ce paramètre à 1 donc un bête copier coller ne marchait pas.
Du coup je modifie l'en-tête de ma commande raw pour passer ce paramètre à 10 (0x0A) pour être sûr (ce qui donnait D87F00630109FB0.... à D87F00630A09FB0....) et là miracle ma commande fonctionne enfin \o/ :p .
Du coup pour le moment j'ai configuré jeedom pour utiliser ma grosse trame en mode Raw, mais je serais quand même intéressé pour savoir ce que vous pensez de ma première approche et interprétation, et si il y aurait moyen de trouver une façon d'utiliser la trame de manière raccourci (décodé en gros) sans avoir a trifouiller la taille du champ de la DB.