Rflink : quelles sont les limites ?

Bien sur RFLINK ne détecte pas tous les appareils, il faut que la gentille communauté ait développé le nécessaire pour décoder chaque matériel. C’est une limite intrinsèque mais au dela de cela, est ce que le système est parfait ?

Bon j’ai mal introduit le sujet, il est imparfait la réponse était facile. Mais pourquoi cela me pose-t-il problème ?

Et bien parce que RFLINK sait tout faire … du coup ca le limite .. et bien oui vu qu’il peut décoder tout plein de trames différentes il prend du temps pour reconnaitre le type de trame .. et pendant ce temps la .. et bien une autre trame arrive ..

Comment cela pourrait il être mieux ? Et bien fut un temps rflink était distribué avec le code : on pouvait ajouter .. mais aussi supprimer des périphériques reconnus ..

RFlink étant en cours de refonte on attends impatiemment de pouvoir jouer avec.

Hack RF433 de l’alarme KERUI W18

Si, comme moi, vous avez fait l’erreur d’acheter ce système, vous aurez besoin de comprendre comment il marche (ou pas).

Voici le début de l’article, je le completterai au fur et à mesure :

  • les sondes sont vues comme des eurodomest ou EV1527
  • le premier numéro de l’id et vu des fois avec un 2, des fois avec un 0
  • les sondes n’envoient un messsage que sur changement, pas de status
  • on peut intercepter les messages venant des télécommandes, quand l’alarme recoit un ordre elle le diffuse ensuite. Autrement dit, les télécommandes ne parlent qu’à alarme et on a deux facon de voir que le système est armé ou pas.
  • On ne peut pas voir en RF le statut armé ou pas, il faut se fier à l’historique
  • Rflink a trop de travail pour détecter le type de trame, du coup quand on est en alerte (et que beaucoup de messages sont envoyés) il en perd.

Gestionnaire d’Alarme : de quoi a-t-on (vraiment) besoin ?

Alors la première chose à savoir est que votre assurance, de toute facon, a besoin que ce soit un partenaire à elle qui vienne poser l’alarme et faire les réglages .. il le fait bien sur à grand frais car il est beaucoup plus fort que vous pour visser, appuyer sur les télécommandes .. (c’est ironique). Bref sachez qu’à le faire vous même votre assurance ne changera rien à ses tarifs (en fait je crois que ce qu’une assurance veut c’est vous faire payer plus .. enfin .. chut).

Ceci dit quelle est la bonne stratégie pour une alarme ?

On peut en effet mettre plein de choses, des caméras, détecteurs de mouvements et de présence, ouverture de porte, capteur de température aussi .. oui on peut mettre pas mal de chose .. Mais en fait la plupart du temps, c’est normal qu’il y ait du mouvement, des ouvertures et fermetures .. car .. dans la maison .. ben on y vit !

Voici donc mon approche : la simplicité.

En fait si quelqu’un vient dans ma maison, il doit passer par quelque part : une porte, une fenetre qui n’est pas protégée par des barreaux. Donc, règle numéro 1, des détecteurs de présence ici. Petite précision, il faut des détecteurs qui ne font pas qu’émettre quand il y a un changement, mais qu’ils émettent uen continu (comme ca on peut etre sur que le capteur fonctionne et on voit, proprement, l’ouverture et la fermeture!)

Ensuite, et bien il faut pouvoir le déclencher à distance depuis son téléphone, c’est la base. Oubliez les télécommandes, c’est un nid à ennui, on l’attache au porte clef et hop on arme sans faire exprès. = règle numéro 2

Règle numéro 3 il faut un détecteur de présence. UN SEUL ! votre maison a forcément un point central, devant lequel on parce forcément. mettez le ici. idéalement il faut prendre l’habitude d’allumer ce détecteur quand on pars (ca sert à rien d’enregistrer des évènements normaux, mais je vais écrire à article à ce sujet car j’ai un projet)

Enfin, la dernière règle est de choisir une marque .. pas chinoise .. donc se faire un peu mal sur le système mais qu’il soit fiable (pas de fausses alertes et pas d’oubli dans les détections .. ) ..

Alarme : asservir un détecteur de présence à votre absence

OU la .. qu’est ce que ca veut dire ?

Si vous avez une alarme vous avez un détecteur de présence. Si vous habitez dans la maison que vous surveillez (c’est souvent le cas normalement) vous déclenchez sans cesse le détecteur pour rien. En fait il faudrait qu’il ne s’allume que quand vous armez votre alarme. Comment faire ?

