As part of our studies at Polytech Sorbonne (ex Polytech Paris UPMC), teachers give us a project which consists in creating a monitoring for plants in greenhouse for the agri-food section of our engineer school.
The created system must be able to send information about the plants as moisture, brightness, temperature…
This design brief has been defined by the agri-food section, for their experimentation. They had to compare two types of plantations: one was only corn and the other was corn with clover. Putting our system in a realistic situation gave us a real opportunity to test the proper functioning of it. After one week of implementation, we were able to confirm that our project is reliable and satisfies well the need. Our collected data was coherent with the theory established by the agri-food section.
Our projectis completed, and here are the explanations of how to realize it by yourself.
It took us almost threemonths (2h of work per week) to achieve it, so it is quite an easy project.
Detailed features
The monitoring consists in managing:
- Air/soil moisture
- Air/soil temperature
- Brightness (and even RGB rays)
using the microcontroller and the sensors
Additional features:
- It also sends the localization, and so gives weather forecasts.
- We have created a Twitter account for our monitoring. Each message sent using Sigfox is also sent as a Tweet. Moreover, we wrote a little code which allows the user to question the system.
Prerequisites
Have knowledge in
- Microcontroller programming (C++)
- How to read a datasheet and extract the most important data
- I2C, SPI, UART, CRC Protocols
How to send data using Sigfox:
- AT Command
- How many message can be sent per day?
- How to build the message? (JSON language)
Project info
- Status: Completed
- Difficulty: Intermediate (prerequisites in computer sciences)
- Estimated time: 1 month and a half
1. Carry out a mapping of all the pins used for the project, depending on the technologies used to interpret the data
2. Programming the microcontroller STM32 NUCLEO-L432KC in terms of
- Retrieving data from the sensors
- Converting the data to send using Sigfox
- Displaying the data on the OLED screen
- Configuring the sleep mode of the microcontroller when the Sigfox module does not send message
3. Configure the dashboard where all the retrieved data will be displayed
- Create charts
- Save data in database
- Use this data to display weather forecast
- Configure Twitter & Mails
- CSV reports (weekly, monthly and half-yearly)
- If you have several Sigfox modules, create a dropdown list to allow the end-user to filter data to display
Which pins to use?
We have 5 sensors to use. But they do not operate the same way. Reading the datasheet of the NUCLEO L432KC allows to sort the pins to use.
Here is the mapping we have defined for our project:
We have made it this way so there is no conflict between the different used technologies. It is the best wiring we could do with the constraints linked to the datasheet.
How to make it workProgramming the microcontroller - Libraries to use
#include "mbed.h"
#include "DS18B20.h"
#include "DHT.h"
#include "TSL2561.h"
#include "Adafruit_SSD1306.h"
#include "WakeUp.h"
Programming the microcontroller - Configuration
Our microcontroller program is flexible, to adapt to several configurations. You can choose to enable/disable sensors, if you want a simpler device, or if you want to reduce its consumption.
To do this, go on the mapping.h file and comment/uncomment the following lines, according to your needs:
// Uncomment line to enable the focused object/sensor :
#define OLED_ACTIF
#define SIGFOX_ACTIF
#define I2C_ACTIF
#define DEBUG_UART_ACTIF
#define DHT_ACTIF
#define GROVE_MOIST_ACTIF
#define ONEWIRE_TEMP_ACTIF
#define LUX_ACTIF
#define RGB_ACTIF
#define BATTERIE_ACTIF
For instance, you may not need the screen. The web interface may be enough. For that, you just have to comment the following line:
//#define BATTERIE_ACTIF
Other parameters can be modified in this file for advanced users, such as :
- Sensors calibration
- Pinout assignment
- Measurement accuracy
- Timings
Programming the microcontroller - Main
/!\ Comments are in French /!\
Initialisation :
Our microcontroller must be interfaced with all the sensors / modules :
/*********************************
Initialisation
*********************************/
#ifdef BATTERIE_ACTIF
float BATTERIE_MIN = 33;
float BATTERIE_MAX = 42;
#endif
#ifdef OLED_ACTIF
// Initialisation de l'écran
OLED.fillRect(0,0,LARGEUR_OLED,HAUTEUR_OLED,BLACK);
OLED.setTextCursor(0,10); OLED.printf("===================");
OLED.setTextCursor(0,20); OLED.printf(" PlantSigfox ");
OLED.setTextCursor(0,30); OLED.printf(" Projet ei2i-4 ");
OLED.setTextCursor(0,40); OLED.printf("Jeanne Anais Thomas");
OLED.setTextCursor(0,50); OLED.printf("===================");
OLED.display();
#endif
#ifdef DEBUG_UART_ACTIF
// Initialisation des communications UART
pc.format(8,SerialBase::None,1);
pc.baud(9600);
#endif
#ifdef SIGFOX_ACTIF
Sigfox.format(8,SerialBase::None,1);
Sigfox.baud(9600);
#endif
#ifdef ONEWIRE_TEMP_ACTIF
// Initialisation du capteur de température
while (!Temperature.initialize()); // on attend que le capteur soit initialisé avant de pouvoir effectuer des mesures
#endif
#ifdef RGB_ACTIF
// Initialisation du TCS34725
rgb.init_RGB();
#endif
// Attente de 5 secondes avant le démarrage du programme
wait(5);
Our main loop is divided in 3 parts :
1 - Acquisition of measures and Data Processing :
To make measurement points more reliable, each point corresponds to a measurement average over a period of time (defined in Mapping.h).
/*********************************
Mesure des ADC
*********************************/
// On effectue une moyenne sur une quantité de relevés ( pour avoir une mesure fiable )
#if defined(GROVE_MOIST_ACTIF) || defined(BATTERIE_ACTIF)
Niveau_Batterie = 0;
HumidSol = 0;
for (i=0; i < NB_MESURES; i++)
{
#ifdef BATTERIE_ACTIF
// Batterie
VBAT = 100 * Batterie; // Lecture de l'entrée ADC
Niveau_Batterie += ((VBAT - BATTERIE_MIN) / (BATTERIE_MAX - BATTERIE_MIN)) * 100 ;
#endif
#ifdef GROVE_MOIST_ACTIF
// Humidité du Sol (Grove)
HumidSol += ((Capteur_Moisture - GROVE_MOIST_MIN) / (GROVE_MOIST_MAX - GROVE_MOIST_MIN)) * 100;
#endif
wait(TEMPS_MESURE);
}
#endif
// Moyennage du résultat
#ifdef GROVE_MOIST_ACTIF
HumidSol /= NB_MESURES;
#endif
#ifdef BATTERIE_ACTIF
Niveau_Batterie /= NB_MESURES;
// Limitation de la batterie
if (Niveau_Batterie >100) Niveau_Batterie = 100;
// Si la batterie est déconnectée, on doit le faire remarquer (code : 101)
if (Niveau_Batterie < 0) Niveau_Batterie = 101;
#endif
/*********************************
Température du sol (OneWIRE)
*********************************/
#ifdef ONEWIRE_TEMP_ACTIF
Temperature.setResolution(twelveBit); // Le choix de la résolution se fait avant le relevé des données
TempSol = Temperature.readTemperature(); // relevé de données
#endif
/*********************************
Température/Humidité Air (Grove)
*********************************/
#ifdef DHT_ACTIF
int err;
wait(1); // wait 1 second for device stable status
do
{
err = sensor.readData();
wait(1);
}
while (err != 0);
if (err == 0)
{
TempAir = sensor.ReadTemperature(CELCIUS);
HumidAir = sensor.ReadHumidity();
}
#endif
/*********************************
Luminosité / RGB(Adafruit)
*********************************/
#ifdef LUX_ACTIF
Lumiere = COEF_LUX * lum.lux();
#endif
#ifdef RGB_ACTIF
rgb.GET_RGB(&Clear,&Red,&Green,&Blue);
#ifdef RGB_1_OCTET
// On réduit la précision des données brutes en divisant par 256 pour n'avoir qu'un octet seulement
Clear /= 256;
Red /= 256;
Green /= 256;
Blue /= 256;
#endif
#endif
2 - Display and Send data :
The data is displayed on the OLED screen and sent to the cloud via the Sigfox module as a frame.
/*********************************
Affichage OLED
*********************************/
#ifdef OLED_ACTIF
// OLED Reset
OLED.fillRect(0,0,LARGEUR_OLED,HAUTEUR_OLED,BLACK);
line = 0;
// Sol :
#if defined(GROVE_MOIST_ACTIF) && defined(ONEWIRE_TEMP_ACTIF)
OLED.setTextCursor(0,line);
OLED.printf("Sol = %d \tC // %d \t/\t",(int)TempSol,(int)HumidSol);
line +=10;
#endif
// Air :
#ifdef DHT_ACTIF
OLED.setTextCursor(0,line);
OLED.printf("Air = %d \tC // %d \t/\t",(int)TempAir,(int)HumidAir);
line +=10;
#endif
// Intensité lumineuse
#if defined(LUX_ACTIF) && defined(I2C_ACTIF)
OLED.setTextCursor(0,line);
OLED.printf("Light = %d", (int)Lumiere);
OLED.setTextCursor(110,line);
OLED.printf("Lux");
line +=10;
#endif
// Couleurs RGB
#if defined(RGB_ACTIF) && defined(I2C_ACTIF)
OLED.setTextCursor(0,line);
OLED.printf("RGB = %d/%d/%d",Red,Green,Blue);
line +=10;
OLED.setTextCursor(0,line);
OLED.printf("Clear = %d",Clear);
line +=10;
#endif
// Batterie
#ifdef BATTERIE_ACTIF
OLED.setTextCursor(0,line);
if (((int)Niveau_Batterie >= 0) && ((int)Niveau_Batterie <= 100))
{
OLED.printf("Batterie : %d", (int)Niveau_Batterie);
OLED.setTextCursor(110,line);
OLED.printf("\t/\t");
}
else
{
OLED.printf("Prise Secteur");
}
#endif
// Display
OLED.display();
#endif
/****************************************************************************
Envoi des données via le module Sigfox (dépend du format des données)
*****************************************************************************/
#ifdef SIGFOX_ACTIF
#if defined(RGB_2_OCTET) && !defined(RGB_1_OCTET)
// trame 1 : [T°Air , Hum Air , T°Sol , Hum Sol , Lumiere , Batterie]
Sigfox.printf("AT$SS=%02x %02x %02x %02x %04x %02x \r\n",(int)TempAir,(int)HumidAir,(int)TempSol, (int)HumidSol, (int)Lumiere,(int)Niveau_Batterie);
// trame 2 : [Clear, Red, Green, Blue]
Sigfox.printf("AT$SS=%04x %04x %04x %04x \r\n",Clear, Red, Green, Blue);
#endif
#if defined(RGB_1_OCTET) && !defined(RGB_2_OCTET)
// trame : [T°Air , Hum Air , T°Sol , Hum Sol , Lumiere , Batterie, Clear, Red, Green, Blue]
Sigfox.printf("AT$SS=%02x %02x %02x %02x %04x %02x %02x %02x %02x %02x \r\n",(int)TempAir,(int)HumidAir,(int)TempSol, (int)HumidSol, (int)Lumiere,(int)Niveau_Batterie,Clear, Red, Green, Blue);
#endif
#endif
// Envoi des données sur le debug UART (optionnel)
#ifdef DEBUG_UART_ACTIF
#if defined(RGB_2_OCTET) && !defined(RGB_1_OCTET)
// trame 1 : [T°Air , Hum Air , T°Sol , Hum Sol , Lumiere , Batterie]
pc.printf("AT$SS=%02x %02x %02x %02x %04x %02x \r\n",(int)TempAir,(int)HumidAir,(int)TempSol, (int)HumidSol, (int)Lumiere,(int)Niveau_Batterie);
// trame 2 : [Clear, Red, Green, Blue]
pc.printf("AT$SS=%04x %04x %04x %04x \r\n",Clear, Red, Green, Blue);
#endif
#if defined(RGB_1_OCTET) && !defined(RGB_2_OCTET)
// trame : [T°Air , Hum Air , T°Sol , Hum Sol , Lumiere , Batterie, Clear, Red, Green, Blue]
pc.printf("AT$SS=%02x %02x %02x %02x %04x %02x %02x %02x %02x %02x \r\n",(int)TempAir,(int)HumidAir,(int)TempSol, (int)HumidSol, (int)Lumiere,(int)Niveau_Batterie,Clear, Red, Green, Blue);
#endif
#endif
3 - Standby :
The microcontroller then goes into standby mode to limit its consumption during its idle time:
/*********************************
Mise en veille de l'appareil
*********************************/
#if defined(OLED_ACTIF) && defined(OLED_VEILLE)
// Test : éteindre l'écran au bout d'un temps donné
wait (DUREE_AFFICHAGE);
OLED.fillRect(0,0,LARGEUR_OLED,HAUTEUR_OLED,BLACK);
OLED.display();
WakeUp::set_ms((TEMPS_RELEVE-DUREE_AFFICHAGE)* 1000);
deepsleep();
#else
WakeUp::set_ms(TEMPS_RELEVE * 1000);
deepsleep();
#endif
Note: The whole code is dependent on the configuration in Mapping.h file
Programming the microcontroller - Compilation
You can directly download or compile the program on Mbed: https://os.mbed.com/teams/Radiopotache/code/plant-monitoring/
Or you can download the program files:
See "Monitoring Plant Program" .zip files "CAD-Enclosures and custom parts" section.
How to link Sigfox and NodeRed?
We used this tutorial which detailed well how to link the two interfaces. We also used this link to structure our Sigfox message on the callback configuration. Our callback is configured this way. We gave simple names for our variables so it is simpler to retrieve those data on NodeRED.
Creating a dashboard using NodeRED
When you receive a message from Sigfox, all the data from our sensors is localized on the payload. Let's see how to get this data from a simple example:
We decided to arrange data according to the information transported. That is why we have one function block (orange block) per variable. Once the data is retrieved, we display it on a graph (blue blocks).
We had time to play with NodeRED so we decided to create an awesome dashboard.
Left panel groups the general information about the Sigfox module:
- Serial number (dropdown list)
- Power mode
- Geo-tracking
Middle panel displays retrieve data in terms of moisture, temperature and brightness. The button at the bottom of the block generates a CSV report with all the collected values (it is an export of the database).
Right one uses the geo-tracking to inform the end-user about the weather forecasts.
The whole layout can be modify from NodeRED (colors, panels, icons…)
Import a simple example for Sigfox dashboard, to start your own interface :
[{"id":"5c96b484.a1fc9c","type":"tab","label":"Flow 1"},{"id":"b960c664.32b098","type":"http response","z":"5c96b484.a1fc9c","name":"HTTP Response : code 200 (OK)","statusCode":"200","headers":{},"x":474.45287322998047,"y":165.00002098083496,"wires":[]},{"id":"9fc4b2e7.533fd","type":"debug","z":"5c96b484.a1fc9c","name":"Debug Display","active":true,"console":"false","complete":"true","x":417.43335723876953,"y":106.00002098083496,"wires":[]},{"id":"ae7fe3f3.71e6e","type":"http in","z":"5c96b484.a1fc9c","name":"Receive Sigfox","url":"/sigfox","method":"post","upload":false,"swaggerDoc":"","x":120.00000762939453,"y":366.56664657592773,"wires":[["b960c664.32b098","9fc4b2e7.533fd","feec5f3f.115db","d7418941.336cc8","bc5c1eae.a75f1","ee718e11.d4867","9a13dc54.5a0e3","b5a1659.a29cd98"]]},{"id":"9fd3d52c.8ab348","type":"comment","z":"5c96b484.a1fc9c","name":"Basic : Display Sigfox Message in the Debug Console , and display it on your user interface","info":"","x":372.0000305175781,"y":60.3167610168457,"wires":[]},{"id":"feec5f3f.115db","type":"function","z":"5c96b484.a1fc9c","name":"Extraction TempAir","func":"// Extraction du message\nmsg.payload = msg.payload.TempAir;\n\n\nreturn msg;","outputs":1,"noerr":0,"x":440.0235176086426,"y":257.03914165496826,"wires":[["406d6046.23d01"]]},{"id":"d7418941.336cc8","type":"function","z":"5c96b484.a1fc9c","name":"Extraction HumidAir","func":"// Extraction du message\nmsg.payload = msg.payload.HumidAir;\n\nreturn msg;","outputs":1,"noerr":0,"x":440.0234956741333,"y":301.03913497924805,"wires":[["d58d51bf.b2274"]]},{"id":"bc5c1eae.a75f1","type":"function","z":"5c96b484.a1fc9c","name":"Extraction TempSol","func":"// Extraction du message\nmsg.payload = msg.payload.TempSol;\n\nreturn msg;","outputs":1,"noerr":0,"x":437.0234565734863,"y":345.03914165496826,"wires":[["ea126746.1855a8"]]},{"id":"ee718e11.d4867","type":"function","z":"5c96b484.a1fc9c","name":"Extraction HumidSol","func":"// Extraction du message\nmsg.payload = msg.payload.HumidSol;\n\nreturn msg;","outputs":1,"noerr":0,"x":446.02353286743164,"y":391.0392026901245,"wires":[["989ab8f7.b22078"]]},{"id":"b5a1659.a29cd98","type":"function","z":"5c96b484.a1fc9c","name":"Extraction Lumiere","func":"// Extraction du message\nmsg.payload = msg.payload.Lumiere;\n\nreturn msg;","outputs":1,"noerr":0,"x":437.0235176086426,"y":434.03918743133545,"wires":[["c870aa2c.de65e8"]]},{"id":"406d6046.23d01","type":"ui_text","z":"5c96b484.a1fc9c","group":"4486da81.6a8adc","order":3,"width":"5","height":"3","name":"Air Temperature","label":"Air Temperature","format":" {{msg.payload}} °C","layout":"col-center","x":703.0235176086426,"y":257.03914165496826,"wires":[]},{"id":"d58d51bf.b2274","type":"ui_text","z":"5c96b484.a1fc9c","group":"4486da81.6a8adc","order":4,"width":"5","height":"3","name":"Air Moisture","label":"Air Moisture","format":"{{msg.payload}} %","layout":"col-center","x":695.0234127044678,"y":300.0391683578491,"wires":[]},{"id":"ea126746.1855a8","type":"ui_text","z":"5c96b484.a1fc9c","group":"4486da81.6a8adc","order":5,"width":"5","height":"3","name":"Ground Temperature","label":"Ground Temperature","format":"{{msg.payload}} °C","layout":"col-center","x":725.0235805511475,"y":345.0392608642578,"wires":[]},{"id":"989ab8f7.b22078","type":"ui_text","z":"5c96b484.a1fc9c","group":"4486da81.6a8adc","order":6,"width":"5","height":"3","name":"Ground Moisture","label":"Ground Moisture","format":"{{msg.payload}} %","layout":"col-center","x":720.0234718322754,"y":391.0394468307495,"wires":[]},{"id":"c870aa2c.de65e8","type":"ui_text","z":"5c96b484.a1fc9c","group":"4486da81.6a8adc","order":8,"width":"5","height":"4","name":"Light","label":"Light","format":"{{msg.payload}} lux","layout":"col-center","x":680.0235805511475,"y":434.039324760437,"wires":[]},{"id":"d633384f.634bb8","type":"ui_text","z":"5c96b484.a1fc9c","group":"4486da81.6a8adc","order":2,"width":0,"height":0,"name":"Last Measure","label":"Last Measure","format":"{{msg.payload}}","layout":"row-center","x":711.0236740112305,"y":478.205753326416,"wires":[]},{"id":"9a13dc54.5a0e3","type":"function","z":"5c96b484.a1fc9c","name":"Extraction Date","func":"// Extraction du message\nvar Date_Releve = msg.payload.Date;\nvar Heure_Releve = msg.payload.Heure;\nvar Timestamp_Releve = msg.payload.TimeStamp;\n\n// Mise en forme des données\nmsg.payload = \"le \"+Date_Releve+\" à \"+Heure_Releve;\nglobal.set('Timestamp_Releve',Timestamp_Releve);\n\nreturn msg;","outputs":1,"noerr":0,"x":427.0236358642578,"y":478.20573902130127,"wires":[["d633384f.634bb8"]]},{"id":"4486da81.6a8adc","type":"ui_group","z":0,"name":"Conditions actuelles","tab":"31e0c725.86e2","order":2,"disp":true,"width":"10"},{"id":"31e0c725.86e2","type":"ui_tab","z":0,"name":"Accueil","icon":"fa-home ","order":1}]
Access to our Dashboard
View our Dashboard: Follow this link!
Import our Dashboard:
/!\ To use this Dashboard, you need to create account on several sites, to use API (Twitter, OpenWeatherMap , Bluemix, Geonames , ...) /!\
[{"id":"431ef77e.022318","type":"tab","label":"Général","disabled":false,"info":""},{"id":"4b3afa8.fe95904","type":"tab","label":"Relevé et Courbes","disabled":false,"info":""},{"id":"d2895c3e.ef3f6","type":"tab","label":"Etat de l'appareil","disabled":false,"info":""},{"id":"eb67ad82.ee5b1","type":"tab","label":"Prévision Météo","disabled":false,"info":""},{"id":"30251ae0.20acb6","type":"tab","label":"Twitter","disabled":false,"info":""},{"id":"e884629f.ba039","type":"tab","label":"BDD / Rapport CSV","disabled":false,"info":""},{"id":"24cf228e.11172e","type":"tab","label":"Debug","disabled":false,"info":"Contient tous les blocs relatifs à la construction d'une base de données"},{"id":"a9be358b.b57d98","type":"tab","label":"Mis a l'écart","disabled":true,"info":""},{"id":"59b1747d.3b9d2c","type":"twitter-credentials","z":"","screen_name":"@BluemixNodeRed"},{"id":"a923b3dc.dd655","type":"ui_base","z":0,"theme":{"name":"theme-dark","lightTheme":{"default":"#0094CE","baseColor":"#0094CE","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":true,"reset":false},"customTheme":{"name":"","default":"#4B7930","baseColor":"#097479","baseFont":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","reset":false},"themeState":{"base-color":{"default":"#097479","value":"#097479","edited":false},"page-titlebar-backgroundColor":{"value":"#097479","edited":false},"page-backgroundColor":{"value":"#111111","edited":false},"page-sidebar-backgroundColor":{"value":"#000000","edited":false},"group-textColor":{"value":"#0eb8c0","edited":false},"group-borderColor":{"value":"#555555","edited":false},"group-backgroundColor":{"value":"#333333","edited":false},"widget-textColor":{"value":"#eeeeee","edited":false},"widget-backgroundColor":{"value":"#097479","edited":false},"widget-borderColor":{"value":"#333333","edited":false},"base-font":{"value":"-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif"}}},"site":{"name":"[ei2i-4] PlantSigfox","hideToolbar":"false","allowSwipe":"false","dateFormat":"DD/MM/YYYY","sizes":{"sx":48,"sy":48,"gx":6,"gy":6,"cx":6,"cy":6,"px":0,"py":0}}},{"id":"17179bd6.8e09ec","type":"ui_tab","z":"","name":"Etat Général","icon":"fa-microchip","order":7},{"id":"f0f482bc.396a18","type":"ui_tab","z":0,"name":"Température du sol","icon":"fa-fire ","order":2},{"id":"9ac5052c.790aa8","type":"ui_tab","z":0,"name":"Humidité du sol","icon":"fa-tint ","order":3},{"id":"82f38b2c.67f8e","type":"ui_tab","z":0,"name":"Température de l'air","icon":"fa-thermometer-full","order":4},{"id":"b2d033eb.69a548","type":"ui_tab","z":0,"name":"Humidité de l'air","icon":"fa-umbrella ","order":5},{"id":"f82c1347.12de28","type":"ui_tab","z":0,"name":"Luminosité","icon":"fa-sun-o ","order":6},{"id":"31e0c725.86e2","type":"ui_tab","z":0,"name":"Accueil","icon":"fa-home ","order":1},{"id":"e9a3722d.80dad","type":"ui_tab","z":"","name":"Bilans","icon":"fa-database "},{"id":"4b32e5c.2c2431c","type":"ui_group","z":0,"name":"Batterie","tab":"17179bd6.8e09ec","disp":false,"width":"12"},{"id":"1ba1aadb.0ecfdd","type":"ui_group","z":0,"name":"Courbe","tab":"f82c1347.12de28","order":1,"disp":true,"width":"22"},{"id":"47fe6170.22f0c","type":"ui_group","z":0,"name":"Courbe","tab":"f0f482bc.396a18","order":1,"disp":true,"width":"22"},{"id":"44a9939d.2ccfdc","type":"ui_group","z":0,"name":"Courbe","tab":"9ac5052c.790aa8","order":1,"disp":true,"width":"22"},{"id":"b28aee5e.991a1","type":"ui_group","z":0,"name":"Courbes","tab":"82f38b2c.67f8e","order":1,"disp":true,"width":"22"},{"id":"20826e8c.c2fbc2","type":"ui_group","z":0,"name":"Courbe","tab":"b2d033eb.69a548","order":1,"disp":true,"width":"22"},{"id":"4486da81.6a8adc","type":"ui_group","z":0,"name":"Conditions actuelles","tab":"31e0c725.86e2","order":2,"disp":true,"width":"10"},{"id":"f9fce91f.4c8dc","type":"ui_group","z":"","name":"Prévisions météo pour les jours à venir","tab":"31e0c725.86e2","order":3,"disp":true,"width":"10"},{"id":"deaad5b9.8dbf98","type":"ui_group","z":"","name":"Abonnement","tab":"e9a3722d.80dad","order":1,"disp":true,"width":"12"},{"id":"3ebccd86.146c02","type":"ui_group","z":"","name":"Informations générales","tab":"31e0c725.86e2","order":1,"disp":true,"width":"9"},{"id":"1a55655b.d0c5eb","type":"os-config","z":"a9be358b.b57d98","cfgtype":"api","region":"london","projectId":"plantsigfox","userId":"jeanne.baumier@etu.upmc.fr","userName":"Jeanne","password":"Sigfox@EI2I4","name":"Database_Sigfox_Bluemix"},{"id":"d2ecd5e4.8e5de","type":"ui_group","z":"","name":"Téléchargements","tab":"e9a3722d.80dad","order":2,"disp":true,"width":"9"},{"id":"285ef331.99a0cc","type":"ui_group","z":"24cf228e.11172e","name":"Journal des événements du Dashboard","tab":"","order":3,"disp":true,"width":"8"},{"id":"247b6f68.bed51","type":"ui_group","z":"24cf228e.11172e","name":"Default","tab":"","disp":true,"width":"6"},{"id":"fdc7f639.dde968","type":"ui_group","z":"24cf228e.11172e","name":"Default","tab":"","disp":true,"width":"6"},{"id":"8828bba8.9c6ed8","type":"darksky-credentials","z":"","key_identifier":"plantsigfox"},{"id":"507a5bfb.1f0484","type":"ui_group","z":"","name":"Test","tab":"b74ac0d8.5b0c8","disp":true,"width":"12"},{"id":"b74ac0d8.5b0c8","type":"ui_tab","z":"","name":"Test","icon":"dashboard"},{"id":"67dfe011.12b02","type":"os-config","z":"","cfgtype":"api","region":"london","projectId":"plantsigfox","userId":"plantsigfox","userName":"Jeanne BAUMIER","password":"QjT0ClOH7WkiDTJu9A0vOjvQ4jXbGe54b9773fPlq3-c","name":"QjT0ClOH7WkiDTJu9A0vOjvQ4jXbGe54b9773fPlq3-c"},{"id":"a93f45fe.c5053","type":"ui_tab","z":"","name":"Couleurs RGB","icon":"fa-paint-brush","order":10},{"id":"80d54e5.43a4f3","type":"ui_group","z":"","name":"Dernier Relevé","tab":"a93f45fe.c5053","order":1,"disp":true,"width":"4"},{"id":"3d1a6b05.6bd064","type":"ui_group","z":"","name":"Graphique","tab":"a93f45fe.c5053","order":2,"disp":true,"width":"20"},{"id":"b8ed1c49.8f028","type":"twitter-credentials","z":"","screen_name":"@OurPlantesLife"},{"id":"b784a4ee.dd0218","type":"ui_group","z":"","name":"Charts","tab":"61ede452.e9e74c","order":2,"disp":false,"width":"6"},{"id":"4c588eee.9af33","type":"ui_group","z":"","name":"Inputs","tab":"61ede452.e9e74c","order":1,"disp":false,"width":"6"},{"id":"1fa66153.b16a0f","type":"ui_group","z":"","name":"Group 3","tab":"61ede452.e9e74c","order":3,"disp":false,"width":"6"},{"id":"61ede452.e9e74c","type":"ui_tab","z":"","name":"Charts","icon":"dashboard","order":2},{"id":"c7c48853.1fc9d8","type":"coap-server","z":"","name":"Coap serveur","port":"5683"},{"id":"6a529727.82f428","type":"ui_tab","z":"","name":"COAP","icon":"dashboard"},{"id":"97389c05.0ff25","type":"ui_group","z":"","name":"coap","tab":"6a529727.82f428","disp":true,"width":"6"},{"id":"3acfb5b4.1c67ca","type":"function","z":"d2895c3e.ef3f6","name":"On compare le niveau de batterie et le seuil","func":"// Variable de temps : on relève l'heure/date actuelle\nvar now = new Date(); \nvar strDate = now.toString();\n\n// Variable de batterie : on récupère le niveau de la batterie pour la comparer à un niveau de seuil\nvar Batterie = global.get('Batterie');\nvar Seuil = global.get('Seuil_Batterie');\n\n// Réception du message provenant du bloc Batterie\nif(msg.topic === \"Batterie\")\n{\n Batterie = msg.payload;\n global.set('Batterie',Batterie);\n}\n\n// Réception du message provenant du bloc Seuil_Batterie\nif(msg.topic === \"Seuil\")\n{\n Seuil = msg.payload;\n global.set('Seuil_Batterie',Seuil);\n}\n\n// Comparaison entre le niveau de batterie et le seuil\nelse if (Batterie < Seuil && Batterie > 0)\n{\n // Envoi d'une alerte si la batterie est trop faible\n var Notif = '[' + strDate + ']' +' Attention Batterie faible ! ' + Batterie + '% restant';\n msg.payload = Notif;\n return msg;\n}\n\n\n\n\n\n","outputs":1,"noerr":0,"x":457.00006103515625,"y":488.9999198913574,"wires":[["35cf08af.90c538"]]},{"id":"6c2c8af9.c5c894","type":"inject","z":"d2895c3e.ef3f6","name":"","topic":"Batterie","payload":"'Batterie'","payloadType":"global","repeat":"2","crontab":"","once":true,"x":155.0195770263672,"y":553.00390625,"wires":[["26eca98f.d29c46"]]},{"id":"26eca98f.d29c46","type":"function","z":"d2895c3e.ef3f6","name":"On indique si la batterie est branchée ou non","func":"// Variable de temps : on relève l'heure/date actuelle\nvar now = new Date(); \nvar strDate = now.toString();\n\n// Variable de batterie : on récupère le niveau de la batterie pour la comparer à un niveau de seuil\nvar Batterie = global.get('Batterie');\n\n// Dans le programme du microcontrôleur, la valeur sera -1 si la batterie n'est pas surveillée\nif (Batterie == -1 )\n{\n msg.payload = \"Relié sur secteur\";\n}\nelse if ((Batterie >=0) && (Batterie <= 100))\n{\n msg.payload = \"Branché sur Batterie\";\n}\nelse if (Batterie == -3 )\n{\n Batterie = global.set('Batterie',-3);\n msg.payload = \"Attente du prochain relevé\";\n}\nelse\n{\n Batterie = global.set('Batterie',-2);\n msg.payload = \" --- \";\n}\n\nreturn msg;\n","outputs":1,"noerr":0,"x":458.0195770263672,"y":553.0039291381836,"wires":[["95daa7c.2f22658"]]},{"id":"ac5eacbc.2af5","type":"inject","z":"eb67ad82.ee5b1","name":"Horloge de mise à jour","topic":"","payload":"","payloadType":"date","repeat":"1200","crontab":"","once":true,"x":149,"y":383.00006103515625,"wires":[["2ea86e43.be1112"]]},{"id":"d218a940.4bca6","type":"debug","z":"a9be358b.b57d98","name":"Coordonnées Météo","active":true,"console":"false","complete":"true","x":526.0001831054688,"y":278.00003242492676,"wires":[]},{"id":"8f584237.027b58","type":"weather_insights","z":"a9be358b.b57d98","name":"Prévisions 10 jours","host":"twcservice.eu-gb.mybluemix.net","service":"/forecast/daily/10day.json","geocode":"{{msg.payload}}","units":"m","language":"","x":524.0001525878906,"y":388.9999876022339,"wires":[["5d7cfd9c.0a8f84","943c32b5.9dc2d8","3e0925ff.4279da"]]},{"id":"5d7cfd9c.0a8f84","type":"debug","z":"a9be358b.b57d98","name":"Debug Weather","active":true,"console":"false","complete":"true","x":773.0002365112305,"y":234.99999046325684,"wires":[]},{"id":"6a90634d.21230c","type":"function","z":"a9be358b.b57d98","name":"Récup lat/lng","func":"// Code trouvé sur : \n// https://stackoverflow.com/questions/45784308/geocoding-node-red-node-google-error-invalid-request-invalid-latlng-paramet\n\nvar coords ={};\nvar latitude= global.get('lat');\nvar length = global.get('lng');\ncoords.location = {lat:latitude, lon:length};\nreturn coords;","outputs":1,"noerr":0,"x":337.5001449584961,"y":387.33327865600586,"wires":[["8f584237.027b58","d218a940.4bca6"]]},{"id":"e22223eb.9bcef8","type":"inject","z":"a9be358b.b57d98","name":"Horloge de mise à jour","topic":"","payload":"","payloadType":"date","repeat":"300","crontab":"","once":true,"x":128.00000762939453,"y":388.99991035461426,"wires":[["6a90634d.21230c"]]},{"id":"943c32b5.9dc2d8","type":"function","z":"a9be358b.b57d98","name":"Prévisions des températures ","func":"// Déclaration d'un tableau de messages\nvar outputMsgs = [];\n\n// tableau récupérant les résultats\nvar Temperature = [];\nvar Titre = [];\n\n// Traitement des données\nfor (i=1;i<=10;i++)\n{\n // Récupération des prévisions\n Temperature[i] = ((msg.forecasts[i].max_temp) - (msg.forecasts[i].min_temp))/2;\n Titre[i] = msg.forecasts[i].dow ;\n //'Jour '+i;\n \n // Mise en forme des messages\n outputMsgs.push({topic:Titre[i],payload:Temperature[i]});\n}\n\n// Envoi du tableau de messages\nreturn [ outputMsgs ];","outputs":"1","noerr":0,"x":805,"y":338.9998950958252,"wires":[["98406f6c.c64c28"]]},{"id":"3e0925ff.4279da","type":"function","z":"a9be358b.b57d98","name":"Résumé météo en fonction du jour choisi","func":"var Jour_Choisi;\nvar Resume = [];\n\n// Récupération des prévision\nif (msg.topic !== 'Resume Meteo')\n{\n for (i=1;i<=10;i++)\n {\n // Récupération et stockage des prévisions\n Resume[i] = msg.forecasts[i].narrative;\n global.set('Prevision_Resume'+i,Resume[i]);\n }\n}\n\n// Choix de la prévision à afficher\nmsg.payload=\n{\n 'jour': global.get('Resume_Meteo'),\n 'resume': global.get('Prevision_Resume'+global.get('Resume_Meteo'))\n};\n\nreturn msg;\n\n\n\n","outputs":"1","noerr":0,"x":825,"y":498.9998950958252,"wires":[["48370021.574e9","867e6bcb.34097"]]},{"id":"f7807307.145c58","type":"function","z":"a9be358b.b57d98","name":"Sauvegarde dans une variable globale","func":"global.set('Resume_Meteo',msg.payload);\n\nreturn msg;\n","outputs":1,"noerr":0,"x":465,"y":558.9998950958252,"wires":[["3e0925ff.4279da"]]},{"id":"867e6bcb.34097","type":"debug","z":"a9be358b.b57d98","name":"Debug Résumé","active":true,"console":"false","complete":"true","x":1145,"y":558.9998950958252,"wires":[]},{"id":"e1c0c995.63e9c","type":"cloudant out","z":"30251ae0.20acb6","name":"nodered","cloudant":"","database":"nodered","service":"plantsigfox-cloudantNoSQLDB","payonly":true,"operation":"insert","x":780,"y":160,"wires":[]},{"id":"89d4c0d.17d3bc","type":"http response","z":"431ef77e.022318","name":"Réponse HTTP vers Sigfox : code 200 (OK)","statusCode":"200","headers":{},"x":439.45286560058594,"y":680.566689491272,"wires":[]},{"id":"7412babe.e7f034","type":"debug","z":"431ef77e.022318","name":"Affichage des messages Reçus","active":true,"console":"false","complete":"true","x":402.433349609375,"y":621.566689491272,"wires":[]},{"id":"70fdee98.c6bdd8","type":"http in","z":"431ef77e.022318","name":"Reception Sigfox","url":"/sigfox","method":"post","upload":false,"swaggerDoc":"","x":86,"y":679.1333141326904,"wires":[["89d4c0d.17d3bc","7412babe.e7f034","87c82fb9.1b3da"]]},{"id":"9fec2a0d.dda04","type":"function","z":"431ef77e.022318","name":"RESET des variables globales","func":"global.set('Seuil_Batterie',\"25\");\n\nreturn msg;","outputs":1,"noerr":0,"x":658.0001373291016,"y":401.5668029785156,"wires":[[]]},{"id":"e62ceb56.761a18","type":"inject","z":"431ef77e.022318","name":"Activation une seule fois lors du déploiement de l'interface","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"","once":true,"x":240.00001525878906,"y":401.5667419433594,"wires":[["9fec2a0d.dda04"]]},{"id":"8f92e765.14e81","type":"comment","z":"431ef77e.022318","name":"Logos et images utilisés dans l'interface ","info":"","x":155,"y":836.8835535049438,"wires":[]},{"id":"1e7fbde8.b856f2","type":"comment","z":"431ef77e.022318","name":"Affichage dans la console des messages Sigfox reçus, et envoi d'une réponse d'acquittement","info":"","x":325,"y":532.8834228515625,"wires":[]},{"id":"8954d60b.308df8","type":"comment","z":"431ef77e.022318","name":"Initialisation ( blocs qui ne s'exécuteront qu'une fois lors du déploiement de l'interface )","info":"","x":305,"y":348.8834352493286,"wires":[]},{"id":"38889b8c.4a1624","type":"comment","z":"431ef77e.022318","name":"Bienvenue sur l'environnement de développement Node-RED ! ","info":"","x":561.5000915527344,"y":155.33335867524147,"wires":[]},{"id":"bbd67d8e.404ca","type":"comment","z":"431ef77e.022318","name":"L'interface est répartie en plusieurs onglet, contenant chacune une fonctionnalité de l'interface","info":"","x":559.5001220703125,"y":205.33339309692383,"wires":[]},{"id":"7315cee7.03f88","type":"comment","z":"431ef77e.022318","name":"Interface développée par Jeanne Baumier , Anais Auberval et Thomas Broussard","info":"","x":285.00000762939453,"y":20,"wires":[]},{"id":"3e9a7228.a7447e","type":"comment","z":"431ef77e.022318","name":"Etudiants en ei2i-4 à Polytech Paris UPMC","info":"","x":165,"y":58.0000057220459,"wires":[]},{"id":"377d2aa0.d7c626","type":"comment","z":"4b3afa8.fe95904","name":"Récupération des relevés météorologiques du capteur PlantSigfox et affichages des courbes liées à ces données","info":"","x":631.5001525878906,"y":123.33336067199707,"wires":[]},{"id":"af25af92.131ac","type":"comment","z":"4b3afa8.fe95904","name":"Interface développée par Jeanne Baumier , Anais Auberval et Thomas Broussard","info":"","x":285.00000762939453,"y":20,"wires":[]},{"id":"6143093a.82a7e8","type":"comment","z":"4b3afa8.fe95904","name":"Etudiants en ei2i-4 à Polytech Paris UPMC","info":"","x":165,"y":58.0000057220459,"wires":[]},{"id":"95a42a77.d371b8","type":"comment","z":"d2895c3e.ef3f6","name":"Etat de santé de l'appareil et envoi de notifications à l'utilisateur, concernant le capteur PlantSigfox","info":"","x":581.5001525878906,"y":123.33336067199707,"wires":[]},{"id":"30a1027d.17882e","type":"comment","z":"d2895c3e.ef3f6","name":"Interface développée par Jeanne Baumier , Anais Auberval et Thomas Broussard","info":"","x":285.00000762939453,"y":20,"wires":[]},{"id":"324ee3c7.97a61c","type":"comment","z":"d2895c3e.ef3f6","name":"Etudiants en ei2i-4 à Polytech Paris UPMC","info":"","x":165,"y":58.0000057220459,"wires":[]},{"id":"5700be92.4de2d","type":"comment","z":"d2895c3e.ef3f6","name":"Horodatage du dernier relevé reçu ,récupération du numéro de série et des coordonnées géographiques du PlantSigfox","info":"","x":405,"y":225.0312557220459,"wires":[]},{"id":"3582840d.ef990c","type":"comment","z":"d2895c3e.ef3f6","name":"Gestion de la Batterie ","info":"","x":151,"y":441.50384521484375,"wires":[]},{"id":"96e3aaed.7b6c38","type":"comment","z":"e884629f.ba039","name":"Interface développée par Jeanne Baumier , Anais Auberval et Thomas Broussard","info":"","x":285.00000762939453,"y":20,"wires":[]},{"id":"4ffe82d4.50820c","type":"comment","z":"e884629f.ba039","name":"Etudiants en ei2i-4 à Polytech Paris UPMC","info":"","x":165,"y":58.0000057220459,"wires":[]},{"id":"24d951e9.8a82fe","type":"comment","z":"eb67ad82.ee5b1","name":"Récupération et affichage des prévisions météo pour les 10 prochains jours grâce à WeatherCast","info":"","x":566.5001907348633,"y":138.3333616256714,"wires":[]},{"id":"cc0a1d46.2c633","type":"comment","z":"eb67ad82.ee5b1","name":"Interface développée par Jeanne Baumier , Anais Auberval et Thomas Broussard","info":"","x":285.00000762939453,"y":39.00000190734863,"wires":[]},{"id":"41f744bb.2f18fc","type":"comment","z":"eb67ad82.ee5b1","name":"Etudiants en ei2i-4 à Polytech Paris UPMC","info":"","x":165,"y":77.00000762939453,"wires":[]},{"id":"60746f39.ed205","type":"comment","z":"30251ae0.20acb6","name":"Utilisation du réseau social Twitter grâce à un compte dédié au PlantSigfox afin de communiquer avec","info":"","x":581.5001907348633,"y":121.33336067199707,"wires":[]},{"id":"a60e5b76.4ca1f8","type":"comment","z":"30251ae0.20acb6","name":"Interface développée par Jeanne Baumier , Anais Auberval et Thomas Broussard","info":"","x":285.00000762939453,"y":20,"wires":[]},{"id":"f3febd1d.295b2","type":"comment","z":"30251ae0.20acb6","name":"Etudiants en ei2i-4 à Polytech Paris UPMC","info":"","x":165,"y":58.0000057220459,"wires":[]},{"id":"2cf5248c.5f4adc","type":"comment","z":"24cf228e.11172e","name":"Interface développée par Jeanne Baumier , Anais Auberval et Thomas Broussard","info":"","x":285.00000762939453,"y":20,"wires":[]},{"id":"fb2744.d9e2b8c","type":"comment","z":"24cf228e.11172e","name":"Etudiants en ei2i-4 à Polytech Paris UPMC","info":"","x":165,"y":58.0000057220459,"wires":[]},{"id":"87c82fb9.1b3da","type":"link out","z":"431ef77e.022318","name":"Message_Sigfox","links":["4e78f547.8477cc","fe05b22a.2123a","fcb4802.7c0878","7e8536b2.8d1848","709d4b58.aafca4","b6fad577.641338","9fd3ddf3.a90be","b9d0022a.7f724","f54bb5db.4a3668","76536ba8.d2976c","e947b177.ac1198","f394d982.afc778","42046731.2263b8","8245808d.5ad66","34f658c4.92f018","39d92b2d.f51ec4","1d939808.6e423","d78e135c.457c88","8b135ce1.8296f8","49c82a5e.1b7814","c44b0d60.536d48","b7238660.a8f78"],"x":286.28915786743164,"y":734.6094083786011,"wires":[]},{"id":"be024249.fb463","type":"comment","z":"431ef77e.022318","name":"Mise en lien du Message Sigfox : le message reçu est disponible dans les autres onglets grâce au système de [Link In / Link Out]","info":"","x":435,"y":574.2082004547119,"wires":[]},{"id":"76157f9d.fe12","type":"comment","z":"e884629f.ba039","name":"Génération et téléchargement d'un relevé de mesures, grâce à un bouton sur l'interface","info":"","x":335.00001525878906,"y":1193.750244140625,"wires":[]},{"id":"b952ce9.d87113","type":"comment","z":"a9be358b.b57d98","name":"Zone de quarantaine : les codes présents ici ne sont pas utiilisés dans l'interface, mais sont conservés pour plus tard","info":"","x":721.5000915527344,"y":150.3333548605442,"wires":[]},{"id":"2178c496.03e6bc","type":"comment","z":"a9be358b.b57d98","name":"Interface développée par Jeanne Baumier , Anais Auberval et Thomas Broussard","info":"","x":285.00000762939453,"y":20,"wires":[]},{"id":"e78666de.6037d8","type":"comment","z":"a9be358b.b57d98","name":"Etudiants en ei2i-4 à Polytech Paris UPMC","info":"","x":165,"y":58.0000057220459,"wires":[]},{"id":"bf547d5f.1bfa9","type":"comment","z":"431ef77e.022318","name":"Ici , on gère juste le déploiement de l'interface Nodered, et la réception des messages Sigfox","info":"","x":555.0000305175781,"y":250.00001525878906,"wires":[]},{"id":"9fd3ddf3.a90be","type":"link in","z":"30251ae0.20acb6","name":"Message_Sigfox","links":["87c82fb9.1b3da","667edd1a.e1d244"],"x":189.0173511505127,"y":292.0039167404175,"wires":[["85b8c707.e8b6f8","3da39b5a.88e274"]]},{"id":"bf84095d.de4378","type":"comment","z":"30251ae0.20acb6","name":"Message Sigfox","info":"","x":93,"y":291.54541969299316,"wires":[]},{"id":"6a3454e5.cf2d0c","type":"comment","z":"eb67ad82.ee5b1","name":"Récupération des prévisions météo sur OpenWeatherMap","info":"","x":215,"y":260.0390567779541,"wires":[]},{"id":"2ea86e43.be1112","type":"function","z":"eb67ad82.ee5b1","name":"Récup lat/lng","func":"var latitude= global.get('lat');\nvar length = global.get('lng');\nvar API_KEY = '81bc9fac30b8432f4539b5090a8f6d81';\n\nif (latitude != 'inconnu' && length != 'inconnu')\n{\n var requete_http = 'http://api.openweathermap.org/data/2.5/forecast?lat='+latitude+'&lon='+length+'&units=metric&APPID='+API_KEY ;\n \n // Création de la requête\n msg.payload =requete_http;\n return msg;\n}","outputs":1,"noerr":0,"x":351.00000762939453,"y":382.8724250793457,"wires":[["b50df9a4.ff4428","a72a4042.75416"]]},{"id":"b50df9a4.ff4428","type":"debug","z":"eb67ad82.ee5b1","name":"Coordonnées Météo","active":false,"console":"false","complete":"true","x":584.5001640319824,"y":300.5392236709595,"wires":[]},{"id":"a19dabbf.a7cbd8","type":"link out","z":"eb67ad82.ee5b1","name":"Prevision_Meteo","links":["2b1a61b4.505ace","1b1cc214.ee563e","d97287e4.5a66","5f4a7c5d.9437cc","def400dc.ed73c","24d09815.de9ee8","8c25e99f.f2a068","c658f88a.32fb28","e6274c10.a174e"],"x":1069.7893104553223,"y":310.61729741096497,"wires":[]},{"id":"9d983162.94706","type":"comment","z":"eb67ad82.ee5b1","name":"Prevision_Meteo","info":"","x":1163.7816162109375,"y":312.140718460083,"wires":[]},{"id":"4de571e4.527cd","type":"comment","z":"431ef77e.022318","name":"Message Sigfox","info":"","x":381.0234565734863,"y":734.5390043258667,"wires":[]},{"id":"4a06f132.6bd59","type":"function","z":"e884629f.ba039","name":"Mise en forme de l'enregistrement","func":"var Sigfox_id = msg.payload.device;\nvar Niveau_Batterie = msg.payload.Batterie;\nvar Date_Enregistrement;\nvar Heure_Enregistrement;\nvar currentDate ;\nvar day,month,year;\nvar hours,minutes,seconds;\nvar Numero_Releve = 1;\n\n // Récupération de la date d'envoi du message sigfox\n currentDate= new Date(msg.payload.time* 1000);\n \n // Mise en forme de la date et de l'heure\n day = currentDate.getDate();\n month = currentDate.getMonth() + 1;\n year = currentDate.getFullYear();\n hours = currentDate.getHours();\n minutes = currentDate.getMinutes();\n seconds = currentDate.getSeconds();\n \n if (hours < 10) hours = \"0\"+ hours;\n if (minutes < 10) minutes = \"0\"+ minutes;\n if (seconds < 10) seconds = \"0\"+ seconds;\n \n Date_Enregistrement = day + \"/\" + month + \"/\" + year;\n Heure_Enregistrement = hours + \":\" + minutes + \":\" + seconds;\n \n // Limitation du niveau de Batterie\n if (!(Niveau_Batterie > 0 && Niveau_Batterie <100))\n {\n Niveau_Batterie = -1;\n }\n\n\n // Définition du numéro de releve\n if (global.get('Numero_Releve'))\n {\n Numero_Releve = global.get('Numero_Releve') + 1;\n \n }\n global.set('Numero_Releve',Numero_Releve);\n \n \n // Contenu du message\n msg.payload = \n {\n 'TimeStamp' : msg.payload.time,\n 'Point' : Numero_Releve,\n 'id_Sigfox' : msg.payload.device,\n 'Date' : Date_Enregistrement,\n 'Heure' : Heure_Enregistrement,\n 'TempAir' : msg.payload.TempAir,\n 'TempSol' : msg.payload.TempSol,\n 'HumidAir' : msg.payload.HumidAir,\n 'HumidSol' : msg.payload.HumidSol,\n 'Lumiere' : msg.payload.Lumiere,\n 'Batterie' : Niveau_Batterie,\n 'Clear' : msg.payload.Clear,\n 'Red' : msg.payload.Red,\n 'Green' : msg.payload.Green,\n 'Blue' : msg.payload.Blue,\n 'lat' : msg.payload.lat,\n 'lng' : msg.payload.lng\n };\n \n return msg;\n","outputs":1,"noerr":0,"x":356.7500686645508,"y":343.5039939880371,"wires":[["d6a0c1cc.1f533","365f3942.f298a6"]]},{"id":"d6a0c1cc.1f533","type":"debug","z":"e884629f.ba039","name":"Debug_BDD","active":false,"console":"false","complete":"payload","x":608.7500915527344,"y":320.2539482116699,"wires":[]},{"id":"365f3942.f298a6","type":"cloudant out","z":"e884629f.ba039","name":"Sauvegarde BDD","cloudant":"","database":"releves_sigfox","service":"plantsigfox-cloudantNoSQLDB","payonly":true,"operation":"insert","x":628.5500183105469,"y":366.42060470581055,"wires":[]},{"id":"b9d0022a.7f724","type":"link in","z":"e884629f.ba039","name":"Message_Sigfox","links":["87c82fb9.1b3da","667edd1a.e1d244"],"x":153.0173625946045,"y":343.7539095878601,"wires":[["4a06f132.6bd59"]]},{"id":"4e818b8e.b28844","type":"comment","z":"e884629f.ba039","name":"Message Sigfox","info":"","x":85,"y":305.29542112350464,"wires":[]},{"id":"b3950ebb.987b7","type":"comment","z":"e884629f.ba039","name":"Enregistrement du dernier relevé reçu dans la base de données","info":"","x":235,"y":259.42056703567505,"wires":[]},{"id":"bac05626.2e2c7","type":"ui_numeric","z":"a9be358b.b57d98","name":"Choix du jour à consulter","label":"","group":"f9fce91f.4c8dc","order":5,"width":"5","height":"1","passthru":false,"topic":"Resume Meteo","format":"Consulter le Jour {{value}}","min":"1","max":10,"step":1,"x":115,"y":558.9998950958252,"wires":[["f7807307.145c58"]]},{"id":"98406f6c.c64c28","type":"ui_chart","z":"a9be358b.b57d98","name":"Prévisions Températures (10 jours)","group":"f9fce91f.4c8dc","order":1,"width":"0","height":"0","label":"Températures (°C)","chartType":"bar","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"Aucune prévision disponible.","dot":false,"ymin":"-5","ymax":"40","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":true,"colors":["#d20000","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":1125,"y":318.9998950958252,"wires":[[],[]]},{"id":"35cf08af.90c538","type":"ui_toast","z":"d2895c3e.ef3f6","position":"bottom right","displayTime":"10","highlight":"","outputs":0,"ok":"Ok je vais changer la batterie","cancel":"La flemme","topic":"Notification","name":"Notification si la batterie est faible","x":840.0001068115234,"y":487.9999256134033,"wires":[]},{"id":"d02ef245.7ab3e8","type":"ui_template","z":"431ef77e.022318","group":"3ebccd86.146c02","name":"Logo PlantSigfox","order":1,"width":"8","height":"4","format":"<div align=\"center\" class = \"logo_sigfox\">\n<img src=\"https://img4.hostingpics.net/pics/472303logoplantsigfox2.png\" width=\"190\" height=\"...\" class=\"logo_plantsigfox\" alt=\"Logo PlantSigfox\" />\n</div>\n\n<style>\n .logo_sigfox\n {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n</style>","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":95,"y":891.566822052002,"wires":[[]]},{"id":"95daa7c.2f22658","type":"ui_text","z":"d2895c3e.ef3f6","group":"3ebccd86.146c02","order":5,"width":0,"height":0,"name":"Mode d'alimentation (Batterie/Secteur)","label":"Mode d'alimentation :","format":"{{msg.payload}}","layout":"row-spread","x":849.019660949707,"y":553.0039100646973,"wires":[]},{"id":"48370021.574e9","type":"ui_text","z":"a9be358b.b57d98","group":"f9fce91f.4c8dc","order":7,"width":"9","height":"2","name":"Affichage Résumé Météo ","label":"Résumé Météo pour le jour {{msg.payload.jour}} : ","format":"{{msg.payload.resume}}","layout":"col-center","x":1175,"y":498.9998950958252,"wires":[]},{"id":"258bb9e.841d946","type":"function","z":"e884629f.ba039","name":"Mise en forme CSV","func":"// Déclaration d'un tableau de messages\n//var outputMsgs = [];\n\n// tableau récupérant les résultats\n\nvar Numero_Releve =[];\n\nvar Date_Releve =[];\nvar Heure_Releve =[];\n\nvar id_Sigfox = [];\n\nvar TempAir = [];\nvar TempSol = [];\nvar HumidAir = [];\nvar HumidSol = [];\nvar Lumiere = [];\nvar Batterie= [];\nvar Clear =[];\nvar Red = [];\nvar Green = [];\nvar Blue = [];\n\nvar Releve_Sigfox =[];\nvar Buffer_CSV = \"\";\n\n// Récupération du nombre de lignes présentes dans le tableau\nvar nb_lignes = msg.payload.total_rows;\n\n// Entête de chaque colonne\nReleve_Sigfox[0] = 'id_Point;Date;Heure;id_Sigfox;Temperature_Sol_(Celsius);Humidite_Sol_(%);Temperature_Air_(Celsius);Humidite_Air_(%);Luminosite_(lux);Spectre_Ambiant;Spectre_Rouge;Spectre_Vert;Spectre_Bleu;Batterie_(%) %0A'\nBuffer_CSV = Releve_Sigfox[0];\n\n// Traitement des données\nfor (i=1;i<nb_lignes+1;i++)\n{\n // Récupération des données\n Numero_Releve[i] = i;\n Date_Releve[i] = msg.payload.rows[i-1].doc.Date;\n Heure_Releve[i] = msg.payload.rows[i-1].doc.Heure;\n id_Sigfox[i] = msg.payload.rows[i-1].doc.id_Sigfox;\n \n TempSol[i] = msg.payload.rows[i-1].doc.TempSol;\n TempAir[i] = msg.payload.rows[i-1].doc.TempAir;\n HumidSol[i] = msg.payload.rows[i-1].doc.HumidSol;\n HumidAir[i] = msg.payload.rows[i-1].doc.HumidAir;\n Lumiere[i] = msg.payload.rows[i-1].doc.Lumiere;\n Batterie[i] = msg.payload.rows[i-1].doc.Batterie;\n \n Clear[i] = msg.payload.rows[i-1].doc.Clear;\n Red[i] = msg.payload.rows[i-1].doc.Red;\n Green[i] = msg.payload.rows[i-1].doc.Green;\n Blue[i] = msg.payload.rows[i-1].doc.Blue;\n\n // Création de la ligne du tableau CSV \n Releve_Sigfox[i] = Numero_Releve[i]+';'+Date_Releve[i] + ';' + Heure_Releve[i]+';'+id_Sigfox[i]+';'+TempSol[i]+';'+HumidSol[i]+';'+TempAir[i]+';'+HumidAir[i]+';'+Lumiere[i]+';'+Clear[i]+';'+Red[i]+';'+Green[i]+';'+Blue[i]+';'+Batterie[i]+'%0A';\n \n \n // Enregistrement dans le buffer représentant le fichier CSV\n Buffer_CSV = Buffer_CSV + Releve_Sigfox[i];\n}\n\n// Mise à disposition du tableau\nmsg.payload = Buffer_CSV;\nvar idSigfox_fichier = global.get('idSigfox_Bilan');\nmsg.filename = \"Rapport_Sigfox_Hebdo_\" + idSigfox_fichier + \".csv\";\n\nreturn msg;\n","outputs":1,"noerr":0,"x":437.7501220703125,"y":1281.750244140625,"wires":[["6ce87e15.d00228","f24d142a.7bcdf8"]]},{"id":"6ce87e15.d00228","type":"debug","z":"e884629f.ba039","name":"Bouton_Rapport_CSV","active":false,"console":"false","complete":"payload","x":676.750244140625,"y":1321.7502746582031,"wires":[]},{"id":"f54bb5db.4a3668","type":"link in","z":"e884629f.ba039","name":"BDD_Recherche_Hebdomadaire","links":["87c82fb9.1b3da","9a50d08c.8fe85","667edd1a.e1d244"],"x":298.01953125,"y":1277.0042114257812,"wires":[["258bb9e.841d946"]]},{"id":"8e0cfce5.cd1eb","type":"comment","z":"e884629f.ba039","name":"Construction d'une base de données Cloudant contenant tous les relevés effectué","info":"","x":546.01953125,"y":135.00390625,"wires":[]},{"id":"bb68e713.57c4e8","type":"comment","z":"24cf228e.11172e","name":"Zone de Debug : Vous pouvez mettre tout ce que vous voulez tester ici !","info":"","x":546.01953125,"y":122.00390625,"wires":[]},{"id":"338f250a.d808aa","type":"comment","z":"30251ae0.20acb6","name":"Idée mise de côté : créer un ChatBot sur twitter","info":"","x":185,"y":674.0078125,"wires":[]},{"id":"bc855678.55d108","type":"comment","z":"30251ae0.20acb6","name":"On lui envoie une instruction via Twitter (ex : \"Tempsol = ?\") ","info":"","x":215,"y":714.2695302963257,"wires":[]},{"id":"71a4eae7.b23634","type":"comment","z":"30251ae0.20acb6","name":"et le PlantsigFox nous répond (ex : \"La température du sol est de 25°C\")","info":"","x":255,"y":753.2578125,"wires":[]},{"id":"96b0e1fb.09edf8","type":"comment","z":"e884629f.ba039","name":"Bilan Mensuel","info":"","x":94.00001525878906,"y":1238.3834228515625,"wires":[]},{"id":"bd0a25f2.12db98","type":"template","z":"30251ae0.20acb6","name":"InformationsAIR","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Informations sur l'air \n***********************\nTempérature actuelle de l'air : {{payload.TempAir}}°C\nHumidité actuelle de l'air : {{payload.HumidAir}}%","output":"str","x":810,"y":260,"wires":[["575e9ba.5e32c64","88eafa22.ee4768"]]},{"id":"575e9ba.5e32c64","type":"debug","z":"30251ae0.20acb6","name":"","active":false,"console":"false","complete":"payload","x":1060,"y":280,"wires":[]},{"id":"85b8c707.e8b6f8","type":"function","z":"30251ae0.20acb6","name":"Extraction des données Sigfox","func":"var Sigfox_id = msg.payload.device;\nvar Niveau_Batterie = msg.payload.Batterie;\nvar Date_Enregistrement;\nvar currentDate ;\nvar day,month,year;\nvar hours,minutes,seconds;\n\n // Récupération de la date d'envoi du message sigfox\n currentDate= new Date(msg.payload.time* 1000);\n \n // Mise en forme de la date\n day = currentDate.getDate();\n month = currentDate.getMonth() + 1;\n year = currentDate.getFullYear();\n hours = currentDate.getHours();\n minutes = currentDate.getMinutes();\n seconds = currentDate.getSeconds();\n \n if (hours < 10) hours = \"0\"+ hours;\n if (minutes < 10) minutes = \"0\"+ minutes;\n if (seconds < 10) seconds = \"0\"+ seconds;\n Date_Enregistrement = day + \"/\" + month + \"/\" + year + \" \" + hours + \":\" + minutes + \":\" + seconds;\n \n // Limitation du niveau de Batterie\n if (!(Niveau_Batterie > 0 && Niveau_Batterie <100))\n {\n Niveau_Batterie = -1;\n }\n\n\n // Contenu du message\n // msg.payload.<nom de la donnee>\n msg.payload = \n {\n 'id_Sigfox' : msg.payload.device,\n 'Date' : Date_Enregistrement,\n 'TempAir' : msg.payload.TempAir,\n 'TempSol' : msg.payload.TempSol,\n 'HumidAir' : msg.payload.HumidAir,\n 'HumidSol' : msg.payload.HumidSol,\n 'Lumiere' : msg.payload.Lumiere,\n 'Batterie' : Niveau_Batterie,\n 'Red' : msg.payload.Red,\n 'Green' : msg.payload.Green,\n 'Blue' : msg.payload.Blue\n };\n \n return msg;\n","outputs":1,"noerr":0,"x":390,"y":280,"wires":[["bd0a25f2.12db98","9dbb72b4.1d9e3","da1275b0.bde0c8","805e0bda.fd9f28"]]},{"id":"d3923300.dc816","type":"comment","z":"e884629f.ba039","name":"abonnement aux bilans hebdomadaire par mail","info":"","x":212,"y":1557.7667846679688,"wires":[]},{"id":"744b301b.a9f118","type":"debug","z":"e884629f.ba039","name":"Abonnement","active":false,"console":"false","complete":"true","x":692.36669921875,"y":1620.2666521072388,"wires":[]},{"id":"23dc9dec.6bb8ba","type":"cloudant out","z":"e884629f.ba039","name":"Sauvegarde BDD","cloudant":"","database":"releves_sigfox","service":"plantsigfox-cloudantNoSQLDB","payonly":true,"operation":"insert","x":1009.300048828125,"y":1643.7666521072388,"wires":[]},{"id":"9bd9a248.99bd1","type":"comment","z":"e884629f.ba039","name":"Envoi d'un rapport tous les 7 jours par mail à une liste d'adresse mail","info":"","x":235,"y":2050.199951171875,"wires":[]},{"id":"7f7c6f5e.e14a3","type":"comment","z":"e884629f.ba039","name":"https://www.hostinger.fr/tutoriels/utiliser-serveur-smtp-gmail/","info":"","x":215,"y":2090.199951171875,"wires":[]},{"id":"c1ec9806.b40c38","type":"function","z":"e884629f.ba039","name":"mise en forme du mail","func":"// Creation des dates de début et de fin du bilan\nvar Taille_CSV = msg.payload.total_rows;\nvar Date_Debut_Bilan = msg.payload[0].payload.Date_Debut;\nvar Date_Fin_Bilan = msg.payload[0].payload.Date_Fin;\n\n// Mise en forme des éléments utiles\nvar liste_diffusion= msg.payload[1].Mail;\nvar fichier_csv = msg.payload[0].payload.CSV;\nvar Bilan_filename = \"Bilan_Mensuel_Sigfox_\"+Date_Fin_Bilan+\".csv\";\n\n// Composition du mail\nlet message = \n {\n // Destinataire(s)\n to: liste_diffusion,\n //cc : liste_diffusion;\n \n // Sujet\n subject: 'Bilan PlantSigfox',\n\n // corps du message (sous format html)\n html:\n '<p>Bonjour,</p>'+\n '<p>Vous trouverez ci-joint votre Bilan PlantSigfox du '+ Date_Debut_Bilan +' au ' + Date_Fin_Bilan +' sous format .csv</p>'+\n '<p>Ce fichier contient les relevés de tous les appareils. N\\'hésitez pas à faire le tri !</p>'+\n '<p>A bientôt sur <a href =\"https://plantsigfox.eu-gb.mybluemix.net/ui\" >PlantSigfox !</a></p>'+\n '<p> </p>'+\n '<p><b>PlantSigfox</b></p>'+\n '<p>Développé par Jeanne Baumier, Anaïs Auberval et Thomas Broussard</p>'+\n '<p>Etudiants en ei2i-4 à Polytech Paris UPMC</p>',\n\n // Pièces jointes\n attachments: \n [\n { \n // Nom du fichier\n filename: Bilan_filename,\n // Contenu\n content: fichier_csv,\n // Type de fichier\n contentType: 'text/csv' // optional, would be detected from the filename\n }\n ]\n };\n \n// Creation du msg\nmsg.to = message.to;\n//msg.cc = message.cc;\nmsg.topic = message.subject;\nmsg.payload = message.html;\nmsg.attachments = message.attachments;\n\nreturn msg;\n","outputs":1,"noerr":0,"x":1195.5003662109375,"y":2245.866943359375,"wires":[["6a47d97c.03351","dd2db188.2c907"]]},{"id":"6a47d97c.03351","type":"debug","z":"e884629f.ba039","name":"Mail_Bilan_CSV","active":false,"console":"false","complete":"true","x":1444.0003662109375,"y":2214.8665771484375,"wires":[]},{"id":"d7968b6d.7d7b1","type":"inject","z":"e884629f.ba039","name":"Envoi du mail tous les Mardi à 12H00","topic":"","payload":"","payloadType":"date","repeat":"","crontab":"00 12 * * 2","once":false,"x":177.00001525878906,"y":2125.1999473571777,"wires":[["2b4506c6.e3eafa"]]},{"id":"2b4506c6.e3eafa","type":"http request","z":"e884629f.ba039","name":"Récupération des relevés des 7 jours précédents","method":"GET","ret":"obj","url":"https://59a95fc8-13b3-464b-9a55-34cf8778d210-bluemix.cloudant.com/releves_sigfox/_design/General/_view/Bilan_Hebdo?include_docs=true","tls":"","x":403.8833312988281,"y":2188.25,"wires":[["96bf90dc.994e5","3fb017ea.222a8","c2672e6b.9b61e"]]},{"id":"1b1c45a0.069272","type":"http request","z":"e884629f.ba039","name":"Récupération de la liste de diffusion","method":"GET","ret":"obj","url":"https://59a95fc8-13b3-464b-9a55-34cf8778d210-bluemix.cloudant.com/releves_sigfox/_design/Parametrage/_view/Liste_Diffusion","tls":"","x":422.75,"y":2322.61669921875,"wires":[["8315c380.edd868","5605e277.b58034"]]},{"id":"8315c380.edd868","type":"debug","z":"e884629f.ba039","name":"liste_mail","active":false,"console":"false","complete":"true","x":715.75,"y":2374.61669921875,"wires":[]},{"id":"96bf90dc.994e5","type":"debug","z":"e884629f.ba039","name":"fichier_Bilan_CSV","active":false,"console":"false","complete":"true","x":719.75,"y":2132.61669921875,"wires":[]},{"id":"5605e277.b58034","type":"function","z":"e884629f.ba039","name":"Mise en forme Liste Mail","func":"// tableau récupérant les résultats\nvar Mail = [];\nvar Buffer_Liste = \"\";\n\n// Récupération du nombre de lignes présentes dans le tableau\nvar nb_lignes = msg.payload.total_rows;\n\n// Traitement des données\nBuffer_Liste = msg.payload.rows[0].key;\n\nfor (i=1;i<nb_lignes;i++)\n{\n Mail[i] = msg.payload.rows[i].key;\n // Création de la liste de diffusion\n Buffer_Liste = Buffer_Liste +';'+ Mail[i];\n}\n\n// Mise à disposition du tableau\nmsg.Mail = Buffer_Liste;\n\n\nreturn msg;\n","outputs":1,"noerr":0,"x":762.75,"y":2327.6167602539062,"wires":[["683a385b.b9cc1"]]},{"id":"683a385b.b9cc1","type":"merge","z":"e884629f.ba039","name":"","timeout":"5","x":968,"y":2244.3667602539062,"wires":[["c1ec9806.b40c38","e39b7ecf.1814b8"]]},{"id":"48d8b12e.cba388","type":"link in","z":"e884629f.ba039","name":"Trigger_Mail","links":["3fb017ea.222a8"],"x":230.36669921875,"y":2320.36669921875,"wires":[["1b1c45a0.069272"]]},{"id":"3fb017ea.222a8","type":"link out","z":"e884629f.ba039","name":"Trigger_Mail","links":["48d8b12e.cba388"],"x":641.36669921875,"y":2227.61669921875,"wires":[]},{"id":"dd2db188.2c907","type":"e-mail","z":"e884629f.ba039","server":"smtp.gmail.com","port":"465","secure":true,"name":"","dname":"Envoi d'un mail depuis plantsigfox@gmail.com","x":1533.50048828125,"y":2256.5333862304688,"wires":[]},{"id":"28b26a39.855776","type":"ui_text_input","z":"e884629f.ba039","name":"Formulaire d'abonnement aux mails","label":"Saisissez votre adresse mail","group":"deaad5b9.8dbf98","order":2,"width":"12","height":"1","passthru":false,"mode":"email","delay":"0","topic":"","x":353.9999694824219,"y":1689.4500017166138,"wires":[["744b301b.a9f118","3c2a435b.a0a21c"]]},{"id":"132b00de.7c0e57","type":"ui_text","z":"e884629f.ba039","group":"deaad5b9.8dbf98","order":1,"width":0,"height":0,"name":"Inscrivez vous pour recevoir les bilans hebdomadaires ! ","label":"Inscrivez vous pour recevoir les bilans hebdomadaires ! ","format":"","layout":"row-spread","x":250.449951171875,"y":1622.916748046875,"wires":[]},{"id":"893b1be9.8c72a","type":"inject","z":"e884629f.ba039","name":"vide","topic":"","payload":"","payloadType":"str","repeat":"1","crontab":"","once":true,"x":100.44999694824219,"y":1689.7167253494263,"wires":[["28b26a39.855776"]]},{"id":"3c2a435b.a0a21c","type":"function","z":"e884629f.ba039","name":"Mise en forme de l'enregistrement","func":"if(msg.payload)\n{\n // Contenu du message\n msg.payload = \n {\n 'mail' : msg.payload,\n };\n \n return msg;\n}","outputs":1,"noerr":0,"x":732,"y":1688.0000505447388,"wires":[["23dc9dec.6bb8ba","3dd216ba.20a7da"]]},{"id":"e39b7ecf.1814b8","type":"debug","z":"e884629f.ba039","name":"merge","active":false,"console":"false","complete":"true","x":1135.566650390625,"y":2311.5,"wires":[]},{"id":"b1def6d3.7fd1c8","type":"ui_button","z":"e884629f.ba039","name":"","group":"4486da81.6a8adc","order":9,"width":0,"height":0,"passthru":false,"label":"Consulter les bilans","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"Vers Tab capteurs MySensors","x":95,"y":501.25390625,"wires":[["a617207c.d3222"]]},{"id":"a617207c.d3222","type":"function","z":"e884629f.ba039","name":"Aller à Bilans","func":"msg.payload = {\n 'tab':'Bilans'\n \n}; // ou/or 1\n\nreturn msg;","outputs":1,"noerr":0,"x":435,"y":501.25390625,"wires":[["873f6373.d5e7f8"]]},{"id":"a1c19b6.e085f68","type":"comment","z":"e884629f.ba039","name":"Bouton pour accéder directement à l'onglet Bilan","info":"","x":185,"y":450,"wires":[]},{"id":"88eafa22.ee4768","type":"twitter out","z":"30251ae0.20acb6","twitter":"b8ed1c49.8f028","name":"InformationsAIR","x":1070,"y":240,"wires":[]},{"id":"9dbb72b4.1d9e3","type":"template","z":"30251ae0.20acb6","name":"InformationsSOL","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Informations sur le sol\n***********************\nTempérature actuelle du sol : {{payload.TempSol}}°C\nHumidité actuelle du sol : {{payload.HumidSol}}%","output":"str","x":810,"y":340,"wires":[["d36f09f4.ef9998","b4d93b0a.9d57a8"]]},{"id":"d36f09f4.ef9998","type":"debug","z":"30251ae0.20acb6","name":"","active":false,"console":"false","complete":"payload","x":1050,"y":360,"wires":[]},{"id":"b4d93b0a.9d57a8","type":"twitter out","z":"30251ae0.20acb6","twitter":"b8ed1c49.8f028","name":"InformationsSOL","x":1070,"y":320,"wires":[]},{"id":"da1275b0.bde0c8","type":"template","z":"30251ae0.20acb6","name":"InformationsBatterie","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Informations sur la batterie\n****************************\nBatterie: {{payload.Batterie}} %\n(Connectee/pas connectee)","output":"str","x":820,"y":420,"wires":[["cfb70cd.3a74bf","f29e7683.5fce58"]]},{"id":"cfb70cd.3a74bf","type":"debug","z":"30251ae0.20acb6","name":"","active":false,"console":"false","complete":"payload","x":1050,"y":440,"wires":[]},{"id":"f29e7683.5fce58","type":"twitter out","z":"30251ae0.20acb6","twitter":"b8ed1c49.8f028","name":"InformationsBatterie","x":1080,"y":400,"wires":[]},{"id":"805e0bda.fd9f28","type":"template","z":"30251ae0.20acb6","name":"InformationsLuminosité","field":"payload","fieldType":"msg","format":"handlebars","syntax":"mustache","template":"Informations sur la luminosité\n******************************\nLuminosité: {{payload.Lumiere}} lux\nR: {{payload.Red}} lux\nG: {{payload.Green}} lux\nB: {{payload.Blue}} lux","output":"str","x":830,"y":500,"wires":[["d2786c3f.287cf","53ffc60c.c05938"]]},{"id":"d2786c3f.287cf","type":"debug","z":"30251ae0.20acb6","name":"","active":false,"console":"false","complete":"payload","x":1050,"y":520,"wires":[]},{"id":"53ffc60c.c05938","type":"twitter out","z":"30251ae0.20acb6","twitter":"b8ed1c49.8f028","name":"InformationsLuminosité","x":1090,"y":480,"wires":[]},{"id":"afbb92aa.e6339","type":"twitter in","z":"30251ae0.20acb6","twitter":"b8ed1c49.8f028","tags":"@OurPlantesLife","user":"user","name":"GetTweets","topic":"tweets","inputs":0,"x":120,"y":480,"wires":[["f7bfe0d7.87b7","6c8b8104.00b0c"]]},{"id":"d67de6da.284378","type":"comment","z":"e884629f.ba039","name":"Suppression des messages trop anciens","info":"","x":160.99998474121094,"y":2579,"wires":[]},{"id":"74a950a1.5d3fc","type":"http request","z":"e884629f.ba039","name":"Récupération des données à supprimer","method":"GET","ret":"obj","url":"https://59a95fc8-13b3-464b-9a55-34cf8778d210-bluemix.cloudant.com/releves_sigfox/_design/Parametrage/_view/Donnees_a_Effacer?include_docs=true","tls":"","x":327.99998474121094,"y":2660,"wires":[["8b09ad27.2b843"]]},{"id":"5cdb25ac.83fd74","type":"cloudant out","z":"e884629f.ba039","name":"Suppression dans la BDD","cloudant":"","database":"releves_sigfox","service":"plantsigfox-cloudantNoSQLDB","payonly":false,"operation":"delete","x":1067.999984741211,"y":2660,"wires":[]},{"id":"64383fab.ff0668","type":"debug","z":"e884629f.ba039","name":"Supression_BDD","active":false,"console":"false","complete":"true","x":857.9999847412109,"y":2700,"wires":[]},{"id":"8b09ad27.2b843","type":"function","z":"e884629f.ba039","name":"Extraction _id et _rev","func":"var outputMsgs = [];\nvar id;\nvar rev;\n// Récupération du nombre de lignes présentes dans le tableau\nvar nb_lignes = msg.payload.total_rows;\n\nfor (i=0;i<nb_lignes;i++) \n{\n id = msg.payload.rows[i].doc._id;\n rev = msg.payload.rows[i].doc._rev;\n outputMsgs.push({ payload:{_id:id,_rev:rev} });\n}\nreturn [ outputMsgs ];\n","outputs":1,"noerr":0,"x":607.9999847412109,"y":2660,"wires":[["64383fab.ff0668","3715f2af.b40b0e"]]},{"id":"f7bfe0d7.87b7","type":"debug","z":"30251ae0.20acb6","name":"","active":false,"console":"false","complete":"true","x":450,"y":580,"wires":[]},{"id":"3715f2af.b40b0e","type":"delay","z":"e884629f.ba039","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"3","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":837.9999847412109,"y":2660,"wires":[["5cdb25ac.83fd74"]]},{"id":"42046731.2263b8","type":"link in","z":"e884629f.ba039","name":"Message_Sigfox","links":["87c82fb9.1b3da","667edd1a.e1d244"],"x":122.99998474121094,"y":2660,"wires":[["74a950a1.5d3fc"]]},{"id":"ef738439.4f8808","type":"comment","z":"e884629f.ba039","name":"Message Sigfox","info":"","x":85,"y":2616.9999494552612,"wires":[]},{"id":"6c8b8104.00b0c","type":"function","z":"30251ae0.20acb6","name":"AskTwitter","func":"var name = msg.payload.slice(0,15);\nvar text = msg.payload.slice(16,100);\n//Récupération des variables globales\nvar TempSol = global.get('TempSol');\nvar TempAir = global.get('TempAir');\nvar HumidSol = global.get('HumidSol');\nvar HumidAir = global.get('HumidAir');\nvar Lumiere = global.get('Lumiere');\nvar Red = global.get('Red');\nvar Green = global.get('Green');\nvar Blue = global.get('Blue');\nvar Batterie = global.get('Batterie');\n\ntext = text.toLowerCase();\n\nswitch(text){\n // Qui sont les propriétaires?\n case \"propriétaires\":\n case \"proprietaires\":\n msg.payload = name + \" Les propriétaires sont : Anaïs, Jeanne et Thomas\";\n break;\n \n /*************************\n * Températures\n ************************/\n case \"tempsol\":\n case \"temp sol\":\n\t\tmsg.payload = name + \" La température du sol est de \" + TempSol + \"°C\";\n break;\n \n case \"tempair\":\n\tcase \"temp air\":\n msg.payload = name + \" La température de l'air est de \" + TempAir + \"°C\";\n break;\n \n /*************************\n * Humidités\n ************************/\n case \"humidsol\":\n case \"humid sol\":\n\t\tmsg.payload = name + \" L'humidité du sol est de \" + HumidSol + \"%\";\n break;\n \n case \"humidair\":\n\tcase \"humid air\":\n msg.payload = name + \" L'humidité de l'air est de \" + HumidAir + \"%\";\n break;\n \n /*************************\n * Lumières\n ************************/\n case \"lumiere\":\n\tcase \"lumière\":\n\tcase \"luminosité\":\n case \"luminosite\":\n\tcase \"lux\":\n\t\tmsg.payload = name + \" La luminosité est de \" + Lumiere + \" lux\";\n break;\n \n\t/*************************\n * RGB\n ************************/\n case \"r\":\n\tcase \"red\":\n\tcase \"rouge\":\n\t\tmsg.payload = name + \" Rouge: \" + Red;\n break;\n \n\tcase \"g\":\n\tcase \"green\":\n\tcase \"vert\":\n\t\tmsg.payload = name + \" Vert: \" + Green;\n break;\n\t \n\tcase \"b\":\n\tcase \"blue\":\n\tcase \"bleu\":\n\t\tmsg.payload = name + \" Bleu: \" + Blue;\n break;\n\t\n\t/*************************\n * Batterie\n ************************/\n case \"batterie\":\n\tcase \"niveau batterie\":\n\t\tmsg.payload = name + \" Le niveau de batterie est de \" + Batterie + \"%\";\n break;\n\t\n // Tout autre message non programmé\n /*default:\n msg.payload = name + \" Hello you :)\";\n break;*/\n \n}\nreturn msg;\n","outputs":1,"noerr":0,"x":330,"y":460,"wires":[["53a6dc4.6c0d824","f736c8de.331be8"]]},{"id":"f736c8de.331be8","type":"twitter out","z":"30251ae0.20acb6","twitter":"b8ed1c49.8f028","name":"Tweet","x":570,"y":480,"wires":[]},{"id":"53a6dc4.6c0d824","type":"debug","z":"30251ae0.20acb6","name":"message","active":false,"console":"false","complete":"true","x":456.30003356933594,"y":514.1333541870117,"wires":[]},{"id":"c2672e6b.9b61e","type":"function","z":"e884629f.ba039","name":"Mise en forme CSV","func":"// Déclaration d'un tableau de messages\n//var outputMsgs = [];\n\n// tableau récupérant les résultats\n\nvar Numero_Releve =[];\n\nvar Date_Releve =[];\nvar Heure_Releve =[];\n\nvar id_Sigfox = [];\n\nvar TempAir = [];\nvar TempSol = [];\nvar HumidAir = [];\nvar HumidSol = [];\nvar Lumiere = [];\nvar Batterie= [];\nvar Clear =[];\nvar Red = [];\nvar Green = [];\nvar Blue = [];\n\nvar Releve_Sigfox =[];\nvar Buffer_CSV = \"\";\n\n// Récupération du nombre de lignes présentes dans le tableau\nvar nb_lignes = msg.payload.total_rows;\n\n// Entête de chaque colonne\nReleve_Sigfox[0] = 'id_Point;Date;Heure;id_Sigfox;Temperature_Sol_(Celsius);Humidite_Sol_(%);Temperature_Air_(Celsius);Humidite_Air_(%);Luminosite_(lux);Spectre_Ambiant;Spectre_Rouge;Spectre_Vert;Spectre_Bleu;Batterie_(%)\\n'\nBuffer_CSV = Releve_Sigfox[0];\n\n// Traitement des données\nfor (i=1;i<nb_lignes+1;i++)\n{\n // Récupération des données\n Numero_Releve[i] = i;\n Date_Releve[i] = msg.payload.rows[i-1].doc.Date;\n Heure_Releve[i] = msg.payload.rows[i-1].doc.Heure;\n id_Sigfox[i] = msg.payload.rows[i-1].doc.id_Sigfox;\n \n TempSol[i] = msg.payload.rows[i-1].doc.TempSol;\n TempAir[i] = msg.payload.rows[i-1].doc.TempAir;\n HumidSol[i] = msg.payload.rows[i-1].doc.HumidSol;\n HumidAir[i] = msg.payload.rows[i-1].doc.HumidAir;\n Lumiere[i] = msg.payload.rows[i-1].doc.Lumiere;\n Batterie[i] = msg.payload.rows[i-1].doc.Batterie;\n \n Clear[i] = msg.payload.rows[i-1].doc.Clear;\n Red[i] = msg.payload.rows[i-1].doc.Red;\n Green[i] = msg.payload.rows[i-1].doc.Green;\n Blue[i] = msg.payload.rows[i-1].doc.Blue;\n\n // Création de la ligne du tableau CSV \n Releve_Sigfox[i] = Numero_Releve[i]+';'+Date_Releve[i] + ';' + Heure_Releve[i]+';'+id_Sigfox[i]+';'+TempSol[i]+';'+HumidSol[i]+';'+TempAir[i]+';'+HumidAir[i]+';'+Lumiere[i]+';'+Clear[i]+';'+Red[i]+';'+Green[i]+';'+Blue[i]+';'+Batterie[i]+'\\n';\n \n \n // Enregistrement dans le buffer représentant le fichier CSV\n Buffer_CSV = Buffer_CSV + Releve_Sigfox[i];\n}\n\n// Mise à disposition du tableau\nmsg.payload = \n{\n 'CSV':Buffer_CSV,\n 'Date_Debut': Date_Releve[1],\n 'Date_Fin': Date_Releve[nb_lignes - 1],\n}\n\nmsg.filename = \"Rapport_Sigfox.csv\";\nreturn msg;\n","outputs":1,"noerr":0,"x":754.75,"y":2186.7500505447388,"wires":[["683a385b.b9cc1"]]},{"id":"b9c6aea3.4e57e","type":"inject","z":"24cf228e.11172e","name":"","topic":"","payload":"1B3154","payloadType":"str","repeat":"","crontab":"","once":false,"x":92.76663208007812,"y":267.01654052734375,"wires":[["a6befae6.b9263"]]},{"id":"1d59308a.b5c27f","type":"comment","z":"24cf228e.11172e","name":"TEST :Creation d'une categorie dans la BDD (inscription d'un nouveau module Sigfox dans la BDD)","info":"","x":350,"y":197.38336181640625,"wires":[]},{"id":"a5d2fca6.bb3a1","type":"ui_toast","z":"e884629f.ba039","position":"dialog","displayTime":"3","highlight":"","outputs":1,"ok":"OK","cancel":"","topic":"","name":"Notification ","x":1198.7666015625,"y":1710.43332862854,"wires":[[]]},{"id":"3dd216ba.20a7da","type":"function","z":"e884629f.ba039","name":"message a notifier","func":"msg.payload = \"Merci de vous être abonné ! vous recevrez votre premier bilan bientôt !\"\nreturn msg;","outputs":1,"noerr":0,"x":1008.7666015625,"y":1711.883279800415,"wires":[["a5d2fca6.bb3a1"]]},{"id":"93528543.1f28a8","type":"comment","z":"30251ae0.20acb6","name":"AskTwitter_Details","info":"propriétaires\nproprietaires\ntempsol\ntemp sol\ntempair\ntemp air\nhumidsol\nhumid sol\nhumidair\nhumid air\nlumiere\nlumière\nluminosité\nluminosite\nlux\nr\nred\nrouge\ng\ngreen\nvert\nb\nblue\nbleu\nbatterie\nniveau batterie","x":918.3000335693359,"y":677.533332824707,"wires":[]},{"id":"3da39b5a.88e274","type":"function","z":"30251ae0.20acb6","name":"Variables globales","func":"var Niveau_Batterie = msg.payload.Batterie;\nvar Lumiere;\nvar TempAir;\nvar TempSol;\nvar HumidAir;\nvar HumidSol;\nvar Red;\nvar Green;\nvar Blue;\n\n // Limitation du niveau de Batterie\n if (!(Niveau_Batterie > 0 && Niveau_Batterie <100))\n {\n Niveau_Batterie = -1;\n }\n\n\n TempAir = msg.payload.TempAir;\n TempSol = msg.payload.TempSol;\n HumidAir = msg.payload.HumidAir;\n HumidSol = msg.payload.HumidSol;\n Lumiere = msg.payload.Lumiere;\n Red = msg.payload.Red;\n Green = msg.payload.Green;\n Blue = msg.payload.Blue;\n \n global.set('TempAir',TempAir);\n global.set('TempSol',TempSol);\n global.set('HumidAir',HumidAir);\n global.set('HumidSol',HumidSol);\n global.set('Lumiere',Lumiere);\n global.set('Red',Red);\n global.set('Green',Green);\n global.set('Blue',Blue);\n return msg;\n","outputs":1,"noerr":0,"x":210,"y":400,"wires":[["6c8b8104.00b0c","9e1b4031.8d925"]]},{"id":"9e1b4031.8d925","type":"debug","z":"30251ae0.20acb6","name":"","active":false,"console":"false","complete":"true","x":410.30003356933594,"y":382.1333541870117,"wires":[]},{"id":"ec36e5c0.4e3928","type":"comment","z":"e884629f.ba039","name":"TEST : récupérer un bilan de données en précisant le type de bilan (Hebdo, Mensuel, 6mois) et du numéro de série Sigfox voulu","info":"","x":446.76666259765625,"y":719.75,"wires":[]},{"id":"1cd344c5.d4bfab","type":"http request","z":"e884629f.ba039","name":"Recherche_BDD","method":"GET","ret":"txt","url":"","tls":"","x":1013.7666015625,"y":788.9832763671875,"wires":[["d6be9fd8.95b"]]},{"id":"f8c2c35.5405dc","type":"function","z":"e884629f.ba039","name":"Recherche BDD","func":"var Type_Bilan = msg.payload.type_Bilan;\nvar id_Sigfox = msg.payload.id_Sigfox;\n// Adresse de la BDD (avec le search_index)\nvar requete_http = \"https://59a95fc8-13b3-464b-9a55-34cf8778d210-bluemix.cloudant.com/releves_sigfox/_design/\"+id_Sigfox+\"/_view/Bilan_\"+Type_Bilan+\"?include_docs=true\"\n// Création de la requête\nmsg.payload =requete_http;\n\nreturn msg;","outputs":1,"noerr":0,"x":592.7667236328125,"y":789.816650390625,"wires":[["59a994ea.3d7e84"]]},{"id":"91fe1a01.f2df28","type":"debug","z":"e884629f.ba039","name":"Requete HTTP","active":false,"console":"false","complete":"true","x":1014.88330078125,"y":821.4166259765625,"wires":[]},{"id":"59a994ea.3d7e84","type":"change","z":"e884629f.ba039","name":"payload -> url","rules":[{"t":"move","p":"payload","pt":"msg","to":"url","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":800.7666015625,"y":789.5499267578125,"wires":[["1cd344c5.d4bfab","91fe1a01.f2df28"]]},{"id":"c739f46d.9073b8","type":"debug","z":"e884629f.ba039","name":"Reponse HTTP","active":false,"console":"false","complete":"true","x":1331.88330078125,"y":824.4166259765625,"wires":[]},{"id":"d6be9fd8.95b","type":"json","z":"e884629f.ba039","name":"","pretty":false,"x":1171.2666015625,"y":788.816650390625,"wires":[["c739f46d.9073b8","9a50d08c.8fe85"]]},{"id":"9a50d08c.8fe85","type":"link out","z":"e884629f.ba039","name":"BDD_Recherche_Hebdomadaire","links":["f54bb5db.4a3668"],"x":1268.7666015625,"y":789.9832763671875,"wires":[]},{"id":"a0743a02.8dc76","type":"comment","z":"e884629f.ba039","name":"BDD_Recherche_Hebdomadaire","info":"","x":1424.7666015625,"y":790.8499755859375,"wires":[]},{"id":"2fd763f9.0003e4","type":"function","z":"e884629f.ba039","name":"Sauvegarde dans une variable globale 'idSigfox_Bilan'","func":"global.set('idSigfox_Bilan',msg.payload);\n\nreturn msg;","outputs":1,"noerr":0,"x":621.5166625976562,"y":661.6666564941406,"wires":[["cc636e65.71d548"]]},{"id":"4066f5d4.78bdd4","type":"comment","z":"e884629f.ba039","name":"Choix du module Sigfox à consulter","info":"","x":145,"y":607,"wires":[]},{"id":"b925f1d2.2e0858","type":"function","z":"e884629f.ba039","name":"Sélection du module Sigfox","func":"// Déclaration des variables\nvar Module_Sigfox;\nvar Type_Bilan;\n\n// Réception des paramètres\nModule_Sigfox = global.get('idSigfox_Bilan');\nType_Bilan = \"Hebdo\";// \"Hebdo\", \"Mensuel\", \"6mois\"\n\n// Construction du payload\nmsg.payload = \n{\n \"id_Sigfox\" : Module_Sigfox,\n \"type_Bilan\": Type_Bilan\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":339.36669921875,"y":790,"wires":[["f8c2c35.5405dc"]]},{"id":"cc636e65.71d548","type":"link out","z":"e884629f.ba039","name":"Update_idSigfox_Bilan","links":["6b74131f.72c6a4","7a8b7120.f3e36","da53032d.006db"],"x":871.4498901367188,"y":663.5333251953125,"wires":[]},{"id":"da53032d.006db","type":"link in","z":"e884629f.ba039","name":"Update_idSigfox_Bilan","links":["28812c23.bc52a4","cc636e65.71d548"],"x":181.4499969482422,"y":791.316650390625,"wires":[["b925f1d2.2e0858"]]},{"id":"fbcfb2e9.8621f8","type":"comment","z":"e884629f.ba039","name":"Update Sigfox","info":"","x":969.5665893554688,"y":663.7666625976562,"wires":[]},{"id":"30b62d02.b41142","type":"comment","z":"e884629f.ba039","name":"Update Sigfox","info":"","x":85,"y":792.7666625976562,"wires":[]},{"id":"eb97fdc4.4acae8","type":"comment","z":"e884629f.ba039","name":"Récupération du Bilan Hebdomadaire","info":"","x":165,"y":753.9000244140625,"wires":[]},{"id":"6ecccfa2.482a18","type":"http request","z":"e884629f.ba039","name":"Recherche_BDD","method":"GET","ret":"txt","url":"","tls":"","x":1003.7666015625,"y":919.6666870117188,"wires":[["81c6f2d7.222a78"]]},{"id":"ef3b54ce.ed3248","type":"function","z":"e884629f.ba039","name":"Recherche BDD","func":"var Type_Bilan = msg.payload.type_Bilan;\nvar id_Sigfox = msg.payload.id_Sigfox;\n// Adresse de la BDD (avec le search_index)\nvar requete_http = \"https://59a95fc8-13b3-464b-9a55-34cf8778d210-bluemix.cloudant.com/releves_sigfox/_design/\"+id_Sigfox+\"/_view/Bilan_\"+Type_Bilan+\"?include_docs=true\"\n// Création de la requête\nmsg.payload =requete_http;\n\nreturn msg;","outputs":1,"noerr":0,"x":582.7667236328125,"y":920.5000610351562,"wires":[["fc9b47f3.3a395"]]},{"id":"525cd04e.d7dae8","type":"debug","z":"e884629f.ba039","name":"Requete HTTP","active":false,"console":"false","complete":"true","x":1004.88330078125,"y":952.1000366210938,"wires":[]},{"id":"fc9b47f3.3a395","type":"change","z":"e884629f.ba039","name":"payload -> url","rules":[{"t":"move","p":"payload","pt":"msg","to":"url","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":790.7666015625,"y":920.2333374023438,"wires":[["6ecccfa2.482a18","525cd04e.d7dae8"]]},{"id":"92b1328a.87962","type":"debug","z":"e884629f.ba039","name":"Reponse HTTP","active":false,"console":"false","complete":"true","x":1321.88330078125,"y":955.1000366210938,"wires":[]},{"id":"81c6f2d7.222a78","type":"json","z":"e884629f.ba039","name":"","pretty":false,"x":1161.2666015625,"y":919.5000610351562,"wires":[["92b1328a.87962","a7521b89.812498"]]},{"id":"a7521b89.812498","type":"link out","z":"e884629f.ba039","name":"BDD_Recherche_Mensuel","links":["1d939808.6e423"],"x":1258.7666015625,"y":920.6666870117188,"wires":[]},{"id":"97a4e363.7f1e9","type":"comment","z":"e884629f.ba039","name":"BDD_Recherche_Mensuel","info":"","x":1383.7666015625,"y":920.5333862304688,"wires":[]},{"id":"dd1c7991.2446c8","type":"function","z":"e884629f.ba039","name":"Sélection du module Sigfox","func":"// Déclaration des variables\nvar Module_Sigfox;\nvar Type_Bilan;\n\n// Réception des paramètres\nModule_Sigfox = global.get('idSigfox_Bilan');\nType_Bilan = \"Mensuel\";// \"Hebdo\", \"Mensuel\", \"6mois\"\n\n// Construction du payload\nmsg.payload = \n{\n \"id_Sigfox\" : Module_Sigfox,\n \"type_Bilan\": Type_Bilan\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":333.36669921875,"y":920.6834106445312,"wires":[["ef3b54ce.ed3248"]]},{"id":"7a8b7120.f3e36","type":"link in","z":"e884629f.ba039","name":"Update_idSigfox_Bilan","links":["28812c23.bc52a4","cc636e65.71d548"],"x":171.4499969482422,"y":922.0000610351562,"wires":[["dd1c7991.2446c8"]]},{"id":"d146aae7.18c51","type":"comment","z":"e884629f.ba039","name":"Update Sigfox","info":"","x":75,"y":923.4500732421875,"wires":[]},{"id":"e7964dba.093248","type":"comment","z":"e884629f.ba039","name":"Récupération du Bilan Mensuel ","info":"","x":155,"y":884.5834350585938,"wires":[]},{"id":"68df84bb.cd5004","type":"http request","z":"e884629f.ba039","name":"Recherche_BDD","method":"GET","ret":"txt","url":"","tls":"","x":1003.7666015625,"y":1050.6666259765625,"wires":[["2c27a519.d0c99a"]]},{"id":"6459c813.00b33","type":"function","z":"e884629f.ba039","name":"Recherche BDD","func":"var Type_Bilan = msg.payload.type_Bilan;\nvar id_Sigfox = msg.payload.id_Sigfox;\n// Adresse de la BDD (avec le search_index)\nvar requete_http = \"https://59a95fc8-13b3-464b-9a55-34cf8778d210-bluemix.cloudant.com/releves_sigfox/_design/\"+id_Sigfox+\"/_view/Bilan_\"+Type_Bilan+\"?include_docs=true\"\n// Création de la requête\nmsg.payload =requete_http;\n\nreturn msg;","outputs":1,"noerr":0,"x":588.7667236328125,"y":1051.4999389648438,"wires":[["539a588.676a7a8"]]},{"id":"5bfe7984.9e15f","type":"debug","z":"e884629f.ba039","name":"Requete HTTP","active":false,"console":"false","complete":"true","x":1004.88330078125,"y":1083.0999755859375,"wires":[]},{"id":"539a588.676a7a8","type":"change","z":"e884629f.ba039","name":"payload -> url","rules":[{"t":"move","p":"payload","pt":"msg","to":"url","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":790.7666015625,"y":1051.2332763671875,"wires":[["68df84bb.cd5004","5bfe7984.9e15f"]]},{"id":"ebfc4ee1.f950f","type":"debug","z":"e884629f.ba039","name":"Reponse HTTP","active":false,"console":"false","complete":"true","x":1321.88330078125,"y":1086.0999755859375,"wires":[]},{"id":"2c27a519.d0c99a","type":"json","z":"e884629f.ba039","name":"","pretty":false,"x":1161.2666015625,"y":1050.5,"wires":[["ebfc4ee1.f950f","ce618256.564fd"]]},{"id":"ce618256.564fd","type":"link out","z":"e884629f.ba039","name":"BDD_Recherche_Semestriel","links":["d78e135c.457c88"],"x":1258.7666015625,"y":1051.6666259765625,"wires":[]},{"id":"f5363f0d.5dca98","type":"comment","z":"e884629f.ba039","name":"BDD_Recherche_Semestriel","info":"","x":1406.7666015625,"y":1051.5333251953125,"wires":[]},{"id":"fb6e5b18.722798","type":"function","z":"e884629f.ba039","name":"Sélection du module Sigfox","func":"// Déclaration des variables\nvar Module_Sigfox;\nvar Type_Bilan;\n\n// Réception des paramètres\nModule_Sigfox = global.get('idSigfox_Bilan');\nType_Bilan = \"6mois\";// \"Hebdo\", \"Mensuel\", \"6mois\"\n\n// Construction du payload\nmsg.payload = \n{\n \"id_Sigfox\" : Module_Sigfox,\n \"type_Bilan\": Type_Bilan\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":349.36669921875,"y":1051.683349609375,"wires":[["6459c813.00b33"]]},{"id":"6b74131f.72c6a4","type":"link in","z":"e884629f.ba039","name":"Update_idSigfox_Bilan","links":["28812c23.bc52a4","cc636e65.71d548"],"x":171.4499969482422,"y":1053,"wires":[["fb6e5b18.722798"]]},{"id":"fb7c3f57.2b8c48","type":"comment","z":"e884629f.ba039","name":"Update Sigfox","info":"","x":75,"y":1054.4500122070312,"wires":[]},{"id":"23e0bd8.24ffdc2","type":"comment","z":"e884629f.ba039","name":"Récupération du Bilan Semestriel ","info":"","x":155,"y":1015.5833740234375,"wires":[]},{"id":"bb4b7964.1bd558","type":"comment","z":"e884629f.ba039","name":"BDD_Recherche_Hebdomadaire","info":"","x":145,"y":1279.1001586914062,"wires":[]},{"id":"50d27b40.418424","type":"inject","z":"e884629f.ba039","name":"deploiement","topic":"","payload":"","payloadType":"date","repeat":"600","crontab":"","once":true,"x":105,"y":1099.699951171875,"wires":[["fb6e5b18.722798"]]},{"id":"7f8441b4.c60f1","type":"inject","z":"e884629f.ba039","name":"deploiement","topic":"","payload":"","payloadType":"date","repeat":"600","crontab":"","once":true,"x":106.56666564941406,"y":960.7000122070312,"wires":[["dd1c7991.2446c8"]]},{"id":"8e7c67d8.1e69e8","type":"inject","z":"e884629f.ba039","name":"deploiement","topic":"","payload":"","payloadType":"date","repeat":"600","crontab":"","once":true,"x":114,"y":828.7000122070312,"wires":[["b925f1d2.2e0858"]]},{"id":"b4e573fa.9d7478","type":"function","z":"e884629f.ba039","name":"Mise en forme CSV","func":"// Déclaration d'un tableau de messages\n//var outputMsgs = [];\n\n// tableau récupérant les résultats\n\nvar Numero_Releve =[];\n\nvar Date_Releve =[];\nvar Heure_Releve =[];\n\nvar id_Sigfox = [];\n\nvar TempAir = [];\nvar TempSol = [];\nvar HumidAir = [];\nvar HumidSol = [];\nvar Lumiere = [];\nvar Batterie= [];\nvar Clear =[];\nvar Red = [];\nvar Green = [];\nvar Blue = [];\n\nvar Releve_Sigfox =[];\nvar Buffer_CSV = \"\";\n\n// Récupération du nombre de lignes présentes dans le tableau\nvar nb_lignes = msg.payload.total_rows;\n\n// Entête de chaque colonne\nReleve_Sigfox[0] = 'id_Point;Date;Heure;id_Sigfox;Temperature_Sol_(Celsius);Humidite_Sol_(%);Temperature_Air_(Celsius);Humidite_Air_(%);Luminosite_(lux);Spectre_Ambiant;Spectre_Rouge;Spectre_Vert;Spectre_Bleu;Batterie_(%) %0A'\nBuffer_CSV = Releve_Sigfox[0];\n\n// Traitement des données\nfor (i=1;i<nb_lignes+1;i++)\n{\n // Récupération des données\n Numero_Releve[i] = i;\n Date_Releve[i] = msg.payload.rows[i-1].doc.Date;\n Heure_Releve[i] = msg.payload.rows[i-1].doc.Heure;\n id_Sigfox[i] = msg.payload.rows[i-1].doc.id_Sigfox;\n \n TempSol[i] = msg.payload.rows[i-1].doc.TempSol;\n TempAir[i] = msg.payload.rows[i-1].doc.TempAir;\n HumidSol[i] = msg.payload.rows[i-1].doc.HumidSol;\n HumidAir[i] = msg.payload.rows[i-1].doc.HumidAir;\n Lumiere[i] = msg.payload.rows[i-1].doc.Lumiere;\n Batterie[i] = msg.payload.rows[i-1].doc.Batterie;\n \n Clear[i] = msg.payload.rows[i-1].doc.Clear;\n Red[i] = msg.payload.rows[i-1].doc.Red;\n Green[i] = msg.payload.rows[i-1].doc.Green;\n Blue[i] = msg.payload.rows[i-1].doc.Blue;\n\n // Création de la ligne du tableau CSV \n Releve_Sigfox[i] = Numero_Releve[i]+';'+Date_Releve[i] + ';' + Heure_Releve[i]+';'+id_Sigfox[i]+';'+TempSol[i]+';'+HumidSol[i]+';'+TempAir[i]+';'+HumidAir[i]+';'+Lumiere[i]+';'+Clear[i]+';'+Red[i]+';'+Green[i]+';'+Blue[i]+';'+Batterie[i]+'%0A';\n \n \n // Enregistrement dans le buffer représentant le fichier CSV\n Buffer_CSV = Buffer_CSV + Releve_Sigfox[i];\n}\n\n// Mise à disposition du tableau\nmsg.payload = Buffer_CSV;\nvar idSigfox_fichier = global.get('idSigfox_Bilan');\nmsg.filename = \"Rapport_Sigfox_Mensuel_\" + idSigfox_fichier + \".csv\";\n\nreturn msg;\n","outputs":1,"noerr":0,"x":437.7501220703125,"y":1378.1000671386719,"wires":[["638b9d87.3b1f2c","bb48864d.83ae"]]},{"id":"638b9d87.3b1f2c","type":"debug","z":"e884629f.ba039","name":"Bouton_Rapport_CSV","active":false,"console":"false","complete":"payload","x":676.750244140625,"y":1418.10009765625,"wires":[]},{"id":"bb48864d.83ae","type":"ui_template","z":"e884629f.ba039","group":"d2ecd5e4.8e5de","name":"Bouton de téléchargement du rapport CSV Mensuel","order":3,"width":"9","height":"2","format":"<a download=\"{{msg.filename}}\" href=\"data:application/octet-stream,{{msg.payload}}\">\n<md-card >\n <md-button class=\"md-raised\" ng-click=\"me.buttonClick()\" ng-style=\"{color:me.item.getColor()}\" >\n\t\t<ui-icon icon=\"fa-file-excel-o\" ng-style=\"{color:me.item.getColor()}\" ></ui-icon> \n Télécharger le Bilan CSV Mensuel\n </md-button>\n</md-card>\n</a>\n\n<style>\n a\n {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .md-raised\n { \n width :350px;\n height:50px;\n } \n a:link\n {\n text-decoration:none\n }\n</style>","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":764.3670654296875,"y":1376.3500366210938,"wires":[[]]},{"id":"1d939808.6e423","type":"link in","z":"e884629f.ba039","name":"BDD_Recherche_Mensuel","links":["87c82fb9.1b3da","a7521b89.812498","667edd1a.e1d244"],"x":263.01953125,"y":1377.3538818359375,"wires":[["b4e573fa.9d7478"]]},{"id":"690a3d77.ab774c","type":"comment","z":"e884629f.ba039","name":"BDD_Recherche_Mensuel","info":"","x":125,"y":1375.4498291015625,"wires":[]},{"id":"b575d7ff.676c68","type":"function","z":"e884629f.ba039","name":"Mise en forme CSV","func":"// Déclaration d'un tableau de messages\n//var outputMsgs = [];\n\n// tableau récupérant les résultats\n\nvar Numero_Releve =[];\n\nvar Date_Releve =[];\nvar Heure_Releve =[];\n\nvar id_Sigfox = [];\n\nvar TempAir = [];\nvar TempSol = [];\nvar HumidAir = [];\nvar HumidSol = [];\nvar Lumiere = [];\nvar Batterie= [];\nvar Clear =[];\nvar Red = [];\nvar Green = [];\nvar Blue = [];\n\nvar Releve_Sigfox =[];\nvar Buffer_CSV = \"\";\n\n// Récupération du nombre de lignes présentes dans le tableau\nvar nb_lignes = msg.payload.total_rows;\n\n// Entête de chaque colonne\nReleve_Sigfox[0] = 'id_Point;Date;Heure;id_Sigfox;Temperature_Sol_(Celsius);Humidite_Sol_(%);Temperature_Air_(Celsius);Humidite_Air_(%);Luminosite_(lux);Spectre_Ambiant;Spectre_Rouge;Spectre_Vert;Spectre_Bleu;Batterie_(%) %0A'\nBuffer_CSV = Releve_Sigfox[0];\n\n// Traitement des données\nfor (i=1;i<nb_lignes+1;i++)\n{\n // Récupération des données\n Numero_Releve[i] = i;\n Date_Releve[i] = msg.payload.rows[i-1].doc.Date;\n Heure_Releve[i] = msg.payload.rows[i-1].doc.Heure;\n id_Sigfox[i] = msg.payload.rows[i-1].doc.id_Sigfox;\n \n TempSol[i] = msg.payload.rows[i-1].doc.TempSol;\n TempAir[i] = msg.payload.rows[i-1].doc.TempAir;\n HumidSol[i] = msg.payload.rows[i-1].doc.HumidSol;\n HumidAir[i] = msg.payload.rows[i-1].doc.HumidAir;\n Lumiere[i] = msg.payload.rows[i-1].doc.Lumiere;\n Batterie[i] = msg.payload.rows[i-1].doc.Batterie;\n \n Clear[i] = msg.payload.rows[i-1].doc.Clear;\n Red[i] = msg.payload.rows[i-1].doc.Red;\n Green[i] = msg.payload.rows[i-1].doc.Green;\n Blue[i] = msg.payload.rows[i-1].doc.Blue;\n\n // Création de la ligne du tableau CSV \n Releve_Sigfox[i] = Numero_Releve[i]+';'+Date_Releve[i] + ';' + Heure_Releve[i]+';'+id_Sigfox[i]+';'+TempSol[i]+';'+HumidSol[i]+';'+TempAir[i]+';'+HumidAir[i]+';'+Lumiere[i]+';'+Clear[i]+';'+Red[i]+';'+Green[i]+';'+Blue[i]+';'+Batterie[i]+'%0A';\n \n \n // Enregistrement dans le buffer représentant le fichier CSV\n Buffer_CSV = Buffer_CSV + Releve_Sigfox[i];\n}\n\n// Mise à disposition du tableau\nmsg.payload = Buffer_CSV;\nvar idSigfox_fichier = global.get('idSigfox_Bilan');\nmsg.filename = \"Rapport_Sigfox_Semestriel_\" + idSigfox_fichier + \".csv\";\nreturn msg;\n","outputs":1,"noerr":0,"x":437.7501220703125,"y":1463.1000671386719,"wires":[["74a424e7.ea6d9c","beb52c4d.4f02e"]]},{"id":"74a424e7.ea6d9c","type":"debug","z":"e884629f.ba039","name":"Bouton_Rapport_CSV","active":false,"console":"false","complete":"payload","x":676.750244140625,"y":1503.10009765625,"wires":[]},{"id":"beb52c4d.4f02e","type":"ui_template","z":"e884629f.ba039","group":"d2ecd5e4.8e5de","name":"Bouton de téléchargement du rapport CSV Semestriel","order":4,"width":"9","height":"2","format":"<a download=\"{{msg.filename}}\" href=\"data:application/octet-stream,{{msg.payload}}\">\n<md-card >\n <md-button class=\"md-raised\" ng-click=\"me.buttonClick()\" ng-style=\"{color:me.item.getColor()}\" >\n\t\t<ui-icon icon=\"fa-file-excel-o\" ng-style=\"{color:me.item.getColor()}\" ></ui-icon> \n Télécharger le Bilan CSV Semestriel\n </md-button>\n</md-card>\n</a>\n\n<style>\n a\n {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .md-raised\n { \n width :350px;\n height:50px;\n } \n a:link\n {\n text-decoration:none\n }\n</style>","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":774.3670654296875,"y":1461.3500366210938,"wires":[[]]},{"id":"d78e135c.457c88","type":"link in","z":"e884629f.ba039","name":"BDD_Recherche_Semestriel","links":["87c82fb9.1b3da","ce618256.564fd","667edd1a.e1d244"],"x":281.01953125,"y":1460.3539428710938,"wires":[["b575d7ff.676c68"]]},{"id":"3ee2ba05.84c46e","type":"comment","z":"e884629f.ba039","name":"BDD_Recherche_Semestriel","info":"","x":135,"y":1460.4498291015625,"wires":[]},{"id":"f24d142a.7bcdf8","type":"ui_template","z":"e884629f.ba039","group":"d2ecd5e4.8e5de","name":"Bouton de téléchargement du rapport CSV Hebdomadaire","order":2,"width":"9","height":"2","format":"<a download=\"{{msg.filename}}\" href=\"data:application/octet-stream,{{msg.payload}}\">\n<md-card >\n <md-button class=\"md-raised\" ng-click=\"me.buttonClick()\" ng-style=\"{color:me.item.getColor()}\" >\n\t\t<ui-icon icon=\"fa-file-excel-o\" ng-style=\"{color:me.item.getColor()}\" ></ui-icon> \n Télécharger le Bilan CSV Hebdomadaire\n </md-button>\n</md-card>\n</a>\n\n<style>\n a\n {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n .md-raised\n { \n width :350px;\n height:50px;\n } \n a:link\n {\n text-decoration:none\n }\n</style>","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":797.566650390625,"y":1280.1000671386719,"wires":[[]]},{"id":"7f956da7.4028d4","type":"ui_dropdown","z":"e884629f.ba039","name":"","label":"Choisissez le module Sigfox à consulter","place":"N° de série","group":"d2ecd5e4.8e5de","order":1,"width":0,"height":0,"passthru":true,"options":[{"label":"Tous","value":"General","type":"str"},{"label":"1B3154","value":"1B3154","type":"str"},{"label":"1B324B","value":"1B324B","type":"str"},{"label":"1B3247","value":"1B3247","type":"str"}],"payload":"","topic":"","x":182,"y":661.9000549316406,"wires":[["2fd763f9.0003e4"]]},{"id":"ab74ab7.b837a58","type":"inject","z":"24cf228e.11172e","name":"","topic":"","payload":"1B324B","payloadType":"str","repeat":"","crontab":"","once":false,"x":93.56666564941406,"y":317.13330078125,"wires":[["a6befae6.b9263"]]},{"id":"6601c26e.de717c","type":"inject","z":"24cf228e.11172e","name":"","topic":"","payload":"1B3248","payloadType":"str","repeat":"","crontab":"","once":false,"x":92.56666564941406,"y":369.13330078125,"wires":[["a6befae6.b9263"]]},{"id":"f613e5ee.9ea47","type":"inject","z":"24cf228e.11172e","name":"","topic":"","payload":"General","payloadType":"str","repeat":"","crontab":"","once":false,"x":107.56666564941406,"y":518.3667106628418,"wires":[["41d11ade.5211cc"]]},{"id":"1908e263.5592b6","type":"cloudant out","z":"24cf228e.11172e","name":"TEST : ajout d'une categorie dans la bdd","cloudant":"","database":"releves_sigfox","service":"plantsigfox-cloudantNoSQLDB","payonly":true,"operation":"insert","x":717.2665710449219,"y":350.78314208984375,"wires":[]},{"id":"757eaeea.d80238","type":"debug","z":"24cf228e.11172e","name":"","active":true,"console":"false","complete":"false","x":626.7665710449219,"y":285.76641845703125,"wires":[]},{"id":"a6befae6.b9263","type":"function","z":"24cf228e.11172e","name":"Mise en forme de l'enregistrement","func":"var id_Sigfox = msg.payload;\n\n// Contenu du message\nmsg.payload = \n {\n \"_id\": \"_design/\"+id_Sigfox,\n \"views\": {\n \"Bilan_6mois\": {\n \"map\": \"function (doc) {\\n if (doc.TimeStamp&&doc.Point&&doc.Date&&doc.Heure&&doc.id_Sigfox&&doc.TempSol&&doc.HumidSol&&doc.TempAir&&doc.HumidAir&&doc.Lumiere&&doc.Clear&&doc.Red&&doc.Green&&doc.Blue&&doc.Batterie)\\n {\\n var id_Sigfox = \\\"\"+id_Sigfox+\"\\\";\\n var Limite_Temps = (24*3600) * 31 * 6 ; // secondes\\n var Now = new Date();\\n var Date_Mesure = doc.TimeStamp;\\n var Delta_Temps = ((Now.getTime()/ 1000) - Date_Mesure) ;\\n \\n if((Delta_Temps < Limite_Temps) && (doc.id_Sigfox == id_Sigfox))\\n {\\n emit(doc.TimeStamp,doc.Date,doc.Heure,doc.id_Sigfox,doc.TempSol,doc.HumidSol,doc.TempAir,doc.HumidAir,doc.Lumiere,doc.Clear,doc.Red,doc.Green,doc.Blue,doc.Batterie,doc.lat,doc.lng);\\n }\\n }\\n}\\n\"\n },\n \"Bilan_Hebdo\": {\n \"map\": \"function (doc) {\\n if (doc.TimeStamp&&doc.Point&&doc.Date&&doc.Heure&&doc.id_Sigfox&&doc.TempSol&&doc.HumidSol&&doc.TempAir&&doc.HumidAir&&doc.Lumiere&&doc.Clear&&doc.Red&&doc.Green&&doc.Blue&&doc.Batterie)\\n {\\n var id_Sigfox = \\\"\"+id_Sigfox+\"\\\";\\n var Limite_Temps = (24*3600) * 7 ; // secondes\\n var Now = new Date();\\n var Date_Mesure = doc.TimeStamp;\\n var Delta_Temps = ((Now.getTime()/ 1000) - Date_Mesure) ;\\n \\n if((Delta_Temps < Limite_Temps) && (doc.id_Sigfox == id_Sigfox))\\n {\\n emit(doc.TimeStamp,doc.Date,doc.Heure,doc.id_Sigfox,doc.TempSol,doc.HumidSol,doc.TempAir,doc.HumidAir,doc.Lumiere,doc.Clear,doc.Red,doc.Green,doc.Blue,doc.Batterie,doc.lat,doc.lng);\\n }\\n }\\n}\\n\"\n },\n \"Bilan_Mensuel\": {\n \"map\": \"function (doc) {\\n if (doc.TimeStamp&&doc.Point&&doc.Date&&doc.Heure&&doc.id_Sigfox&&doc.TempSol&&doc.HumidSol&&doc.TempAir&&doc.HumidAir&&doc.Lumiere&&doc.Clear&&doc.Red&&doc.Green&&doc.Blue&&doc.Batterie)\\n {\\n var id_Sigfox = \\\"\"+id_Sigfox+\"\\\";\\n var Limite_Temps = (24*3600) * 31; // secondes\\n var Now = new Date();\\n var Date_Mesure = doc.TimeStamp;\\n var Delta_Temps = ((Now.getTime()/ 1000) - Date_Mesure) ;\\n \\n if((Delta_Temps < Limite_Temps) && (doc.id_Sigfox == id_Sigfox))\\n {\\n emit(doc.TimeStamp,doc.Date,doc.Heure,doc.id_Sigfox,doc.TempSol,doc.HumidSol,doc.TempAir,doc.HumidAir,doc.Lumiere,doc.Clear,doc.Red,doc.Green,doc.Blue,doc.Batterie,doc.lat,doc.lng);\\n }\\n }\\n}\"\n }\n },\n \"language\": \"javascript\"\n};\n \nreturn msg;\n","outputs":1,"noerr":0,"x":371.88323974609375,"y":318.38323974609375,"wires":[["1908e263.5592b6","757eaeea.d80238"]]},{"id":"41d11ade.5211cc","type":"function","z":"24cf228e.11172e","name":"Mise en forme de l'enregistrement","func":"var id_Sigfox = msg.payload;\n\n// Contenu du message\nmsg.payload = \n {\n \"_id\": \"_design/\"+id_Sigfox,\n \"views\": {\n \"Bilan_6mois\": {\n \"map\": \"function (doc) {\\n if (doc.TimeStamp&&doc.Point&&doc.Date&&doc.Heure&&doc.id_Sigfox&&doc.TempSol&&doc.HumidSol&&doc.TempAir&&doc.HumidAir&&doc.Lumiere&&doc.Clear&&doc.Red&&doc.Green&&doc.Blue&&doc.Batterie)\\n {\\n var id_Sigfox = \\\"\"+id_Sigfox+\"\\\";\\n var Limite_Temps = (24*3600) * 31 * 6 ; // secondes\\n var Now = new Date();\\n var Date_Mesure = doc.TimeStamp;\\n var Delta_Temps = ((Now.getTime()/ 1000) - Date_Mesure) ;\\n \\n if(Delta_Temps < Limite_Temps)\\n {\\n emit(doc.TimeStamp,doc.Date,doc.Heure,doc.id_Sigfox,doc.TempSol,doc.HumidSol,doc.TempAir,doc.HumidAir,doc.Lumiere,doc.Clear,doc.Red,doc.Green,doc.Blue,doc.Batterie,doc.lat,doc.lng);\\n }\\n }\\n}\\n\"\n },\n \"Bilan_Hebdo\": {\n \"map\": \"function (doc) {\\n if (doc.TimeStamp&&doc.Point&&doc.Date&&doc.Heure&&doc.id_Sigfox&&doc.TempSol&&doc.HumidSol&&doc.TempAir&&doc.HumidAir&&doc.Lumiere&&doc.Clear&&doc.Red&&doc.Green&&doc.Blue&&doc.Batterie)\\n {\\n var id_Sigfox = \\\"\"+id_Sigfox+\"\\\";\\n var Limite_Temps = (24*3600) * 7 ; // secondes\\n var Now = new Date();\\n var Date_Mesure = doc.TimeStamp;\\n var Delta_Temps = ((Now.getTime()/ 1000) - Date_Mesure) ;\\n \\n if(Delta_Temps < Limite_Temps)\\n {\\n emit(doc.TimeStamp,doc.Date,doc.Heure,doc.id_Sigfox,doc.TempSol,doc.HumidSol,doc.TempAir,doc.HumidAir,doc.Lumiere,doc.Clear,doc.Red,doc.Green,doc.Blue,doc.Batterie,doc.lat,doc.lng);\\n }\\n }\\n}\\n\"\n },\n \"Bilan_Mensuel\": {\n \"map\": \"function (doc) {\\n if (doc.TimeStamp&&doc.Point&&doc.Date&&doc.Heure&&doc.id_Sigfox&&doc.TempSol&&doc.HumidSol&&doc.TempAir&&doc.HumidAir&&doc.Lumiere&&doc.Clear&&doc.Red&&doc.Green&&doc.Blue&&doc.Batterie)\\n {\\n var id_Sigfox = \\\"\"+id_Sigfox+\"\\\";\\n var Limite_Temps = (24*3600) * 31; // secondes\\n var Now = new Date();\\n var Date_Mesure = doc.TimeStamp;\\n var Delta_Temps = ((Now.getTime()/ 1000) - Date_Mesure) ;\\n \\n if(Delta_Temps < Limite_Temps)\\n {\\n emit(doc.TimeStamp,doc.Date,doc.Heure,doc.id_Sigfox,doc.TempSol,doc.HumidSol,doc.TempAir,doc.HumidAir,doc.Lumiere,doc.Clear,doc.Red,doc.Green,doc.Blue,doc.Batterie,doc.lat,doc.lng);\\n }\\n }\\n}\"\n }\n },\n \"language\": \"javascript\"\n};\n \nreturn msg;\n","outputs":1,"noerr":0,"x":363.56665420532227,"y":519.3667259216309,"wires":[["1908e263.5592b6"]]},{"id":"7a89bfe9.ab11d","type":"comment","z":"4b3afa8.fe95904","name":"Choix du module Sigfox à afficher","info":"","x":158,"y":311.33331298828125,"wires":[]},{"id":"95a04b8c.5b7648","type":"function","z":"4b3afa8.fe95904","name":"Sauvegarde du n° dans une variable globale 'idSigfox_Select'","func":"global.set('idSigfox_Select',msg.payload);\n\nreturn msg;","outputs":1,"noerr":0,"x":761.5166625976562,"y":380.33331298828125,"wires":[["28812c23.bc52a4","b0e2aab2.598f98"]]},{"id":"28812c23.bc52a4","type":"link out","z":"4b3afa8.fe95904","name":"Update_idSigfox_Select","links":["6b74131f.72c6a4","7a8b7120.f3e36","da53032d.006db","868910ae.558e1"],"x":1044.449951171875,"y":381.1999816894531,"wires":[]},{"id":"7cd9cdc0.b6d924","type":"comment","z":"4b3afa8.fe95904","name":"Update_idSigfox_Select","info":"","x":1165.5667114257812,"y":381.4333190917969,"wires":[]},{"id":"4640010e.4ffa","type":"ui_dropdown","z":"4b3afa8.fe95904","name":"l'utilisateur choisit un n° de série","label":"N° de Série :","place":"---","group":"3ebccd86.146c02","order":1,"width":0,"height":0,"passthru":true,"options":[{"label":"1B3154","value":"1B3154","type":"str"},{"label":"1B324B","value":"1B324B","type":"str"},{"label":"1B3247","value":"1B3247","type":"str"}],"payload":"","topic":"","x":187,"y":381.56671142578125,"wires":[["8a5da499.212cb"]]},{"id":"79221ce8.6c748c","type":"comment","z":"4b3afa8.fe95904","name":"Chargement du dernier relevé correspondant","info":"","x":198,"y":601.75,"wires":[]},{"id":"30bd9bfa.b2fde4","type":"comment","z":"4b3afa8.fe95904","name":"Chargement de la BDD correspondante","info":"","x":174,"y":483.75,"wires":[]},{"id":"4b4dee93.c460f","type":"http request","z":"4b3afa8.fe95904","name":"Chargement_BDD","method":"GET","ret":"txt","url":"","tls":"","x":1138.9998626708984,"y":521.7499084472656,"wires":[["41240597.98b21c"]]},{"id":"c9429cf2.63ff5","type":"function","z":"4b3afa8.fe95904","name":"Chargement BDD Hebdo","func":"var Type_Bilan = msg.payload.type_Bilan;\nvar id_Sigfox = msg.payload.id_Sigfox;\n// Adresse de la BDD (avec le search_index)\nvar requete_http = \"https://59a95fc8-13b3-464b-9a55-34cf8778d210-bluemix.cloudant.com/releves_sigfox/_design/\"+id_Sigfox+\"/_view/Bilan_\"+Type_Bilan+\"?include_docs=true\"\n// Création de la requête\nmsg.payload =requete_http;\n\nreturn msg;","outputs":1,"noerr":0,"x":677.9999847412109,"y":521.5832824707031,"wires":[["745fb998.a19028"]]},{"id":"c58cde76.6363a8","type":"debug","z":"4b3afa8.fe95904","name":"Requete HTTP","active":false,"console":"false","complete":"true","x":1130.1165618896484,"y":554.1832580566406,"wires":[]},{"id":"745fb998.a19028","type":"change","z":"4b3afa8.fe95904","name":"payload -> url","rules":[{"t":"move","p":"payload","pt":"msg","to":"url","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":915.9998626708984,"y":522.3165588378906,"wires":[["4b4dee93.c460f","c58cde76.6363a8"]]},{"id":"6b49f45a.2d05b4","type":"debug","z":"4b3afa8.fe95904","name":"Reponse HTTP","active":false,"console":"false","complete":"true","x":1496.1165771484375,"y":558.1832580566406,"wires":[]},{"id":"41240597.98b21c","type":"json","z":"4b3afa8.fe95904","name":"","pretty":false,"x":1308.4998626708984,"y":521.5832824707031,"wires":[["6b49f45a.2d05b4","22056624.f7e0fa"]]},{"id":"22056624.f7e0fa","type":"link out","z":"4b3afa8.fe95904","name":"BDD_Disponible","links":["7041b4d1.37dce4","c112e18.fec35a","1566f1fe.f41336"],"x":1430.9998779296875,"y":521.7498474121094,"wires":[]},{"id":"7041b4d1.37dce4","type":"link in","z":"4b3afa8.fe95904","name":"BDD_Disponible","links":["22056624.f7e0fa"],"x":204.4499969482422,"y":647.316650390625,"wires":[["1565ada7.817322","b33d7deb.2f0e08"]]},{"id":"1e8e7e07.89366a","type":"comment","z":"4b3afa8.fe95904","name":"BDD_Disponible","info":"","x":1525.566650390625,"y":520.5665283203125,"wires":[]},{"id":"734a064c.8ac58","type":"comment","z":"4b3afa8.fe95904","name":"BDD_Disponible","info":"","x":108,"y":647.566650390625,"wires":[]},{"id":"b33d7deb.2f0e08","type":"function","z":"4b3afa8.fe95904","name":"Extraction du dernier relevé","func":"var Taille_BDD = msg.payload.total_rows;\nif (Taille_BDD > 0)\n{\n msg.payload = \n {\n 'TimeStamp' : msg.payload.rows[Taille_BDD - 1].doc.TimeStamp,\n 'Point' : msg.payload.rows[Taille_BDD - 1].doc.Point,\n 'id_Sigfox' : msg.payload.rows[Taille_BDD - 1].doc.id_Sigfox,\n 'Date' : msg.payload.rows[Taille_BDD - 1].doc.Date,\n 'Heure' : msg.payload.rows[Taille_BDD - 1].doc.Heure,\n 'TempAir' : msg.payload.rows[Taille_BDD - 1].doc.TempAir,\n 'TempSol' : msg.payload.rows[Taille_BDD - 1].doc.TempSol,\n 'HumidAir' : msg.payload.rows[Taille_BDD - 1].doc.HumidAir,\n 'HumidSol' : msg.payload.rows[Taille_BDD - 1].doc.HumidSol,\n 'Lumiere' : msg.payload.rows[Taille_BDD - 1].doc.Lumiere,\n 'Batterie' : msg.payload.rows[Taille_BDD - 1].doc.Batterie,\n 'Clear' : msg.payload.rows[Taille_BDD - 1].doc.Clear,\n 'Red' : msg.payload.rows[Taille_BDD - 1].doc.Red,\n 'Green' : msg.payload.rows[Taille_BDD - 1].doc.Green,\n 'Blue' : msg.payload.rows[Taille_BDD - 1].doc.Blue,\n 'lat' : msg.payload.rows[Taille_BDD - 1].doc.lat, \n 'lng' : msg.payload.rows[Taille_BDD - 1].doc.lng \n \n };\n}\nelse\n{\n msg.payload = \n {\n 'TimeStamp' : '---',\n 'Point' : '---',\n 'id_Sigfox' : '---',\n 'Date' : '---',\n 'Heure' : '---',\n 'TempAir' : '---',\n 'TempSol' : '---',\n 'HumidAir' : '---',\n 'HumidSol' : '---',\n 'Lumiere' : '---',\n 'Batterie' : '---',\n 'Clear' : '---',\n 'Red' : '---',\n 'Green' : '---',\n 'Blue' : '---',\n 'lat' : '---',\n 'lng' : '---'\n };\n}\nreturn msg;","outputs":1,"noerr":0,"x":365.566650390625,"y":649.566650390625,"wires":[["dd7eaeaf.898a6","3f164d79.b3a072"]]},{"id":"1565ada7.817322","type":"debug","z":"4b3afa8.fe95904","name":"Reponse HTTP","active":false,"console":"false","complete":"true","x":318.56666564941406,"y":698.566650390625,"wires":[]},{"id":"b5b2e3c2.a072e8","type":"function","z":"4b3afa8.fe95904","name":"Sélection du module Sigfox","func":"// Déclaration des variables\nvar Module_Sigfox;\nvar Type_Bilan;\n\n// Réception des paramètres\nModule_Sigfox = global.get('idSigfox_Select');\nType_Bilan = \"Hebdo\";// \"Hebdo\", \"Mensuel\", \"6mois\"\n\n// Construction du payload\nmsg.payload = \n{\n \"id_Sigfox\" : Module_Sigfox,\n \"type_Bilan\": Type_Bilan\n};\n\nreturn msg;","outputs":1,"noerr":0,"x":403.566650390625,"y":521.0998840332031,"wires":[["c9429cf2.63ff5"]]},{"id":"868910ae.558e1","type":"link in","z":"4b3afa8.fe95904","name":"Update_idSigfox_Select","links":["28812c23.bc52a4"],"x":244.44998168945312,"y":521.3165588378906,"wires":[["b5b2e3c2.a072e8"]]},{"id":"f481488b.29a01","type":"comment","z":"4b3afa8.fe95904","name":"Update_idSigfox_Select","info":"","x":127,"y":523.0999755859375,"wires":[]},{"id":"dd7eaeaf.898a6","type":"debug","z":"4b3afa8.fe95904","name":"Extraction donnees","active":false,"console":"false","complete":"true","x":675.75,"y":692.2833251953125,"wires":[]},{"id":"3f164d79.b3a072","type":"link out","z":"4b3afa8.fe95904","name":"Dernier_Relevé_Disponible","links":["79de96d3.1084c8","983fd7a6.72bac8","d5e5c78f.c940d8"],"x":599.75,"y":651.7500305175781,"wires":[]},{"id":"a80fe43b.63a5c","type":"comment","z":"4b3afa8.fe95904","name":"Dernier_Relevé_Disponible ","info":"","x":735.3168106079102,"y":650.566689491272,"wires":[]},{"id":"d5dd1388.dda25","type":"comment","z":"4b3afa8.fe95904","name":"Affichage du dernier relevé","info":"","x":150,"y":823,"wires":[]},{"id":"7cc14efd.78cc18","type":"comment","z":"4b3afa8.fe95904","name":"Dernier_Relevé_Disponible","info":"","x":137,"y":1102.5999755859375,"wires":[]},{"id":"79de96d3.1084c8","type":"link in","z":"4b3afa8.fe95904","name":"Dernier_Relevé_Disponible","links":["3f164d79.b3a072"],"x":263.566650390625,"y":1100.599952697754,"wires":[["f6075f96.6603f","3df8c43.491533c","4615b3e7.2e4934","22301455.e7437c","eefa0021.64ef48","82a76317.735f28","6a36b8d3.0695c","49d62c.e99339d4","4984aa09.641ae4","ca72fd73.be875","8287cdfe.cd9e3","5e807283.010f2c"]]},{"id":"f6075f96.6603f","type":"function","z":"4b3afa8.fe95904","name":"Extraction TempAir","func":"// Extraction du message\nmsg.payload = msg.payload.TempAir;\n\n\nreturn msg;","outputs":1,"noerr":0,"x":486.566650390625,"y":872.7999267578125,"wires":[["7da51d25.a84be4"]]},{"id":"3df8c43.491533c","type":"function","z":"4b3afa8.fe95904","name":"Extraction HumidAir","func":"// Extraction du message\nmsg.payload = msg.payload.HumidAir;\n\nreturn msg;","outputs":1,"noerr":0,"x":486.5666284561157,"y":916.7999200820923,"wires":[["7786223b.72f5dc"]]},{"id":"4615b3e7.2e4934","type":"function","z":"4b3afa8.fe95904","name":"Extraction TempSol","func":"// Extraction du message\nmsg.payload = msg.payload.TempSol;\n\nreturn msg;","outputs":1,"noerr":0,"x":483.56658935546875,"y":960.7999267578125,"wires":[["6d3969cf.def8d"]]},{"id":"22301455.e7437c","type":"function","z":"4b3afa8.fe95904","name":"Extraction HumidSol","func":"// Extraction du message\nmsg.payload = msg.payload.HumidSol;\n\nreturn msg;","outputs":1,"noerr":0,"x":482.56658935546875,"y":1003.7998657226562,"wires":[["cf7ed17f.14532"]]},{"id":"eefa0021.64ef48","type":"function","z":"4b3afa8.fe95904","name":"Extraction Lumiere","func":"// Extraction du message\nmsg.payload = msg.payload.Lumiere;\n\nreturn msg;","outputs":1,"noerr":0,"x":482.56658935546875,"y":1046.7999267578125,"wires":[["bb042c8e.fdee"]]},{"id":"82a76317.735f28","type":"function","z":"4b3afa8.fe95904","name":"Extraction Batterie","func":"// Extraction du message\nvar Niveau_Batterie = msg.payload.Batterie;\n\nif (Niveau_Batterie > 0 && Niveau_Batterie <100)\n{\n msg.payload = Niveau_Batterie; \n global.set('Batterie',Niveau_Batterie);\n}\nelse\n{\n msg.payload = -1;\n global.set('Batterie',-1);\n}\nreturn msg;","outputs":1,"noerr":0,"x":475.56658935546875,"y":1139.7999877929688,"wires":[["9ba70044.94ec9"]]},{"id":"7da51d25.a84be4","type":"ui_text","z":"4b3afa8.fe95904","group":"4486da81.6a8adc","order":3,"width":"5","height":"3","name":"[Text] Température de l'air","label":"Température de l'air","format":" {{msg.payload}} °C","layout":"col-center","x":779.566650390625,"y":872.7999267578125,"wires":[]},{"id":"7786223b.72f5dc","type":"ui_text","z":"4b3afa8.fe95904","group":"4486da81.6a8adc","order":4,"width":"5","height":"3","name":"[Text] Humidité de l'air","label":"Humidité de l'air","format":"{{msg.payload}} %","layout":"col-center","x":770.5665283203125,"y":918.7999267578125,"wires":[]},{"id":"6d3969cf.def8d","type":"ui_text","z":"4b3afa8.fe95904","group":"4486da81.6a8adc","order":5,"width":"5","height":"3","name":"[Text] Température du sol","label":"Température du sol ","format":"{{msg.payload}} °C","layout":"col-center","x":781.566650390625,"y":961.7999877929688,"wires":[]},{"id":"cf7ed17f.14532","type":"ui_text","z":"4b3afa8.fe95904","group":"4486da81.6a8adc","order":6,"width":"5","height":"3","name":"[Text] Humidité du sol","label":"Humidité du sol","format":"{{msg.payload}} %","layout":"col-center","x":766.5665283203125,"y":1003.8001098632812,"wires":[]},{"id":"bb042c8e.fdee","type":"ui_text","z":"4b3afa8.fe95904","group":"4486da81.6a8adc","order":8,"width":"5","height":"4","name":"","label":"Luminosité","format":"{{msg.payload}} lux","layout":"col-center","x":724.566650390625,"y":1046.800048828125,"wires":[]},{"id":"b0e2aab2.598f98","type":"debug","z":"4b3afa8.fe95904","name":"Extraction donnees","active":false,"console":"false","complete":"true","x":1133.5667114257812,"y":428.9666442871094,"wires":[]},{"id":"ef0096ca.062298","type":"comment","z":"d2895c3e.ef3f6","name":"Message Sigfox","info":"","x":120,"y":275.5518798828125,"wires":[]},{"id":"7e8536b2.8d1848","type":"link in","z":"d2895c3e.ef3f6","name":"Message_Sigfox","links":["87c82fb9.1b3da","667edd1a.e1d244"],"x":218.01734924316406,"y":275.0103759765625,"wires":[["92dc14e8.e2d2d8","ba824d0f.f4aa2"]]},{"id":"e1b24ed1.0719b8","type":"ui_text","z":"4b3afa8.fe95904","group":"4486da81.6a8adc","order":2,"width":0,"height":0,"name":"","label":"Dernier relevé : ","format":"{{msg.payload}}","layout":"row-center","x":737.566650390625,"y":1089.9664916992188,"wires":[]},{"id":"6a36b8d3.0695c","type":"function","z":"4b3afa8.fe95904","name":"Extraction Date","func":"// Extraction du message\nvar Date_Releve = msg.payload.Date;\nvar Heure_Releve = msg.payload.Heure;\nvar Timestamp_Releve = msg.payload.TimeStamp;\n\n// Mise en forme des données\nmsg.payload = \"le \"+Date_Releve+\" à \"+Heure_Releve;\nglobal.set('Timestamp_Releve',Timestamp_Releve);\n\nreturn msg;","outputs":1,"noerr":0,"x":463.566650390625,"y":1090.9664916992188,"wires":[["e1b24ed1.0719b8"]]},{"id":"c223a8ef.675c48","type":"inject","z":"d2895c3e.ef3f6","name":"","topic":"Batterie","payload":"'Batterie'","payloadType":"global","repeat":"60","crontab":"","once":true,"x":156.36676025390625,"y":487.9999666213989,"wires":[["3acfb5b4.1c67ca"]]},{"id":"390146a0.fd82e2","type":"inject","z":"4b3afa8.fe95904","name":"","topic":"","payload":"1B324B","payloadType":"str","repeat":"","crontab":"","once":false,"x":264.566650390625,"y":415.566650390625,"wires":[["8a5da499.212cb"]]},{"id":"49d62c.e99339d4","type":"function","z":"4b3afa8.fe95904","name":"Extraction lat/lng","func":"// Code trouvé sur : \n// https://stackoverflow.com/questions/45784308/geocoding-node-red-node-google-error-invalid-request-invalid-latlng-paramet\nvar coords ={};\nvar latitude= msg.payload.lat;\nvar length = msg.payload.lng;\n\n\n\nif (latitude != 'inconnu' && length != 'inconnu')\n{\n global.set('lat',latitude);\n global.set('lng',length);\n coords.location = {lat:latitude, lon:length};\n \n coords.payload = \n {\n 'latitude':latitude,\n 'longitude':length,\n 'username':\"plantsigfox\"\n };\n return coords;\n}\nelse\n{\n return msg;\n}","outputs":1,"noerr":0,"x":472.566650390625,"y":1194.566650390625,"wires":[["af2649de.89cc4"]]},{"id":"8069d5b7.b10ac8","type":"function","z":"4b3afa8.fe95904","name":"Mise en forme","func":"// Récupération des données utiles\nvar Pays = msg.payload.geonames[0].countryName;\nvar Region = msg.payload.geonames[0].adminName1;\nvar Departement = msg.payload.geonames[0].adminName2;\nvar Lieu = msg.payload.geonames[0].alternateNames[1].name;\n\n\n// Mise en forme du message\n//msg.payload = Departement + ', ' + Lieu + ', '+ Region + ', ' + Pays;\nif (Region && Pays)\n{\n msg.payload = Region + ', ' + Pays;\n}\nelse\n{\n msg.payload = 'Introuvable';\n}\n\n// Envoi du message\nreturn msg;","outputs":1,"noerr":0,"x":1123.6839599609375,"y":1195.6839599609375,"wires":[["5512f93d.4ab508"]]},{"id":"5512f93d.4ab508","type":"ui_text","z":"4b3afa8.fe95904","group":"3ebccd86.146c02","order":6,"width":0,"height":0,"name":"Géolocalisation","label":"Géolocalisation : ","format":"{{msg.payload}}","layout":"row-spread","x":1335.567138671875,"y":1194.5667724609375,"wires":[]},{"id":"af2649de.89cc4","type":"lookup place","z":"4b3afa8.fe95904","latitude":"0","longitude":"0","style":"FULL","username":"plantsigfox","debug":false,"name":"Recherche de la zone selon les coordonnées","x":829.547119140625,"y":1194.562744140625,"wires":[["8069d5b7.b10ac8"]]},{"id":"92dc14e8.e2d2d8","type":"function","z":"d2895c3e.ef3f6","name":"Enregistrement de l'id Sigfox courant","func":"var id_Sigfox = msg.payload.device;\n\n\n//Mise en forme\nglobal.set('idSigfox_Courant',msg.payload.device);\nmsg.payload = id_Sigfox;\n\nreturn msg;","outputs":1,"noerr":0,"x":434.566650390625,"y":341.76666259765625,"wires":[[]]},{"id":"17961634.927cea","type":"function","z":"d2895c3e.ef3f6","name":"Enregistrement du relevé à la date/heure courante","func":"var now = new Date().getTime();\nvar Date_Notif = new Date();\nvar id_Sigfox;\n\n\nglobal.set('Date_Releve',Date_Notif.toString());\nglobal.set('Timestamp_Releve',msg.payload.time);\n\n\nidSigfox = global.get('idSigfox_Courant');\nvar Notif = '[' + Date_Notif + ']' +' Réception d\\'un point de mesure sur l\\'appareil '+idSigfox;\nmsg.payload = Notif;\nreturn msg;","outputs":1,"noerr":0,"x":678.36669921875,"y":276.0367126464844,"wires":[["c0d4e04e.e9fa78"]]},{"id":"c0d4e04e.e9fa78","type":"ui_toast","z":"d2895c3e.ef3f6","position":"bottom right","displayTime":"10","highlight":"","outputs":0,"ok":"Ok je vais changer la batterie","cancel":"La flemme","topic":"Notification","name":"Notification dès qu'un Relevé a été reçu","x":1081.750015258789,"y":275.7866916656494,"wires":[]},{"id":"ba824d0f.f4aa2","type":"delay","z":"d2895c3e.ef3f6","name":"","pauseType":"delay","timeout":"100","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":370,"y":280,"wires":[["17961634.927cea"]]},{"id":"133aa860.59e3e8","type":"ui_template","z":"4b3afa8.fe95904","group":"4486da81.6a8adc","name":"[TEST] Icône batterie","order":7,"width":"5","height":"3","format":"\n<md-card ui-card-size=\"5x3\" layout=\"column\" layout-align=\"center center\" class=\"nr-dashboard-text ng-scope _md layout-column layout-align-center-center visible\" ng-class=\"{'nr-dashboard-disabled':me.item.disabled}\" style=\"left: 270px; top: 378px; width: 264px; height: 210px;\">\n \n <div class = \"centre\" >\n <ui-icon class = \"centre\" icon=\"{{msg.payload.icon}}\" ng-style=\"{color:me.item.getColor()}\" >\n </ui-icon> \n <p class=\"value ng-binding\" >{{msg.payload.Batterie}}</p> \n </div>\n \n</md-card>\n\n<style>\n.centre\n{\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n</style>","storeOutMessages":false,"fwdInMessages":false,"templateScope":"local","x":998.566650390625,"y":1140.7664184570312,"wires":[[]]},{"id":"9ba70044.94ec9","type":"function","z":"4b3afa8.fe95904","name":"Choix icone batterie","func":"var Batterie = msg.payload;\nvar Texte_Batterie = 'Niveau de Batterie : '+Batterie+'%';\n\n\n// Batterie pleine\nif (Batterie <= 100 && Batterie >= 90)\n\n msg.payload = {'icon':'fa-battery-full','Batterie':Texte_Batterie};\n \n// Batterie 3/4\nelse if(Batterie < 90 && Batterie >= 60)\n msg.payload = {'icon':'fa-battery-three-quarters','Batterie':Texte_Batterie};\n \n// Batterie Moitié\nelse if(Batterie < 60 && Batterie >= 40)\n msg.payload = {'icon':'fa-battery-half','Batterie':Texte_Batterie};\n \n// Batterie 1/4\nelse if(Batterie < 40 && Batterie >= 15)\n msg.payload = {'icon':'fa-battery-quarter','Batterie':Texte_Batterie};\n \n// Batterie faible\nelse if(Batterie < 15 && Batterie >= 0)\n msg.payload = {'icon':'fa-battery-empty','Batterie':Texte_Batterie};\n\n// Relié au secteur\nelse if(Batterie == -1)\n msg.payload = {'icon':'fa-plug','Batterie':'Appareil relié au secteur'};\n// Etat inconnu\nelse if(Batterie == -3)\n msg.payload = {'icon':'fa-spinner fa-pulse','Batterie':'Chargement...'};\n// Erreur\nelse\n msg.payload = {'icon':'battery_alert','Batterie':'Appareil Déconnecté'};\n //\n\nreturn msg;","outputs":1,"noerr":0,"x":752.566650390625,"y":1139.8497924804688,"wires":[["133aa860.59e3e8"]]},{"id":"38ea91e.d282f6e","type":"comment","z":"4b3afa8.fe95904","name":"Données de la BDD","info":"","x":120,"y":1532.75,"wires":[]},{"id":"11c5dda4.1c08c2","type":"comment","z":"4b3afa8.fe95904","name":"Affichage des résultats sur le Dashboard","info":"","x":693.0001220703125,"y":1526.833251953125,"wires":[]},{"id":"873f6373.d5e7f8","type":"ui_ui_control","z":"e884629f.ba039","name":"ui control","x":745.566650390625,"y":502.566650390625,"wires":[[]]},{"id":"1b16daab.db5f95","type":"function","z":"4b3afa8.fe95904","name":"Extraction TempAir","func":"var taille_bdd = msg.payload.total_rows;\nvar x = [];\nvar y = [];\nvar data =[];\n\n// Mise en forme\nfor ( i=0 ; i<taille_bdd-1 ; i++)\n{\n x[i] = msg.payload.rows[i].doc.TimeStamp * 1000;\n y[i] = msg.payload.rows[i].doc.TempAir;\n data[i] = \n {\n \"x\":x[i],\n \"y\":y[i]\n }\n}\n// Envoi\nmsg.payload = \n[{\n \"series\": [\"TempAir\"],\n \"data\": [data],\n \"labels\": [\"\"]\n}]\nreturn msg;","outputs":1,"noerr":0,"x":371.56669998168945,"y":1591.1333847045898,"wires":[["9cc07c91.f65ef"]]},{"id":"1566f1fe.f41336","type":"link in","z":"4b3afa8.fe95904","name":"BDD_Disponible","links":["22056624.f7e0fa"],"x":199.45001602172852,"y":1687.7333908081055,"wires":[["1b16daab.db5f95","b824f748.5a3988","76f8523c.ca6a0c","480b7d11.085df4","c764228b.21b2d","1fbe4b04.1e6e65"]]},{"id":"1f93f1fe.7f674e","type":"comment","z":"4b3afa8.fe95904","name":"BDD_Disponible","info":"","x":102.00002670288086,"y":1689.9833965301514,"wires":[]},{"id":"9cc07c91.f65ef","type":"ui_chart","z":"4b3afa8.fe95904","name":"[Courbe] Température de l'air (°C)","group":"b28aee5e.991a1","order":1,"width":0,"height":0,"label":"Température de l'air (°C)","chartType":"line","legend":"false","xformat":"DD/MM/YYYY HH:mm","interpolate":"linear","nodata":"Aucun relevé n'est disponible","dot":false,"ymin":"-100","ymax":"100","removeOlder":"1","removeOlderPoints":"1008","removeOlderUnit":"604800","cutout":0,"useOneColor":false,"colors":["#800000","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":676.7500801086426,"y":1590.749994277954,"wires":[[],[]]},{"id":"b824f748.5a3988","type":"function","z":"4b3afa8.fe95904","name":"Extraction HumidAir","func":"var taille_bdd = msg.payload.total_rows;\nvar x = [];\nvar y = [];\nvar data =[];\n\n// Mise en forme\nfor ( i=0 ; i<taille_bdd-1 ; i++)\n{\n x[i] = msg.payload.rows[i].doc.TimeStamp * 1000;\n y[i] = msg.payload.rows[i].doc.HumidAir;\n data[i] = \n {\n \"x\":x[i],\n \"y\":y[i]\n }\n}\n// Envoi\nmsg.payload = \n[{\n \"series\": [\"HumidAir\"],\n \"data\": [data],\n \"labels\": [\"\"]\n}]\nreturn msg;","outputs":1,"noerr":0,"x":380.0000190734863,"y":1640.9999866485596,"wires":[["bd897fb1.d8489"]]},{"id":"76f8523c.ca6a0c","type":"function","z":"4b3afa8.fe95904","name":"Extraction TempSol","func":"var taille_bdd = msg.payload.total_rows;\nvar x = [];\nvar y = [];\nvar data =[];\n\n// Mise en forme\nfor ( i=0 ; i<taille_bdd-1 ; i++)\n{\n x[i] = msg.payload.rows[i].doc.TimeStamp * 1000;\n y[i] = msg.payload.rows[i].doc.TempSol;\n data[i] = \n {\n \"x\":x[i],\n \"y\":y[i]\n }\n}\n// Envoi\nmsg.payload = \n[{\n \"series\": [\"TempSol\"],\n \"data\": [data],\n \"labels\": [\"\"]\n}]\nreturn msg;","outputs":1,"noerr":0,"x":370.0000190734863,"y":1690.666612625122,"wires":[["529209a.4dce2f8"]]},{"id":"529209a.4dce2f8","type":"ui_chart","z":"4b3afa8.fe95904","name":"[Courbe] Température du Sol (°C)","group":"47fe6170.22f0c","order":1,"width":0,"height":0,"label":"Température du Sol (°C)","chartType":"line","legend":"false","xformat":"DD/MM/YYYY HH:mm","interpolate":"linear","nodata":"Aucun relevé n'est disponible","dot":false,"ymin":"-40","ymax":"80","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"604800","cutout":0,"useOneColor":false,"colors":["#800000","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":675.023567199707,"y":1691.0389366149902,"wires":[[],[]]},{"id":"6b364b31.3e3e04","type":"ui_chart","z":"4b3afa8.fe95904","name":"[Courbe] Humidité du Sol (%)","group":"44a9939d.2ccfdc","order":1,"width":0,"height":0,"label":"Humidité du Sol (%)","chartType":"line","legend":"false","xformat":"DD/MM/YYYY HH:mm","interpolate":"linear","nodata":"Aucun relevé n'est disponible","dot":false,"ymin":"0","ymax":"130","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"604800","cutout":0,"useOneColor":false,"colors":["#0ac9c5","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":656.0236511230469,"y":1739.0389022827148,"wires":[[],[]]},{"id":"8f511675.2b2858","type":"ui_chart","z":"4b3afa8.fe95904","name":"[Courbe] Luminosité Ambiante (Lux)","group":"1ba1aadb.0ecfdd","order":1,"width":"0","height":"0","label":"Luminosité Ambiante (Lux)","chartType":"line","legend":"false","xformat":"DD/MM/YYYY HH:mm","interpolate":"linear","nodata":"Aucun relevé n'est disponible","dot":false,"ymin":"0","ymax":"40000","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"604800","cutout":0,"useOneColor":false,"colors":["#fbbd04","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":682.0237426757812,"y":1787.039068222046,"wires":[[],[]]},{"id":"bd897fb1.d8489","type":"ui_chart","z":"4b3afa8.fe95904","name":"[Courbe] Humidité de l'air (%)","group":"20826e8c.c2fbc2","order":1,"width":0,"height":0,"label":"Humidité de l'air (%)","chartType":"line","legend":"false","xformat":"DD/MM/YYYY HH:mm","interpolate":"linear","nodata":"Aucun relevé n'est disponible","dot":false,"ymin":"0","ymax":"130","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"604800","cutout":0,"useOneColor":false,"colors":["#0ac9c5","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":665.0234985351562,"y":1639.0389404296875,"wires":[[],[]]},{"id":"480b7d11.085df4","type":"function","z":"4b3afa8.fe95904","name":"Extraction HumidSol","func":"var taille_bdd = msg.payload.total_rows;\nvar x = [];\nvar y = [];\nvar data =[];\n\n// Mise en forme\nfor ( i=0 ; i<taille_bdd-1 ; i++)\n{\n x[i] = msg.payload.rows[i].doc.TimeStamp * 1000;\n y[i] = msg.payload.rows[i].doc.HumidSol;\n data[i] = \n {\n \"x\":x[i],\n \"y\":y[i]\n }\n}\n// Envoi\nmsg.payload = \n[{\n \"series\": [\"HumidSol\"],\n \"data\": [data],\n \"labels\": [\"\"]\n}]\nreturn msg;","outputs":1,"noerr":0,"x":381.0000419616699,"y":1739.3333358764648,"wires":[["6b364b31.3e3e04"]]},{"id":"c764228b.21b2d","type":"function","z":"4b3afa8.fe95904","name":"Extraction Lumiere","func":"var taille_bdd = msg.payload.total_rows;\nvar x = [];\nvar y = [];\nvar data =[];\n\n// Mise en forme\nfor ( i=0 ; i<taille_bdd-1 ; i++)\n{\n x[i] = msg.payload.rows[i].doc.TimeStamp * 1000;\n y[i] = msg.payload.rows[i].doc.Lumiere;\n data[i] = \n {\n \"x\":x[i],\n \"y\":y[i]\n }\n}\n// Envoi\nmsg.payload = \n[{\n \"series\": [\"Lumiere\"],\n \"data\": [data],\n \"labels\": [\"\"]\n}]\nreturn msg;","outputs":1,"noerr":0,"x":371.0000419616699,"y":1786.3333358764648,"wires":[["8f511675.2b2858"]]},{"id":"1fbe4b04.1e6e65","type":"function","z":"4b3afa8.fe95904","name":"[TEST] Couleurs","func":"\nvar taille_bdd = msg.payload.total_rows;\nvar x = [];\nvar y = [];\nvar dataR =[];\nvar dataG =[];\nvar dataB =[];\nvar dataC =[];\n\n// Mise en forme\nfor ( i=0 ; i<taille_bdd-1 ; i++)\n{\n x[i] = msg.payload.rows[i].doc.TimeStamp * 1000;\n \n y[i] = msg.payload.rows[i].doc.Red;\n dataR[i] = \n {\n \"x\":x[i],\n \"y\":y[i]\n }\n y[i] = msg.payload.rows[i].doc.Green;\n dataG[i] = \n {\n \"x\":x[i],\n \"y\":y[i]\n }\n\n y[i] = msg.payload.rows[i].doc.Blue;\n dataB[i] = \n {\n \"x\":x[i],\n \"y\":y[i]\n }\n y[i] = msg.payload.rows[i].doc.Clear;\n dataC[i] = \n {\n \"x\":x[i],\n \"y\":y[i]\n }\n}\n// Envoi\nmsg.payload = \n[{\n \"series\": [\"Rouge\",\"Vert\",\"Bleu\",\"Ambiant\"],\n \"data\": [dataR,dataG,dataB,dataC],\n \"labels\": [\"Rouge\",\"Vert\",\"Bleu\",\"Ambiant\"]\n}]\nreturn msg;","outputs":"1","noerr":0,"x":370.00009536743164,"y":1838.0002117156982,"wires":[["be32c941.d61d98"]]},{"id":"be32c941.d61d98","type":"ui_chart","z":"4b3afa8.fe95904","name":"[TEST] Courbes de couleur","group":"3d1a6b05.6bd064","order":1,"width":"20","height":"16","label":"Evolution des spectres de couleur au cours du temps","chartType":"line","legend":"true","xformat":"DD/MM/YYYY HH:mm","interpolate":"linear","nodata":"Aucune(s) donnée(s) enregistrée(s) !","dot":false,"ymin":"0","ymax":"255","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"604800","cutout":0,"useOneColor":false,"colors":["#ff0000","#00ff00","#0000ff","#ffffff","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":651.6168327331543,"y":1841.0002126693726,"wires":[[],[]]},{"id":"4984aa09.641ae4","type":"function","z":"4b3afa8.fe95904","name":"Extraction Clear","func":"var Clear;\n// Extraction du message\nmsg.payload = msg.payload.Clear;\nClear = msg.payload.Clear;\n// Sauvegarde dans une variable globale\nglobal.set('Clear',Clear);\n\nreturn msg;","outputs":1,"noerr":0,"x":475.0001449584961,"y":1245.6666231155396,"wires":[["522335d8.ee019c"]]},{"id":"ca72fd73.be875","type":"function","z":"4b3afa8.fe95904","name":"Extraction Red","func":"var Red;\n// Extraction du message\nmsg.payload = msg.payload.Red;\nRed = msg.payload.Red;\n// Sauvegarde dans une variable globale\nglobal.set('Red',Red);\n\nreturn msg;","outputs":1,"noerr":0,"x":478.0001907348633,"y":1285.666784286499,"wires":[["7882b53c.16621c"]]},{"id":"8287cdfe.cd9e3","type":"function","z":"4b3afa8.fe95904","name":"Extraction Green","func":"var Green;\n// Extraction du message\nmsg.payload = msg.payload.Green;\nGreen = msg.payload.Green;\n// Sauvegarde dans une variable globale\nglobal.set('Green',Green);\n\nreturn msg;","outputs":1,"noerr":0,"x":470.0001983642578,"y":1331.6668710708618,"wires":[["db813489.3a9458"]]},{"id":"5e807283.010f2c","type":"function","z":"4b3afa8.fe95904","name":"Extraction Blue","func":"var Blue;\n// Extraction du message\nmsg.payload = msg.payload.Blue;\nBlue = msg.payload.Blue;\n// Sauvegarde dans une variable globale\nglobal.set('Blue',Blue);\n\nreturn msg;","outputs":1,"noerr":0,"x":482.00024032592773,"y":1376.6669082641602,"wires":[["5e2d5bf0.96d284"]]},{"id":"7882b53c.16621c","type":"ui_gauge","z":"4b3afa8.fe95904","name":"Jauge Rouge","group":"80d54e5.43a4f3","order":2,"width":"4","height":"4","gtype":"gage","title":"Rouge","label":"","format":"{{value}}","min":0,"max":"255","colors":["#ff0000","#ff0000","#ff0000"],"seg1":"","seg2":"","x":719.6168518066406,"y":1286.1667776107788,"wires":[]},{"id":"db813489.3a9458","type":"ui_gauge","z":"4b3afa8.fe95904","name":"Jauge Vert","group":"80d54e5.43a4f3","order":3,"width":"4","height":"4","gtype":"gage","title":"Vert","label":"","format":"{{value}}","min":0,"max":"255","colors":["#00ff00","#00ff00","#00ff00"],"seg1":"","seg2":"","x":717.0001640319824,"y":1331.6665954589844,"wires":[]},{"id":"5e2d5bf0.96d284","type":"ui_gauge","z":"4b3afa8.fe95904","name":"Jauge Bleu","group":"80d54e5.43a4f3","order":4,"width":"4","height":"4","gtype":"gage","title":"Bleu","label":"","format":"{{value}}","min":0,"max":"255","colors":["#0000ff","#0000ff","#0000ff"],"seg1":"","seg2":"","x":717.0002021789551,"y":1375.6667098999023,"wires":[]},{"id":"522335d8.ee019c","type":"ui_gauge","z":"4b3afa8.fe95904","name":"Jauge Ambiant","group":"80d54e5.43a4f3","order":5,"width":"4","height":"4","gtype":"gage","title":"Ambiant","label":"","format":"{{value}}","min":0,"max":"255","colors":["#ffffff","#ffffff","#ffffff"],"seg1":"","seg2":"","x":728.0001525878906,"y":1243.666696548462,"wires":[]},{"id":"d7ed934a.5e919","type":"link in","z":"4b3afa8.fe95904","name":"Refresh_Donnees","links":["ef043df.9640a4","ff56f4e6.b7ed58"],"x":303.3666687011719,"y":347.5,"wires":[["8a5da499.212cb"]]},{"id":"3f2e9962.5df5de","type":"comment","z":"4b3afa8.fe95904","name":"Actualisation des données","info":"","x":167.36666870117188,"y":345,"wires":[]},{"id":"8b88132b.7acfc","type":"ui_button","z":"4b3afa8.fe95904","name":"Refresh TempSol","group":"47fe6170.22f0c","order":3,"width":0,"height":0,"passthru":false,"label":"Actualiser les données","color":"","bgcolor":"","icon":"fa-refresh ","payload":"idSigfox_Select","payloadType":"global","topic":"","x":136,"y":2063.75,"wires":[["ff56f4e6.b7ed58"]]},{"id":"ec820b9e.8e3338","type":"ui_button","z":"4b3afa8.fe95904","name":"Refresh HumidSol","group":"44a9939d.2ccfdc","order":3,"width":0,"height":0,"passthru":false,"label":"Actualiser les données","color":"","bgcolor":"","icon":"fa-refresh ","payload":"idSigfox_Select","payloadType":"global","topic":"","x":130,"y":2102.75,"wires":[["ff56f4e6.b7ed58"]]},{"id":"b865d74f.f66eb8","type":"ui_button","z":"4b3afa8.fe95904","name":"Refresh TempAir","group":"b28aee5e.991a1","order":3,"width":0,"height":0,"passthru":false,"label":"Actualiser les données","color":"","bgcolor":"","icon":"fa-refresh ","payload":"idSigfox_Select","payloadType":"global","topic":"","x":139,"y":2146.75,"wires":[["ff56f4e6.b7ed58"]]},{"id":"7d5d0008.dfbf3","type":"ui_button","z":"4b3afa8.fe95904","name":"Refresh HumidAir","group":"20826e8c.c2fbc2","order":3,"width":0,"height":0,"passthru":false,"label":"Actualiser les données","color":"","bgcolor":"","icon":"fa-refresh ","payload":"idSigfox_Select","payloadType":"global","topic":"","x":127,"y":2193.75,"wires":[["ff56f4e6.b7ed58"]]},{"id":"1caedd0b.2e8f1b","type":"ui_button","z":"4b3afa8.fe95904","name":"Refresh Lumiere","group":"1ba1aadb.0ecfdd","order":3,"width":0,"height":0,"passthru":false,"label":"Actualiser les données","color":"","bgcolor":"","icon":"fa-refresh ","payload":"idSigfox_Select","payloadType":"global","topic":"","x":135,"y":2238.75,"wires":[["ff56f4e6.b7ed58"]]},{"id":"94f098e0.d05ff","type":"ui_button","z":"4b3afa8.fe95904","name":"Refresh RGB","group":"3d1a6b05.6bd064","order":2,"width":0,"height":0,"passthru":false,"label":"Actualiser les données","color":"","bgcolor":"","icon":"fa-refresh ","payload":"idSigfox_Select","payloadType":"global","topic":"","x":141,"y":2281.75,"wires":[["ff56f4e6.b7ed58"]]},{"id":"ff56f4e6.b7ed58","type":"link out","z":"4b3afa8.fe95904","name":"Refresh_Donnees","links":["d7ed934a.5e919"],"x":335.36669921875,"y":2172.75,"wires":[]},{"id":"f9aae68b.ad9f18","type":"comment","z":"4b3afa8.fe95904","name":"Boutons pour actualiser les données ","info":"","x":188.36666870117188,"y":2018,"wires":[]},{"id":"8a5da499.212cb","type":"delay","z":"4b3afa8.fe95904","name":"","pauseType":"rate","timeout":"5","timeoutUnits":"seconds","rate":"2","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"x":442.75,"y":379.75,"wires":[["95a04b8c.5b7648"]]},{"id":"c67c7de0.d21d28","type":"comment","z":"4b3afa8.fe95904","name":"Extraction des données intéressantes","info":"","x":512.75,"y":823.75,"wires":[]},{"id":"d7151b99.d5a5e","type":"comment","z":"4b3afa8.fe95904","name":"Affichage sur le dashboard","info":"","x":788.75,"y":822.75,"wires":[]},{"id":"a646e3ef.c0d55","type":"comment","z":"4b3afa8.fe95904","name":"Extraction des données intéressantes","info":"","x":384.75,"y":1531.75,"wires":[]},{"id":"fb4f5dea.61f5b8","type":"comment","z":"4b3afa8.fe95904","name":"Affichage du n° de Série sur chaque onglet ","info":"","x":700.75,"y":2013.75,"wires":[]},{"id":"25ecef59.d5a5d8","type":"inject","z":"4b3afa8.fe95904","name":"Injection idSigfox_Select","topic":"","payload":"idSigfox_Select","payloadType":"global","repeat":"1","crontab":"","once":true,"x":579.449951171875,"y":2174.716796875,"wires":[["915ff923.ab5db","919fa6af.103318","2d1797db.14efd8","22266569.8ceec2","e2c91e84.2c6f08","f483abc6.5c569"]]},{"id":"915ff923.ab5db","type":"ui_text","z":"4b3afa8.fe95904","group":"47fe6170.22f0c","order":2,"width":0,"height":0,"name":"Affichage onglet TempSol","label":"Appareil : ","format":"{{msg.payload}}","layout":"row-center","x":893.449951171875,"y":2067.6666259765625,"wires":[]},{"id":"919fa6af.103318","type":"ui_text","z":"4b3afa8.fe95904","group":"44a9939d.2ccfdc","order":2,"width":0,"height":0,"name":"Affichage onglet HumidSol","label":"Appareil : ","format":"{{msg.payload}}","layout":"row-center","x":891.566650390625,"y":2109.7666015625,"wires":[]},{"id":"2d1797db.14efd8","type":"ui_text","z":"4b3afa8.fe95904","group":"b28aee5e.991a1","order":2,"width":0,"height":0,"name":"Affichage onglet TempAir","label":"Appareil : ","format":"{{msg.payload}}","layout":"row-center","x":891.566650390625,"y":2155.7666015625,"wires":[]},{"id":"22266569.8ceec2","type":"ui_text","z":"4b3afa8.fe95904","group":"20826e8c.c2fbc2","order":2,"width":0,"height":0,"name":"Affichage onglet HumidAir","label":"Appareil : ","format":"{{msg.payload}}","layout":"row-center","x":890.566650390625,"y":2199.7666015625,"wires":[]},{"id":"e2c91e84.2c6f08","type":"ui_text","z":"4b3afa8.fe95904","group":"1ba1aadb.0ecfdd","order":2,"width":0,"height":0,"name":"Affichage onglet Lumiere","label":"Appareil : ","format":"{{msg.payload}}","layout":"row-center","x":890.566650390625,"y":2249.7666015625,"wires":[]},{"id":"f483abc6.5c569","type":"ui_text","z":"4b3afa8.fe95904","group":"80d54e5.43a4f3","order":1,"width":0,"height":0,"name":"Affichage onglet RGB","label":"Appareil : ","format":"{{msg.payload}}","layout":"row-center","x":883.566650390625,"y":2294.7666015625,"wires":[]},{"id":"4765fdcd.1d23fc","type":"ui_toast","z":"e884629f.ba039","position":"dialog","displayTime":"3","highlight":"","outputs":1,"ok":"OK","cancel":"","topic":"","name":"Notification ","x":1681.316650390625,"y":1875,"wires":[[]]},{"id":"d472238a.b9c12","type":"function","z":"e884629f.ba039","name":"message a notifier","func":"msg.payload = \"Vous ne faites désormais plus partie des abonnés PlantSigfox\"\nreturn msg;","outputs":1,"noerr":0,"x":1491.316650390625,"y":1876.449951171875,"wires":[["4765fdcd.1d23fc"]]},{"id":"83e27f01.e7e748","type":"function","z":"e884629f.ba039","name":"mise en forme du mail","func":"\n\n// Mise en forme des éléments utiles\nvar liste_diffusion= msg.payload.mail;\n\n// Composition du mail\nlet message = \n {\n // Destinataire(s)\n to: liste_diffusion,\n //cc : liste_diffusion;\n \n // Sujet\n subject: 'Désabonnement PlantSigfox',\n\n // corps du message (sous format html)\n html:\n '<p>Bonjour,</p>'+\n '<p>Vous venez de vous désabonner de PlantSigfox. N\\'hésitez pas à nous renvoyer votre expérience utilisateur en réponse à ce mail.</p>'+\n '<p>A bientôt sur <a href =\"https://plantsigfox.eu-gb.mybluemix.net/ui\" >PlantSigfox !</a></p>'+\n '<p> </p>'+\n '<p><b>PlantSigfox</b></p>'+\n '<p>Développé par Jeanne Baumier, Anaïs Auberval et Thomas Broussard</p>'+\n '<p>Etudiants en ei2i-4 à Polytech Paris UPMC</p>',\n };\n \n// Creation du msg\nmsg.to = message.to;\n//msg.cc = message.cc;\nmsg.topic = message.subject;\nmsg.payload = message.html;\n\nreturn msg;\n","outputs":1,"noerr":0,"x":1499.566650390625,"y":1930.9500732421875,"wires":[["f5ddd070.aa42b"]]},{"id":"f5ddd070.aa42b","type":"e-mail","z":"e884629f.ba039","server":"smtp.gmail.com","port":"465","secure":true,"name":"","dname":"Envoi d'un mail depuis plantsigfox@gmail.com","x":1858.5667724609375,"y":1930.6165161132812,"wires":[]},{"id":"f218aa39.ff8d78","type":"comment","z":"e884629f.ba039","name":"Se désinscrire de l'abonnement par mail","info":"","x":168,"y":1785.7333984375,"wires":[]},{"id":"c3cdcd84.6a194","type":"comment","z":"e884629f.ba039","name":"Récupération de la liste de diffusion","info":"","x":501.566650390625,"y":1784.7333984375,"wires":[]},{"id":"30965cb2.6dd4ac","type":"comment","z":"e884629f.ba039","name":"Recherche de l'adresse mail a effacer","info":"","x":955.566650390625,"y":1784.7333984375,"wires":[]},{"id":"aa063bf6.6363","type":"comment","z":"e884629f.ba039","name":"supression de l'adresse mail","info":"","x":1250.566650390625,"y":1784.7333984375,"wires":[]},{"id":"4b5c24cd.be1d94","type":"comment","z":"e884629f.ba039","name":"Notification + mail d'alerte","info":"","x":1501.566650390625,"y":1781.7333984375,"wires":[]},{"id":"ce41daae.d84cb","type":"ui_text","z":"e884629f.ba039","group":"deaad5b9.8dbf98","order":3,"width":"12","height":"1","name":"Vous souhaitez vous désinscrire ? ","label":"Vous souhaitez vous désinscrire ? ","format":"","layout":"row-spread","x":161.75,"y":1846.7333984375,"wires":[]},{"id":"1c011873.b774a8","type":"ui_text_input","z":"e884629f.ba039","name":"Désabonnement aux mails","label":"Saisissez votre adresse mail","group":"deaad5b9.8dbf98","order":4,"width":"12","height":"1","passthru":false,"mode":"email","delay":"0","topic":"","x":236.5499725341797,"y":1905.416748046875,"wires":[["19cb5b71.d9d0c5","8dee86ed.b64b98"]]},{"id":"c433f7e0.120878","type":"inject","z":"e884629f.ba039","name":"vide","topic":"","payload":"","payloadType":"str","repeat":"1","crontab":"","once":true,"x":55,"y":1903.6834716796875,"wires":[["1c011873.b774a8"]]},{"id":"eed12ec8.ba907","type":"function","z":"e884629f.ba039","name":"Mise en forme de la recherche","func":"// Définition des variables\nvar mail_a_effacer = msg.payload[0].payload;\nvar mail_a_comparer;\nvar id_a_effacer ;\nvar rev_a_effacer ;\n\nvar taille_liste = msg.payload[1].payload.total_rows;\n\n// Traitement des données\nfor (i = 0; i < taille_liste; i++)\n{\n mail_a_comparer = msg.payload[1].payload.rows[i].doc.mail;\n if (mail_a_effacer === mail_a_comparer)\n {\n id_a_effacer = msg.payload[1].payload.rows[i].doc._id;\n rev_a_effacer = msg.payload[1].payload.rows[i].doc._rev;\n }\n \n}\n\n// Envoi du résultat\nif (id_a_effacer && rev_a_effacer)\n{\n msg.payload = \n {\n 'mail': mail_a_effacer,\n '_id' : id_a_effacer,\n '_rev': rev_a_effacer\n }\n \n return msg;\n}","outputs":1,"noerr":0,"x":954.566650390625,"y":1904.7333984375,"wires":[["1d1a35f9.6ae4aa","d472238a.b9c12","83e27f01.e7e748"]]},{"id":"19cb5b71.d9d0c5","type":"http request","z":"e884629f.ba039","name":"Récup liste de diffusion","method":"GET","ret":"obj","url":"https://59a95fc8-13b3-464b-9a55-34cf8778d210-bluemix.cloudant.com/releves_sigfox/_design/Parametrage/_view/Liste_Diffusion?include_docs=true","tls":"","x":511.566650390625,"y":1842.7333984375,"wires":[["8dee86ed.b64b98"]]},{"id":"8dee86ed.b64b98","type":"merge","z":"e884629f.ba039","name":"","timeout":"2","x":735.566650390625,"y":1904.7333984375,"wires":[["eed12ec8.ba907"]]},{"id":"1d1a35f9.6ae4aa","type":"cloudant out","z":"e884629f.ba039","name":"Suppression dans la BDD","cloudant":"","database":"releves_sigfox","service":"plantsigfox-cloudantNoSQLDB","payonly":false,"operation":"delete","x":1240.75,"y":1842.3167114257812,"wires":[]},{"id":"a3fa4fd4.3b8f4","type":"inject","z":"24cf228e.11172e","name":"","topic":"","payload":"1B3247","payloadType":"str","repeat":"","crontab":"","once":false,"x":92.0234375,"y":416.039119720459,"wires":[["a6befae6.b9263"]]},{"id":"60d486df.0acb08","type":"http request","z":"eb67ad82.ee5b1","name":"Prévisions 5 jours (OpenWeatherMap)","method":"GET","ret":"obj","url":"","tls":"","x":843.2892456054688,"y":385.02356719970703,"wires":[["b19704ba.c707c8","a19dabbf.a7cbd8"]]},{"id":"b19704ba.c707c8","type":"debug","z":"eb67ad82.ee5b1","name":"Debug_OpenWeather","active":true,"console":"false","complete":"true","x":1133.2736625671387,"y":385.18756675720215,"wires":[]},{"id":"a72a4042.75416","type":"change","z":"eb67ad82.ee5b1","name":"payload -> url","rules":[{"t":"move","p":"payload","pt":"msg","to":"url","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":571.0233688354492,"y":385.77234649658203,"wires":[["60d486df.0acb08"]]},{"id":"6693a03f.eef38","type":"ui_template","z":"eb67ad82.ee5b1","group":"f9fce91f.4c8dc","name":"Tableau Météo (Test)","order":0,"width":"10","height":"12","format":"<table align =\"center\">\n <tr >\n <th > Date</th>\n <td >{{msg.payload.J2_Date}}</td>\n <td >{{msg.payload.J3_Date}}</td>\n <td >{{msg.payload.J4_Date}}</td>\n <td >{{msg.payload.J5_Date}}</td>\n </tr>\n <tr >\n <th > Meteo</th>\n <td >\n <img src={{msg.payload.J2_Icone}} width=\"50\" height=\"50\" class=\"image_meteo\" alt=\"Image Meteo 00\" />\n </td>\n <td >\n <img src={{msg.payload.J3_Icone}} width=\"50\" height=\"50\" class=\"image_meteo\" alt=\"Image Meteo 00\" />\n </td>\n <td >\n <img src={{msg.payload.J4_Icone}} width=\"50\" height=\"50\" class=\"image_meteo\" alt=\"Image Meteo 00\" />\n </td>\n <td >\n <img src={{msg.payload.J5_Icone}} width=\"50\" height=\"50\" class=\"image_meteo\" alt=\"Image Meteo 00\" />\n </td>\n \n </tr>\n <tr>\n <th> Temp</th>\n <td class = \"temp_max\"> {{msg.payload.J2_Max}}°C</td>\n <td class = \"temp_max\"> {{msg.payload.J3_Max}}°C</td>\n <td class = \"temp_max\"> {{msg.payload.J4_Max}}°C</td>\n <td class = \"temp_max\"> {{msg.payload.J5_Max}}°C</td>\n </tr>\n</table>\n\n<style>\n\ntable, td , th\n{\n border: 5px solid white;\n border-collapse: collapse;\n padding: 5px;\n}\n\ntd,th \n{\n text-align: center; \n}\n.temp_max , .temp_min\n{\n font-size: 30px;\n}\n\n\n</style>","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":630.75,"y":565,"wires":[[]]},{"id":"42097fbb.3a69","type":"function","z":"eb67ad82.ee5b1","name":"Test_tableau_prevision","func":"var currentDate =[] ;\nvar day;\nvar month ;\nvar year;\n\n// tableau récupérant les résultats\nvar Tmax = [];\nvar Tmin = [];\n\nvar Code_Icone;\nvar Icone= []; \n\nvar Titre = [];\nvar Jour_Date = [];\n\nvar j = 0;\n\n// Traitement des données\n for (i=1;i<=5;i++)\n {\n // Récupération des prévisions\n Tmax[i] = msg.payload.list[j].main.temp_max;\n Tmin[i] = msg.payload.list[j].main.temp_min;\n Code_Icone = msg.payload.list[j].weather[0].icon;\n Icone[i] = \"http://openweathermap.org/img/w/\"+ Code_Icone +\".png\"\n\n // Récupération des dates\n currentDate[i] = new Date(new Date().getTime() + (i-1)*24 * 60 * 60 * 1000);\n day = currentDate[i].getDate();\n month = currentDate[i].getMonth() + 1;\n year = currentDate[i].getFullYear();\n Jour_Date[i] = day + \"/\" + month + \"/\" + year;\n \n j+=8;\n }\n // Mise en forme des messages\n msg.payload=\n {\n 'J1_Date': Jour_Date[1],\n 'J1_Max': Tmax[1],\n 'J1_Min': Tmin[1],\n 'J1_Icone' :Icone[1],\n \n 'J2_Date': Jour_Date[2],\n 'J2_Max': Tmax[2],\n 'J2_Min': Tmin[2],\n 'J2_Icone' :Icone[2],\n \n 'J3_Date': Jour_Date[3],\n 'J3_Max': Tmax[3],\n 'J3_Min': Tmin[3],\n 'J3_Icone' :Icone[3],\n \n 'J4_Date': Jour_Date[4],\n 'J4_Max': Tmax[4],\n 'J4_Min': Tmin[4],\n 'J4_Icone' :Icone[4],\n \n 'J5_Date': Jour_Date[5],\n 'J5_Max': Tmax[5],\n 'J5_Min': Tmin[5],\n 'J5_Icone' :Icone[5]\n };\n return msg;\n\n\n// Envoi du tableau de messages\n","outputs":"1","noerr":0,"x":357.916748046875,"y":565.4000244140625,"wires":[["6693a03f.eef38"]]},{"id":"8c25e99f.f2a068","type":"link in","z":"eb67ad82.ee5b1","name":"Prevision_Meteo","links":["a19dabbf.a7cbd8"],"x":179.78905868530273,"y":565,"wires":[["42097fbb.3a69"]]},{"id":"e1da9ab6.be8238","type":"comment","z":"eb67ad82.ee5b1","name":"Prevision_Meteo","info":"","x":85,"y":565.2734031677246,"wires":[]},{"id":"e18a98f0.90ad98","type":"comment","z":"eb67ad82.ee5b1","name":"TEST : tableau de prévisions météo","info":"","x":145,"y":513,"wires":[]},{"id":"18cd0364.a69d7d","type":"function","z":"a9be358b.b57d98","name":"Résumé météo en fonction du jour choisi","func":"var Jour_Choisi;\nvar Resume = [];\nvar Icon =[] ;\n\n// Récupération des prévision\nif (msg.topic !== 'Resume Meteo')\n{\n for (i=1;i<=10;i++)\n {\n // Récupération et stockage des prévisions\n Resume[i] = msg.forecasts[i].narrative;\n Icon[i] = msg.forecasts[i].day.icon_code;\n global.set('Prevision_Resume'+i,Resume[i]);\n global.set ('Icon'+i,Icon[i]);\n }\n}\n\n// Choix de la prévision à afficher\nmsg.payload=\n{\n 'jour': global.get('Resume_Meteo'),\n 'resume': global.get('Prevision_Resume'+global.get('Resume_Meteo')),\n 'icon': global.get('Icon')\n};\n\nreturn msg;\n\n\n\n","outputs":"1","noerr":0,"x":757.0001678466797,"y":1287.0390625,"wires":[["89fe8466.6bfd78","21f4ac23.e578b4","9be58ee0.5f5b3"]]},{"id":"c4a95311.f8dd3","type":"function","z":"a9be358b.b57d98","name":"Sauvegarde dans une variable globale","func":"global.set('Resume_Meteo',msg.payload);\n\nreturn msg;\n","outputs":1,"noerr":0,"x":412.00001525878906,"y":1262.0388813018799,"wires":[["18cd0364.a69d7d"]]},{"id":"21f4ac23.e578b4","type":"debug","z":"a9be358b.b57d98","name":"Debug Résumé","active":true,"console":"false","complete":"true","x":1070.0001525878906,"y":1347.0390129089355,"wires":[]},{"id":"c94f824.d1c248","type":"comment","z":"a9be358b.b57d98","name":"Affichage d'un résumé météo pour chaque jour ","info":"","x":185,"y":1193.0777053833008,"wires":[]},{"id":"bffbdbb.98cb628","type":"comment","z":"a9be358b.b57d98","name":"Prevision_Meteo","info":"","x":448.0000534057617,"y":1315.5778846740723,"wires":[]},{"id":"c658f88a.32fb28","type":"link in","z":"a9be358b.b57d98","name":"Prevision_Meteo","links":["a19dabbf.a7cbd8"],"x":542.5235147476196,"y":1314.5779457092285,"wires":[["18cd0364.a69d7d"]]},{"id":"7e29d382.f3d63c","type":"ui_numeric","z":"a9be358b.b57d98","name":"Choix du jour à consulter","label":"","group":"f9fce91f.4c8dc","order":4,"width":"5","height":"1","passthru":false,"topic":"Resume Meteo","format":"Consulter le Jour {{value}}","min":"1","max":10,"step":1,"x":131,"y":1263.0390071868896,"wires":[["c4a95311.f8dd3"]]},{"id":"89fe8466.6bfd78","type":"ui_text","z":"a9be358b.b57d98","group":"f9fce91f.4c8dc","order":6,"width":"9","height":"2","name":"Affichage Résumé Météo ","label":"Résumé Météo pour le jour {{msg.payload.jour}} : ","format":"{{msg.payload.resume}}","layout":"col-center","x":1098.0001411437988,"y":1286.0389680862427,"wires":[]},{"id":"9be58ee0.5f5b3","type":"link out","z":"a9be358b.b57d98","name":"Icon","links":["cd67b13a.3cc67"],"x":1025,"y":1192.038652420044,"wires":[]},{"id":"ea1abc2b.f3267","type":"comment","z":"a9be358b.b57d98","name":"Icon","info":"","x":1100,"y":1192.038652420044,"wires":[]},{"id":"14a4458c.0ff3fa","type":"comment","z":"a9be358b.b57d98","name":"Affichage des icones météo selon la prévision reçue","info":"","x":215,"y":1418.405351638794,"wires":[]},{"id":"cd67b13a.3cc67","type":"link in","z":"a9be358b.b57d98","name":"Prevision_Meteo","links":["9be58ee0.5f5b3"],"x":207.78907775878906,"y":1492.4053859710693,"wires":[["1b50a16e.e3874f"]]},{"id":"3bf54ce5.567c94","type":"comment","z":"a9be358b.b57d98","name":"Icon","info":"","x":140,"y":1492.038652420044,"wires":[]},{"id":"a354ce89.3d9c","type":"ui_template","z":"a9be358b.b57d98","group":"f9fce91f.4c8dc","name":"Icône météo","order":8,"width":"3","height":"3","format":"<div>\n<img src= \"http://openweathermap.org/img/w/{{msg.payload.code}}d.png\" width=\"50\" height=\"50\" class=\"image_meteo\" />\n</div>\n<!-- https://img4.hostingpics.net/thumbs/mini_{{msg.payload}}.png\"-->\n","storeOutMessages":true,"fwdInMessages":true,"templateScope":"local","x":707.5666961669922,"y":1491.4056701660156,"wires":[[]]},{"id":"1b50a16e.e3874f","type":"function","z":"a9be358b.b57d98","name":"Choix de l'icône selon le code reçu","func":"icon_code = msg.payload.icon ;//msg.forecasts[2].day.icon_code ;\n//msg.payload=\"http://openweathermap.org/img/w/10d.png\";\nvar code = \"\";\n/*\nswitch (icon_code) {\n case (\"00\" || \"01\" || \"02\" || \"19\" || \"20\" || \"21\" || \"22\") :\n code = \"50\";\n break;\n case (\"03\" || \"04\") : \n code =\"11\" ; \n break ;\n case (\"05\" || \"06\" || \"07\" || \"13\" || \"14\" || \"15\" || \"16\" || \"25\" || \"46\" || \"41\" || \"42\" || \"43\") :\n code = \"13\" ;\n break;\n case (\"08\" || \"09\" || \"10\" || \"12\" || \"17\" || \"18\" || \"35\" || \"39\" || \"40\") : \n code = \"09\";\n break;\n case (\"37\" ||\"38\") :\n code = \"10\";\n break;\n case (\"23\" || \"24\" || \"26\") :\n code = \"03\" ;\n break ;\n case (\"28\" ||\"30\"):\n code = \"02\";\n break;\n case (\"27\" || \"29\" || \"33\") :\n code = \"02\";\n break;\n case (\"31\" || \"34\") :\n code = \"01\" ;\n break;\n case (\"32\" || \"36\"):\n code = \"01\";\n break;\n case (\"45\") : \n code = \"10\";\n break;\n case (\"47\"):\n code = \"10\";\n break;\n default : \n code = \"13\";\n break;\n}\n\n//code = \"9247906200\" ;\n*/\nmsg.payload = {\n 'code' : icon_code,\n 'codeDebug' : icon_code \n};\n\nreturn msg;","outputs":"1","noerr":0,"x":418.566650390625,"y":1492.405351638794,"wires":[["a354ce89.3d9c","ef722e90.9f3a6"]]},{"id":"ef722e90.9f3a6","type":"debug","z":"a9be358b.b57d98","name":"Debug Switch","active":true,"console":"false","complete":"true","x":702.0666961669922,"y":1535.4056701660156,"wires":[]},{"id":"877ffa53.86f0a8","type":"debug","z":"a9be358b.b57d98","name":"Debug Prevision MAX","active":false,"console":"false","complete":"true","x":770.0000610351562,"y":947.0387258529663,"wires":[]},{"id":"2cae9eb9.c04432","type":"function","z":"a9be358b.b57d98","name":"Prévisions des températures MAX","func":"// Déclaration d'un tableau de messages\nvar outputMsgs = [];\n\n// tableau récupérant les résultats\nvar Temperature = [];\nvar Titre = [];\nvar j = 0;\n\n// Traitement des données\nfor (i=0;i<5;i++)\n{\n // Récupération des prévisions\n Temperature[i] = msg.payload.list[j].main.temp_max;\n Titre[i] = 'Jour '+i;\n \n // Mise en forme des messages\n outputMsgs.push({topic:Titre[i],payload:Temperature[i]});\n j+=8;\n}\n\n// Envoi du tableau de messages\nreturn [ outputMsgs ];","outputs":"1","noerr":0,"x":430.91448974609375,"y":904.1563892364502,"wires":[["877ffa53.86f0a8","947318e8.726a38"]]},{"id":"d41612bd.e0fbf","type":"function","z":"a9be358b.b57d98","name":"Prévisions des températures MIN","func":"// Déclaration d'un tableau de messages\nvar outputMsgs = [];\n\n// tableau récupérant les résultats\nvar Temperature = [];\nvar Titre = [];\nvar j = 0;\n// Traitement des données\nfor (i=0;i<=4;i++)\n{\n // Récupération des prévisions\n Temperature[i] = msg.payload.list[j].main.temp_min;\n Titre[i] = 'Jour '+i;\n \n // Mise en forme des messages\n outputMsgs.push({topic:Titre[i],payload:Temperature[i]});\n j+=8;\n}\n\n// Envoi du tableau de messages\nreturn [ outputMsgs ];","outputs":"1","noerr":0,"x":434.8033905029297,"y":1016.0452299118042,"wires":[["9cd85570.83be98","34fd5b2d.8e5f64"]]},{"id":"34fd5b2d.8e5f64","type":"debug","z":"a9be358b.b57d98","name":"Debug Prevision MIN","active":false,"console":"false","complete":"true","x":776.8033676147461,"y":1069.0452041625977,"wires":[]},{"id":"1fafbb85.b68ca4","type":"comment","z":"a9be358b.b57d98","name":"Affichage des températures minimales et maximales à venir","info":"","x":235,"y":843.7053518295288,"wires":[]},{"id":"e6274c10.a174e","type":"link in","z":"a9be358b.b57d98","name":"Prevision_Meteo","links":["a19dabbf.a7cbd8"],"x":193.78905868530273,"y":964.3042888641357,"wires":[["2cae9eb9.c04432","d41612bd.e0fbf"]]},{"id":"8f1233d5.ba153","type":"comment","z":"a9be358b.b57d98","name":"Prevision_Meteo","info":"","x":99,"y":964.5776920318604,"wires":[]},{"id":"947318e8.726a38","type":"ui_chart","z":"a9be358b.b57d98","name":"Prévisions Températures Max (10 jours)","group":"f9fce91f.4c8dc","order":2,"width":0,"height":0,"label":"Températures Maximales (°C)","chartType":"bar","legend":"false","xformat":"HH:mm:ss","interpolate":"linear","nodata":"Aucune prévision disponible.","dot":false,"ymin":"-20","ymax":"60","removeOlder":1,"removeOlderPoints":"","removeOlderUnit":"3600","cutout":0,"useOneColor":true,"colors":["#d20000","#aec7e8","#ff7f0e","#2ca02c","#98df8a","#d62728","#ff9896","#9467bd","#c5b0d5"],"useOldStyle":false,"x":821.5812377929688,"y":903.045241355896,"wires":[[],[]]},{"id":"9cd85570.83be98","type":"ui_chart","z":"a9be358b.b57d98","name":"Prévisions Températures Min (10 jours)","group":"f9fce91f.4c8dc","order":3,"width":"9","height":"6","label":"Températures Minimales (°C)","chartType":"bar","legend":"false","xformat":"HH:mm:ss","interpolate":"step","nodata":"Aucune prévision disponible.","dot":false,"ymin":"-20","ymax":"60","removeOlder":1,"removeOlderPoints":"10","removeOlderUnit":"3600","cutout":0,"useOneColor":true,"colors":["#3022b0","#3022b0","#3022b0","#3022b0","#3022b0","#3022b0","#3022b0","#3022b0","#3022b0"],"useOldStyle":false,"x":832.4700927734375,"y":1015.0451984405518,"wires":[[],[]]}]
How to create the Printed Circuit Board and the Enclosure Case
We have uploaded our files on Hackster and Thingiverse !
- PCB files are available for EAGLE Software ( free for makers & students) in "CAD - enclosure and custom parts" section.
- 3D Printed (.STL) files are available for Power Supply Case and Plant Monitoring Case
More on Thingiverse: https://www.thingiverse.com/thing:2750290
PCB Soldering
For component wiring, refer to the overall schematic:
Assembly Manual
How to make the Solar powered battery :
Components :
- Battery lipo
- Li-Po Rider pro
- Solar Panel
Create the i2c jumper for RGB and Lux sensors :
We added a pcb to wire both sensors on the same i2c line. You can do it yourself with a PCB or just use some wire jumpers and solder :
Then, you connect the sensors in the enclosure.
Enclosure case:
Follow the schematics included in attachments , and set it up in the enclosure this way:
Upgrades and Futures
We'll be glad if you send us your ideas to improve our device !
Here some upgrades we want to make:
- Improve the consumption by powering off sensors when they aren't used
- Add a button or accelerometer sensor to switch on/off the OLED Screen
- Add a rename command for each Sigfox module instead of displaying serial number
Comments