Actualités | Audio/Vidéo | Evènements | DIY | Domotique | Informatique | Maison | Mobile | Sécurité

Exploitation DIY d'un pèse-personne compatible RFXCOM

Envoyer Imprimer PDF
Note des utilisateurs: / 8
MauvaisTrès bien 

Cet article présente l’exploitation DIY d’un pèse-personne connecté. En préambule, on peut se demander pourquoi s’embêter à faire du DIY alors qu’aujourd’hui des balances comme celles produites par Withings font tout et sans aucune intervention de l’utilisateur (historisation, graphiques sur application mobile, etc.) ? C’est personnel, mais étant par principe allergique aux solutions « cloud », je tenais à garder la main sur ce genre d’informations qui sont par définition personnelles. Cela demande un peu plus de boulot et quelques notions informatiques comparé à une solution clé en mains, mais pour ma part, le petit investissement en temps peut se justifier. Un autre point est que je ne souhaite pas avoir de Wifi chez moi, ce qui limite le choix en balances connectées, et qui m’a orienté vers les balances compatibles RFXCOM.

 

1.    Introduction

Au niveau des fonctionnalités, voici les objectifs que je me suis fixés :

- Sauvegarde automatique du poids dans une base de données locale,

- Annonce vocale à l’utilisateur,

- Construction automatique du graphique, visible sur mon interface domotique (Imperihome).

 

2.    Principe et matériel

J’ai pu récupérer d’occasion une balance Oregon GR101, compatible RFXCOM. Cela tombe bien, j’ai un RFXTrx branché sur ma Vera Lite. Je possède aussi un NAS Synology sur lequel la base de données sera stockée, et qui possède aussi un serveur Web qui me permettra d’afficher les courbes. Concernant l’annonce vocale, je dispose déjà d’une tablette qui me permet de contrôler mon installation domotique avec l’application Imperihome.

Le principe de fonctionnement est le suivant : quand une personne se pèse, l’information envoyée par la balance est captée par le RFXTrx, qui envoie cette information à la Vera. La Vera exécute un script (PHP) qui enregistre l’information de poids dans une base de données présente sur le NAS. Instantanément, la Vera fait aussi annoncer le poids à la tablette (plugin Imperihome sur Vera) et affiche automatiquement sur la tablette la courbe de poids (page PHP sur le NAS intégré dans un widget sous Imperihome).

Quelques précisons sur la balance : la balance Oregon GR101 est composée du pèse-personne et d’un afficheur déporté :


Cette balance ne date pas d’aujourd’hui mais ses fonctionnalités sont intéressantes : elle mémorise les informations de poids, IMC, et pourcentage de masse grasse pour 4 utilisateurs : il faut avant la pesée appuyer sur le bouton de l’afficheur correspondant à son profil préalablement enregistré, et les informations sont affichées et sauvegardées dans la mémoire de l’afficheur. On peut par la suite consulter l’historique en faisant défiler les valeurs.

C’est déjà pas mal, mais voici un exemple d’utilisation un peu plus poussé exploitant les possibilités offertes par la compatibilité RFXCOM. La box domotique utilisée est ici une Vera, mais cela peut a priori être adapté avec toute box domotique compatible (de base ou extension) avec le protocole RFXCOM : Zibase, Eedomus, Zipabox, Jeedom par exemple.



3.    Communication GR101 avec la Vera

Sur la Vera un plugin RFXCOM est disponible gratuitement (merci au passage à Lolodomo pour le gros travail réalisé pour ce plugin ☺). La balance a été automatiquement reconnue par le plugin qui a créé un device de type « Scale Sensor » avec 3 informations: le poids, l’impédance et le niveau des piles.


Petite déception : uniquement le poids est remonté par le plugin. L’impédance, qui est utilisée pour le calcul de pourcentage de masse grasse, n’a malheureusement pas pu être décodée malgré les efforts des utilisateurs et développeurs. En effet, l’information d’impédance envoyée par la balance est loin d’être explicite et le calcul du pourcentage de masse grasse est réalisé par l’afficheur…Mickaël de Planete-Domotique qui a investigué le sujet a même pris contact avec Oregon mais Oregon n’a pas souhaité dévoiler le décodage de l’information de l’impédance. Dommage ☹. Bon, en ce qui me concerne, ce n’est pas vraiment un problème, seul le poids m’intéressait pour l’historisation et l’affichage. L’information du pourcentage de masse grasse est toujours disponible sur l’afficheur si besoin.

La communication entre la balance et ma Vera fonctionne bien : quand une personne se pèse le poids s’affiche bien sur la Vera. Mais rien ne dit qui se pèse : voyons comment contourner ceci et sauvegarder la valeur de poids dans une base de données.



