Page 6 sur 6

Re: Parrot flower Power

Publié : 19 mai 2017, 09:09
par Jihem
Bonjour
Merci Pierre pour ta réponse mais ça ne change rien.
Toujours les identifiants du capteur mais pas les données interessants :twisted:
Est ce que ça marche chez toi?
merci

Re: Parrot flower Power

Publié : 15 juin 2017, 11:26
par totof60
hello Jihem

J'ai (de) commenté les lignes suivantes dans test.js

Code : Tout sélectionner

 //console.log('writeFriendlyName');
        //flowerPower.writeFriendlyName(friendlyName, callback);
J'ai maintenant le retour des valeurs de mon parrot

Re: Parrot flower Power

Publié : 19 juin 2017, 15:29
par totof60
Par contre la modif de Deennoo pour le niveau de la pile ne fonctionne pas pour moi .

En ssh avec Putty le script me renvoie bien les infos du Flower-power

  • connectAndSetup
    readSystemId
    system id = 90:03:b7:00:00:e8:26:4d
    readSerialNumber
    serial number = PI040297AA3L018662�����
    readFirmwareRevision
    firmware revision = 2016-09-14_hawaii-2.0.3_hardware-config-MP
    readHardwareRevision
    hardware revision = 2013-07-26_hawaiiProduction-1.2_protoDV-bootloader
    readManufacturerName
    manufacturer name = Parrot
    readBatteryLevel
    battery level = 89
    readFriendlyName
    friendly name = Flower power 264D���
    readColor
    color = brown
    readSunlight
    sunlight = 6.24 mol/m²/d


Mais si j'ajoute la modif de Deennoo j'ai une erreur :
  • pi@raspberrypi:~/node_modules/flower-power$ sudo node test.js
    /home/pi/node_modules/flower-power/test.js:123
    options.path = path + ‘52&nvalue=52&svalue=’ + batteryLevel;
    ^
    SyntaxError: Unexpected token ILLEGAL
    at Object.exports.runInThisContext (vm.js:76:16)
    at Module._compile (module.js:513:28)
    at Object.Module._extensions..js (module.js:550:10)
    at Module.load (module.js:458:32)
    at tryModuleLoad (module.js:417:12)
    at Function.Module._load (module.js:409:3)
    at Module.runMain (module.js:575:10)
    at run (bootstrap_node.js:352:7)
    at startup (bootstrap_node.js:144:9)
    at bootstrap_node.js:467:3
    pi@raspberrypi:~/node_modules/flower-power$

Mon code :

Code : Tout sélectionner

function(callback) {
      console.log('readBatteryLevel');
      flowerPower.readBatteryLevel(function(error,batteryLevel) {
options.path = path + ‘52&nvalue=52&svalue=’ + batteryLevel;
        console.log('battery level = ' + batteryLevel);

var req = http.request(options).end();

        callback();
      });
    },
Merci d'avance

Re: Parrot flower Power

Publié : 21 juin 2017, 11:36
par totof60
Finalement ça fonctionne
Deux petits symboles qui n’étaient pas les bons et deux jours à se faire piquer les yeux avec ce p****n de code :roll:
Image

Le bon code :

Code : Tout sélectionner

function(callback) {
      console.log('readBatteryLevel');
      flowerPower.readBatteryLevel(function(error,batteryLevel) {
options.path = path + '52&nvalue=0&svalue=' + (error,batteryLevel);
        console.log('battery level = ' + batteryLevel);

var req = http.request(options).end();

        callback();
      });
    },

Re: Parrot flower Power

Publié : 22 juin 2017, 09:05
par totof60
Je n'ai pas réussi a faire des notification avec un device qui a deux valeurs ( température et humidité)

J'ai donc créé deux devices ; un pour la température et un pour l'humidité.
Les notifications fonctionnent.

Pour ceux que cela intéresse voici le code en entier
Il vous restera à le modifier avec votre IP de Domoticz : host:
Le port de votre Domoticz : port:
Et les IDX de vos devices (pour moi 50, 51, 52, 66, 68)