Pour ma part, voici ce que j’ai fait :

  • un arduino nano alimenté en continu (sur une prise)
  • un récepteur rf433
  • un relai 9V

Grace à mon rflink, j’arrive à intercepter le message qui correspond à l’armement de mon alarme (en fait il y en a plusieurs), je conditionne donc l’ouverture du relais à la réception de ce message ainsi le détecteur est en marche uniquement quand j’en ai besoin. Et quand il voit un mouvement (et qu’il envoie un message RF433) et bien c’est que ca craint vraiment !

Note : commentez si vous êtes intéressés par des compléments

Test alarm RF433Mhz premier prix (2020)

Je ne voudrais pas donner trop facilement la conclusion à mon ancien article mais l’alarme est décédée .. mais comme je suis un peu bête j’ai remis ca .. mais cette fois j’ai pas fait semblant (d’être bête)

J’ai donc acheté un système tout pimpant mais un peu plus cher. 150€ le pack en me disant que cette fois, c’était de la qualité vu le prix.

Effectivement c’est beaucoup meilleur car c’est beaucoup plus facilement paramétrable et installable. Le service client est lui aussi meilleur en tout cas réactif : c’est un peu galère se bien comprendre ce que les différents types de zone signifient mais on arrive à se le faire expliquer. Je reviendrai dans un prochain article sur la tactique que j’ai adopté pour mon alarme (indépendamment de la marque) mais concernant celle ci ce que je retiens est que, un peu comme le sketch de Murielle Robin ou le carleur carle bien mais il carle trop, elle alarme bien mais elle alarme trop.

Je n’ai pas réussi à la prendre en défaut en ouvrant une fenêtre ou en passant à un endroit sans être détecté mais il arrive régulièrement qu’elle se mette en alarme pour rien.

Information importante aussi, vous pourrez sans peine sniffer les trames sur le réseau mais :

  • elles sont changeantes : l’id n’est pas vu toujours de la meme facon, du coup, pour un meme événement il y a plusieurs trames possibles
  • avec un rflink vous raterez des trames quand il y a une alarme : beaucoup de messages sont envoyés et rflink ne va pas assez vite

Arexx et raspberry

Avant de m’intéresser à RFLINK je me suis équipé de sondes Arexx. POur cela il faut donc des sondes mais aussi le logger. Pendant longtemps le tout tournait, à merveille je dois dire, sous Windows.. oui mais voila j’ai voulu faire marcher la chose sur raspberry ..

Et bien la on se sent un peu seul voyez vous ..

Il faut télécharger un programme qui date de 2003 ..

http://www.arexx.com/downloads/templogger/linux/rf_usb_http_rpi_0_6.zip

Bien sur on l’installe et on lit le readme .. par chance le programme sait faire un appel http .. on va donc utiliser cela .. voici comment paramétrer le fichier rulefile.txt

Vrulefile
A1php push
B1
C0
E213.186.122.44/getdata.php
Zdata==arexx&&name==$i-$q&&value==$v&&type==$q

en première ligne, vous lui dites que vous faite du “push” php .. ensuite en 5 ieme ligne vous donner l’url de base sans préciser http:// mais avec un E devant

Enfin, après un Z, vous spécifiez les noms des variables et la valeur

dans mon cas donc l’url appelée serait

http://213.186.122.44/getdata.php?data=arexx&name=20242-0&value=12.6&type=hum

Ensuite il ne reste plus qu’à appeler le programme. Mais malheureusement ca ne marche pas, et il n’y aucune doc. Qu’a cela ne tienne, on va le gruger. J’appelle le programme et redirige la sortie standard dans un fichier, le tout pendant 30s.

sudo ./rf_usb_http.elf -v rulefile.txt > logfile < <(sleep 30;echo -e "\n")

Une fois la sortie récupérée je vais nettoyer tout ca et récupérer la partie qui m’intéresse et faire le curl moi meme.

cat logfile | grep GET | uniq | awk '{print $2}' >> tmp
while read -r line
do
        url="http://monsiteamoi$line"
        echo "curl sur $url"
        /usr/bin/curl --connect-timeout 1 --max-time 5  $url
done < tmp

Voila, c’est dégoutant mais ca marche …