4.    Création de la base de données

Comme dit en introduction, je possède un NAS Synology sur lequel est installé phpMyAdmin permettant de gérer via une interface Web ses bases de données SQL. Si l’on ne dispose pas de NAS, un Raspberry Pi peut faire l’affaire. J’avais déjà une base de données nommée « domotique » au sein de laquelle j’ai créé une nouvelle table « poids » avec les champs nécessaires : date, personne, et poids. Le code SQL pour créer cette table nommée « poids » peut être téléchargé ici

On obtient cette structure simple:



5.    Enregistrement dans la base de données, TTS tablette et courbe

Les prérequis :

- Un script PHP est utilisé pour sauvegarder la valeur de poids, à héberger localement sur le NAS ou autre serveur du réseau local. Il peut être téléchargé ici. Les variables à changer concernant la base de données sont en début de fichier : l’adresse IP du serveur où est installée la base de données, le login, le mot de passe, le nom de la base (« domotique » dans mon cas), le nom de la table (« poids » si vous utilisez le script SQL).

- Pour faire parler la tablette, j’utilise le plugin Vera Imperihome disponible sur le Market (il est nécessaire d’avoir Imperihome Pro pour pouvoir utiliser ce plugin). Le plugin crée un nouveau device et une fois l’adresse MAC et IP de la tablette renseignés, le modèle apparait :

- Pour l’affichage de la courbe une page PHP s’appuyant sur la librairie Highcharts peut être téléchargée ici. Les variables à changer sont au début du fichier « index.php ».


La scène Vera :

Dans la Vera, il faut créer une scène qui à chaque réception de valeur de poids enregistre la valeur dans la base de données, fait annoncer vocalement le résultat par la tablette et affiche automatiquement la courbe de poids sur la tablette.

A chaque réception de valeur de poids, le device passe un bref instant à une valeur négative, ce qui permet de définir l’élément déclencheur de la scène comme suit :

 

Les actions de la scène doivent être définies à l’aide d’un code Luup : le code permet de reconnaître la personne (détection en fonction d’un intervalle de poids défini), faire appel au précédent script PHP  pour l’enregistrement dans la base de données, faire l’annonce vocale et afficher la courbe sur la tablette : script record.lua

Les variables du script Luup à renseigner sont : les valeurs des intervalles pour reconnaitre la personne, le n° de device Vera de la balance, le n° de device Vera Imperihome pour la tablette, et le chemin d’accès au script PHP.
Une fois tout configuré correctement, ça marche : une personne se pèse, la tablette annonce instantanément la personne et le poids (j’ai été même surpris de la rapidité, je m’attendais à une certaine latence mais cela va vite), l’enregistrement dans la BDD se fait tout seul et la courbe est visible tout de suite sur la tablette ☺

Voici un exemple de courbe obtenue:

 

6.    Conclusion

Avec cette mise en œuvre, le principal avantage est l’indépendance au cloud. Il faut mettre un peu plus les mains dans le cambouis, mais cela reste faisable en un temps raisonnable. Par contre, uniquement la donnée de poids peut être remontée au système domotique.

On peut s’amuser aussi à rendre l’annonce TTS un peu plus intelligente en exploitant la base de données, en calculant par exemple la différence avec la pesée de la veille, ou en effectuant une moyenne sur les jours précédents. C’est aussi un autre avantage, on peut faire ce que l’on veut pour avoir l’information que l’on souhaite.

Je rappelle qu’un exemple d’exploitation DIY d’une balance Withings avec Eedomus a déjà été publié sur le site : http://www.touteladomotique.com/index.php?option=com_content&view=article&id=402

 

Vous n'avez pas compris un point ? Vous vous posez une question ? Vous pouvez nous contacter via le bouton Assistance sur votre gauche. N'hésitez pas à demander un rendez-vous téléphonique avec Domotics.

Vous avez aimé cet article ? Vous pouvez le partager sur vos réseaux sociaux pour soutenir son auteur et l'encourager à écrire de nouveaux articles ...

 

Cet article vous est proposé par YannickS: De formation ingénieur en mathématiques appliquées, je travaille dans le secteur Aéronautique en région Toulousaine. J'ai commencé à m'intéresser à la domotique en 2012 avec la construction de ma maison. C'est grâce au partage d'expériences de blogueurs que j'ai pu me documenter, choisir et mettre en place mon installation. Comme un juste retour, je partage à présent ma petite expérience sur ce sujet passionnant.

Mise à jour le Mercredi, 10 Juin 2015 07:58  

Ajouter un Commentaire


Code de sécurité
Rafraîchir

Recherche

Newsletter ?

Bon Plan

Instagram

Publicité



Connexion