Pour avoir température et humidité dans le même device il faudra de-commenter la ligne

Code : Tout sélectionner

//options.path = path + '50&svalue=' + AirTemperature + ';' + Humidity + ';2' ;
le code

Code : Tout sélectionner

var async = require('async');

var FlowerPower = require('./index');

var hasCalibratedData = false;

var http = require('http');

var options = {
  host: '192.168.0.236',
  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 + '51&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 + '50&svalue=' + AirTemperature + ';' + Humidity + ';2' ;

options.path = path + '66&svalue=' + AirTemperature + ';2' ;
        var req = http.request(options).end()
      });

      flowerPower.on('airTemperatureChange', function(temperature) {
        console.log('air temperature = ' + temperature.toFixed(2) + '°C');
      });

      flowerPower.on('soilMoistureChange', function(soilMoisture) {
        console.log('soil moisture = ' + soilMoisture.toFixed(2) + '%');
options.path = path + '68&svalue=' + Humidity + ';2' ;

var req = http.request(options).end()

      });

      flowerPower.on('calibratedSoilMoistureChange', function(soilMoisture) {
        console.log('calibrated soil moisture = ' + soilMoisture.toFixed(2) + '%');
      });

      flowerPower.on('calibratedAirTemperatureChange', function(temperature) {
        console.log('calibrated air temperature = ' + temperature.toFixed(2) + '°C');
      });

      flowerPower.on('calibratedSunlightChange', function(sunlight) {
        console.log('calibrated sunlight = ' + sunlight.toFixed(2) + ' mol/m²/d');
      });

      flowerPower.on('calibratedEaChange', function(ea) {
        console.log('calibrated EA = ' + ea.toFixed(2));
      });

      flowerPower.on('calibratedEcbChange', function(ecb) {
        console.log('calibrated ECB = ' + ecb.toFixed(2) + ' dS/m');
      });

      flowerPower.on('calibratedEcPorousChange', function(ecPorous) {
        console.log('calibrated EC porous = ' + ecPorous.toFixed(2)+ ' dS/m');
      });

      console.log('connectAndSetup');
      flowerPower.connectAndSetup(callback);
    },
    function(callback) {
      console.log('readSystemId');
      flowerPower.readSystemId(function(error, systemId) {
        console.log('\tsystem id = ' + systemId);
        callback();
      });
    },
    function(callback) {
      console.log('readSerialNumber');
      flowerPower.readSerialNumber(function(error, serialNumber) {
        console.log('\tserial number = ' + serialNumber);
        callback();
      });
    },
    function(callback) {
      console.log('readFirmwareRevision');
      flowerPower.readFirmwareRevision(function(error, firmwareRevision) {
        console.log('\tfirmware revision = ' + firmwareRevision);

        var version = firmwareRevision.split('_')[1].split('-')[1];

        hasCalibratedData = (version >= '1.1.0');

        callback();
      });
    },
    function(callback) {
      console.log('readHardwareRevision');
      flowerPower.readHardwareRevision(function(error, hardwareRevision) {
        console.log('\thardware revision = ' + hardwareRevision);
        callback();
      });
    },
    function(callback) {
      console.log('readManufacturerName');
      flowerPower.readManufacturerName(function(error, manufacturerName) {
        console.log('\tmanufacturer name = ' + manufacturerName);
        callback();
      });
    },
     function(callback) {
      console.log('readBatteryLevel');
      flowerPower.readBatteryLevel(function(error,batteryLevel) {
options.path = path + '52&nvalue=0&svalue=' + (error,batteryLevel);
        console.log('battery level = ' + batteryLevel);

var req = http.request(options).end();

        callback();
      });
    },
	  function(callback) {
      console.log('readFriendlyName');
      flowerPower.readFriendlyName(function(error, friendlyName) {
        console.log('\tfriendly name = ' + friendlyName);

        //console.log('writeFriendlyName');
        //flowerPower.writeFriendlyName(friendlyName, callback);

callback();
      });
    },
    function(callback) {
      console.log('readColor');
      flowerPower.readColor(function(error, color) {
        console.log('\tcolor = ' + color);

      callback();
      });
    },
    function(callback) {
      console.log('readSunlight');
      flowerPower.readSunlight(function(error, sunlight) {
        console.log('sunlight = ' + sunlight.toFixed(2) + ' mol/m²/d');

        callback();
      });
    },
    // function(callback) {
    //   console.log('readSoilElectricalConductivity');
    //   flowerPower.readSoilElectricalConductivity(function(error, soilElectricalConductivity) {
    //     console.log('soil electrical conductivity = ' + soilElectricalConductivity.toFixed(2));

    //     callback();
    //   });
    // },
    function(callback) {
      console.log('readSoilTemperature');
      flowerPower.readSoilTemperature(function(error, temperature) {
        console.log('soil temperature = ' + temperature.toFixed(2) + '°C');

        callback();
      });
    },
    function(callback) {
      console.log('readAirTemperature');
      flowerPower.readAirTemperature(function(error, temperature) {
        console.log('air temperature = ' + temperature.toFixed(2) + '°C');
	AirTemperature = temperature.toFixed(2);

        callback();
      });
    },
    function(callback) {
      console.log('readSoilMoisture');
      flowerPower.readSoilMoisture(function(error, soilMoisture) {
        console.log('soil moisture = ' + soilMoisture.toFixed(2) +'%' );
Humidity = soilMoisture.toFixed(2);

        callback();
      });
    },
    function(callback) {
      if (hasCalibratedData) {
        async.series([
          function(callback) {
            console.log('readCalibratedSoilMoisture');
            flowerPower.readCalibratedSoilMoisture(function(error, soilMoisture) {
              console.log('calibrated soil moisture = ' + soilMoisture.toFixed(2) + '%');

              callback();
            });
          },
          function(callback) {
            console.log('readCalibratedAirTemperature');
            flowerPower.readCalibratedAirTemperature(function(error, temperature) {
              console.log('calibrated air temperature = ' + temperature.toFixed(2) + '°C');

              callback();
            });
          },
          function(callback) {
            console.log('readCalibratedSunlight');
            flowerPower.readCalibratedSunlight(function(error, sunlight) {
              console.log('calibrated sunlight = ' + sunlight.toFixed(2) + ' mol/m²/d');

              callback();
            });
          },
                   function() {
            callback();
          }
        ]);
      } else {
        callback();
      }
    },
    function(callback) {
      console.log('enableLiveMode');
      flowerPower.enableLiveMode(callback);
    },
    function(callback) {
      console.log('live mode');
      setTimeout(callback, 5000);
    },
    function(callback) {
      console.log('disableLiveMode');
      flowerPower.disableLiveMode(callback);
    },
    function(callback) {
      if (hasCalibratedData) {
        async.series([
          function(callback) {
            console.log('enableCalibratedLiveMode');
            flowerPower.enableCalibratedLiveMode(callback);
          },
          function(callback) {
            console.log('calibrated live mode');
            setTimeout(callback, 5000);
          },
          function(callback) {
            console.log('disableCalibratedLiveMode');
            flowerPower.disableCalibratedLiveMode(callback);
          },
          function() {
            callback();
          }
        ]);
      } else {
        callback();
      }
    },
    function(callback) {
      console.log('ledPulse');
      flowerPower.ledPulse(callback);
    },
    function(callback) {
      console.log('delay');
      setTimeout(callback, 2000);
    },
    function(callback) {
      console.log('ledOff');
      flowerPower.ledOff(callback);
    },
    function(callback) {
      console.log('disconnect');
      flowerPower.disconnect(callback);
    }
  ]);
});
Ne m'en demandez pas plus !! je n'ai fais que pomper des trucs existants ( merci Deennoo)