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 ..