Importer les données du Flower Power de Parrot en Bluetooth

Standard

Je me suis offert un Flower Power de Parrot. Cet objet connecté d’une valeur de 49 € permet de recueillir des données provenant de votre pot de fleur.

Je souhaite pouvoir accéder aux données disponibles grâce à l’API Bluetooth depuis Domoticz. En fonction de l’humidité ou de la luminosité je pourrai ensuite déclencher des actions automatiques, par exemple l’arrosage automatique ou l’ouverture d’un store électrique pour protéger mes plantes du soleil.

J’utilise un Raspberry PI B+ sur lequel j’ai installé Raspbian et Domoticz. Il me faudra un connecteur bluetooth USB.

Acquérir un adaptateur bluetooth

Voici la liste des connecteurs compatibles avec mon Raspberry Pi. Pour ma part, je me suis offert celui-ci.

Activer le bluetooth sur le Raspberry PI

Après branchement de votre dongle bluetooth, il faut activer le bluetooth de votre OS Rasbian et vérifier son bon fonctionnement. Voici un petit tuto très bien fait.

Installer NodeJS

NodeJS dispose de librairie simplifiant l’accès au Flower Power en Bluetooth. Cet autre tuto de Pierre Dandumont vous expliquera comment installer node et les librairies nécessaires.

Et si vous êtes curieux n’hésitez pas à consulter la documentation officielle de l’API bluetooth du Flower Power de Parrot.

Le script de test.js permet de se connecter au Flower Power et de vérifier l’état de la luminosité, de la température de l’air et du sol, de l’humidité dans le sol et de l’engrais.

  • sunlight = 2.26 mol/m²/d
  • soil electrical conductivity = 1021.00
  • soil temperature = 17.50°C
  • air temperature = 17.09°C
  • soil moisture = 31.43%

Alimenter Domoticz

Pour importer les données dans Domoticz, il est nécessaire de créer deux dispositifs dummy device :

  • 1 dispositif de type Température et Humidité,
  • 1 dispositif de type Lux.

Pour rappel, il vous faudra un matériel Dummy que l’on peut ajouter dans  Domoticz depuis l’interface Configuration > Matériels.

Le matériel Dummy ajouté, vous pouvez créer de nouveaux capteurs Dummy. Chaque capteur sera mis à jour depuis l’API JSON de Domoticz.

Dispositifs dummy pour le Flower Power

Le dispositif de température dont l’ID est 252 sera alimenté au travers de l’API JSON avec l’URL suivante :

http://domoticz:8080/json.htm?type=command&param=udevice&idx=252&nvalue=0&svalue=20;45;1

  • IDx : 252
  • Température : 20°
  • Humidité : 45 %
  • Statut :
    • 0=Normal
    • 1=Comfortable
    • 2=Dry
    • 3=Wet

Dispositif de Température et Humidité

Plus d’info sur l’API JSON de Domoticz pour alimenter un dispositif Température et Humidité ici.

Nous faisons de même avec le dispositif de luminosité. Mais la valeur recueillie avec le script est en mol/m²/d (Photosynthetically Active Radiation ou PAR). Il faut simplement multiplier la valeur par 53.93 pour obtenir une valeur en Lux ou Lumen (Plus d’info sur la méthode de conversion ici).

L’URL de l’API JSON sera la suivante :

http://domoticz:8080/json.htm?type=command&param=udevice&idx=253&svalue=7.0109

  • IDx : 253
  • Valeur recueillie : 0,13
  • Valeur envoyée à Domoticz : 7.010

Dispositif de luminosité

Automatiser la synchronisation avec un script NodeJS

Les données récoltées par le script de test peuvent être envoyées à Domoticz grâce à l’API JSON. J’ai apporté quelques petites adaptations pour effectuer deux requêtes HTTP dans le script NodeJS.



/* [...] */
var http = require('http');

var options = {
 host: '192.168.1.111',
 port: '8080',
 path: ''
};

var path = '/json.htm?type=command&param=udevice&idx=';
var AirTemperature = 0;
var Humidity = 0;

FlowerPower.discover(function(flowerPower) {
 async.series([
 function(callback) {
 flowerPower.on('disconnect', function() {
 console.log('disconnected!');
 process.exit(0);
 });


flowerPower.on('sunlightChange', function(sunlight) {
 console.log('sunlight = ' + sunlight.toFixed(2) + ' mol/m²/d');
 options.path = path + '253&svalue=' + (sunlight.toFixed(2) * 53.93);
 var req = http.request(options).end();
 });

 flowerPower.on('soilElectricalConductivityChange', function(soilElectricalConductivity) {
 console.log('soil electrical conductivity = ' + soilElectricalConductivity.toFixed(2));
 });

 flowerPower.on('soilTemperatureChange', function(temperature) {
 console.log('soil temperature = ' + temperature.toFixed(2) + '°C');
 options.path = path + '252&svalue=' + AirTemperature + ';' + Humidity + ';2' ;
 var req = http.request(options).end()
 });
/* [...] */

 function(callback) {
 console.log('readAirTemperature');
 flowerPower.readAirTemperature(function(temperature) {
 console.log('air temperature = ' + temperature.toFixed(2) + '°C');
 AirTemperature = temperature.toFixed(2);
 callback();
 });
 },
 function(callback) {
 console.log('readSoilMoisture');
 flowerPower.readSoilMoisture(function(soilMoisture) {
 console.log('soil moisture = ' + soilMoisture.toFixed(2) + '%');
 Humidity = soilMoisture.toFixed(2);
 callback();
 });
 },

/*[...]*/

Le script complet est téléchargeable ici >>.

L’ajout dans la crontab du user root :

sudo crontab -e
5 * * * * /usr/local/bin/node /home/pi/node_modules/flower-power/domoticz.js > /dev/null 2>&1

Voici la première étape, la suivante consistera à déclencher une action automatique d’arrosage. Pour toute proposition ou adaptation n’hésitez pas à me contacter ou à commenter cet article.

Découvrez MS-DOS Mobile sur votre Lumia

Standard

MS-DOS est maintenant disponible sur votre téléphone Windows Phone.

En dehors du fait que cette vidéo était un canular pour le 1er avril, l’application existe bel bien et va vous rappeler de bon souvenirs. Celle-ci vous permet d’accéder rapidement à des fonctionnalités de votre smartphone, de là à augmenter votre productivité… faut pas pousser.

Voici la liste des commandes possibles :

  • camera : activer la caméra dans un mode pixélisé qui rappel bien l’ASCII Art,
  • cls : pour effacer les commandes à l’écran
  • color <attr> : pour changer la couleur du fond de la fenêtre MS-Dos.
  • phone select : pour sélectionner un contact dans votre carnet d’adresses,
  • date ou time : pour afficher la date ou l’heure,
  • dir : pour afficher le contenu du dossier en cours,
  • email, sms, or phone : pour ouvrir un email, un sms ou appeler,
  • exit pour quitter l’application.

Pour découvrir quelques commandes regarder aussi cette vidéo de PhoneDog