J’en profite pour souligner que les sondes Arexx sont de super qualité. Je les utilise depuis 10 ans, j’en ai une qui cessé de vivre après être tombée, mais sinon elles sont super, les piles durent super longtemps.

Malheureusement, le protocol utilisé n’est pas décrypté par rflink .. ce serait un travail à faire … peut etre un jour .. cela permettrait de se passer de la passerelle usb.

Toutefois, si vous avez un rflink, cela ne fait pas le poids avec une sonde Oregon qui a le bon gout d’indiquer, dans la trame, le niveau de batterie..

lire les trames RF avec RFlink depuis LINUX

RFlink est un super code qui décode à la volée les trame RF, les reconnait et les transmets .. à domoticz ..

Domoticz est un produit super … mais j’ai préféré m’en passer.

J’utilise pour ma part un script shell qui parse le fichier (oui sous LINUX l’arduino connecté en USB peut etre vu comme un fichier) et qui transmet les informations lues à mon site sur lequel un webservice REST tourne.

Pour commencer, comment paramétrer la lecture du “fichier” ou plutot du flux : on utilise pour cela la commande stty en lui donnant les bons paramètres

#8 data bits, 1 stop bit, no parity
/bin/stty -F /dev/ttyACM0 57600 sane -parenb cs8 -cstopb cread inlcr

Ensuite, on peut lire ou écrire, pour ma part je commande à désactiver le mode débug

echo "10;rfdebug=off;" >> /dev/ttyACM0

Enfin, on peut s’atteler à la lecture. Pour cela je fais une boucle infinie dans laquelle je vais décoder chaque ligne avec des awk. Cela permet de savoir quel type de trame on a (la variable what) et son la valeur de son id ..

/bin/cat /dev/ttyACM0 | while read line; do
  fullcontent=`/bin/echo ${line:4} | tr -d ' '`
  what=`/bin/echo $fullcontent | /usr/bin/awk -F";" '{print $2}'`
  id=`/bin/echo $fullcontent | /usr/bin/awk -F";" '{print $3}'`
  id=${id#ID=}
done

On suivra le meme principe en changement la commande pour récupérer, selon le type de trame, la température, la valeur du “switch”, de la commande, de la batterie .. Dans un prochain article je détaillerais comment, avec ce système, je récupère la valeur des sondes oregon ..

Faire votre propre récepteur/émetteur RF433MHz

Je ne vais pas trop m’étendre sur le comment .. en effet vous trouverez plein de tuto pour faire ca (cherchez rflink et arduino) donc je ne vais pas ré-écrire .. quelques points importants ..

Juste penser bien à acheter un récepteur super stéréodyne .. il en existe d’autre un peu moins cher mais c’est tout simplement pourri au niveau de la réception.

Donc pourquoi passer au rflink ? Et bien parce que vous pourrez ensuite facilement lire (via un simple script shell) les données et commencer à établir des scénarios !

voila c’est tout .. faites le .. c’est vraiment bien..

Test alarm RF433Mhz premier prix

En bon radin que je suis j’ai voulu installer une alarme mais sans passer par les offres telles que mon assurance me propose à 50€ par mois.

J’ai donc choisi le premier modèle qui est fortement répandu et voici en exclusivité mondiale les retours :

  • tout d’abord la documentation est passablement foireuse .. c’est difficile d’identifier le modèle qu’on a et les options qu’il digère .. de ce coté la il faut s’accrocher et essayer
  • Il faut désactiver sur votre carte sim la protection par code ..
  • Il faut être assez compréhensif avec le système car des actions sont clairement perdues : quand on voit ce qui se passe avec RFLINK on comprend mieux : je ne sais pas à qui est la faute mais on voit clairement que les trames sont parfois mal interprétées : le détecteur de présence est vu de type newKaku mais son id change de temps en temps ..

Vu que le gestionnaire rate visiblement aussi des actions c’est que le problème n’est pas dans RFLINK mais dans l’émetteur. Effecticvement, j’ai également des sondes “Oh Raie Gonds” (je ne veux pas faire de pub, en tout cas pas tant que je ne suis pas rémunéré pour 😉 ) et je n’ai jamais ce genre de problème ..

Peut être est pour cela qu’il y a des systèmes d’alarme très cher et d’autre non .. A mon sens, ce doit être dissuasif uniquement donc inutile d’y mettre des fortunes (j’ai entendu quelqu’un dire que j’étais radin .. mais on le savait déjà) ..