检索空气/土壤湿度和温度和亮度(和RGB射线)。它还发送本地化,因此提供天气预报。 这个项目中使用的东西 硬件组件 STM32 Nucleo STM32 L432KC × 1 Sigfox Breakout TD1208R × 1 DHT22温度传感器 × 1 Seeed Grove水分传感器 × 1 面包板(通用) × 1 Adafruit TSL2561 Lux传感器 × 1 Adafruit TCS34725 RGB颜色传感器 × 1 Seeed Grove DS18B20温度传感器 × 1 Adafruit单色0.96“128x64 OLED图形显示器 × 1 Pololu - USB Micro-B连接器分线板 × 1 DC-005 5.5 * 2.1 mm电源插座 × 1 SparkFun电阻1M欧姆 × 2 母/母跳线 × 1 SparkFun男性标题针 × 1 SparkFun女性标题针 × 2 Seeed Grove - 通用4针连接器 × 1 看过LiPo Rider Pro × 1 3.7 V LiPo电池 × 1 太阳能电池板2W × 1 手动工具和制造机器 3D打印机(通用) 烙铁(通用) 介绍 关于这个项目 作为我们在Polytech Sorbonne(前Polytech ParisUPMC)的研究的一部分,教师为我们提供了一个项目,其中包括为我们工程学院的农业食品部门创建温室植物监测。 我们项目的标志 创建的系统必须能够发送有关植物的信息,如水分,亮度,温度...... 这个设计简介由农业食品部门定义,用于他们的实验。他们不得不比较两种类型的种植园:一种只有玉米,另一种是带有三叶草的玉米。将我们的系统置于现实状态为我们提供了一个真正的机会来测试它的正常运行。经过一周的实施,我们能够确认我们的项目是可靠的并且满足了需求。我们收集的数据与农业食品部门建立的理论一致。 我们的项目已经完成,以下是如何自己实现它的解释。 我们花了将近三个月(每周工作2小时)才能实现它,所以这是一个非常简单的项目。 详细功能 监控包括管理: 空气/土壤湿度 亮度(甚至RGB光线) 使用微控制器和传感器 附加功能: 它还发送本地化,因此提供天气预报。 我们为我们的监控创建了一个Twitter 帐户。使用Sigfox发送的每条消息也作为推文发送。此外,我们编写了一些代码,允许用户对系统提出质疑。 先决条件 有知识 微控制器编程(C ++) 如何阅读数据表并提取最重要的数据 I2C,SPI,UART,CRC协议 如何使用Sigfox发送数据: AT命令 每天可以发送多少条消息? 如何构建消息?(JSON语言) 项目信息 状态:已完成 难度:中级(计算机科学的先决条件) 预计时间:1个半月 要遵循的步骤 1.根据用于解释数据的技术,对项目使用的所有引脚进行映射 2.对微控制器STM32 NUCLEO-L432KC进行编程 从传感器中检索数据 将数据转换为使用Sigfox发送 在OLED屏幕上显示数据 当Sigfox模块不发送消息时,配置微控制器的睡眠模式 3.配置仪表板,其中将显示所有检索到的数据 创建图表 将数据保存在数据库中 使用此数据显示天气预报 配置Twitter和邮件 CSV报告(每周,每月和每半年) 如果你有几个Sigfox 模块,创建一个下拉列表,以允许在最终用户过滤数据,以显示 使用哪些引脚? 我们有5个传感器可供使用。但他们不会以同样的方式运作。阅读NUCLEO L432KC的数据表可以对引脚进行分类。 这是我们为项目定义的映射: 我们的映射 我们已经这样做了,因此不同的使用技术之间没有冲突。对于与数据表相关的约束,这是我们可以做的最佳布线。 如何使它工作 微控制器编程 - 使用的库 #include "mbed.h" #include "DS18B20.h" #include "DHT.h" #include "TSL2561.h" #include "Adafruit_SSD1306.h" #include "WakeUp.h" 微控制器编程 - 配置 我们的微控制器程序非常灵活,可适应多种配置。如果您想要更简单的设备,或者您想减少其消耗,您可以选择启用/禁用传感器。 要执行此操作,请根据您的需要继续执行mapping.h文件并注释/取消注释以下行: // Uncommentline to enable the focused object/sensor : #defineOLED_ACTIF #defineSIGFOX_ACTIF #define I2C_ACTIF #defineDEBUG_UART_ACTIF #defineDHT_ACTIF #defineGROVE_MOIST_ACTIF #defineONEWIRE_TEMP_ACTIF #defineLUX_ACTIF #defineRGB_ACTIF #defineBATTERIE_ACTIF 例如,您可能不需要屏幕。Web界面可能就足够了。为此,您只需评论以下行: //#define BATTERIE_ACTIF 可以在此文件中为高级用户修改其他参数,例如: 传感器校准 引脚分配 测量精度 计时 微控制器编程 - 主要 /!\评论是法语/!\ 初始化: 我们的微控制器必须与所有传感器/模块连接: /********************************* Initialisation *********************************/ #ifdefBATTERIE_ACTIF float BATTERIE_MIN = 33; float BATTERIE_MAX = 42; #endif #ifdefOLED_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 AnaisThomas"); OLED.setTextCursor(0,50); OLED.printf("==================="); OLED.display(); #endif #ifdefDEBUG_UART_ACTIF //Initialisation des communications UART pc.format(8,SerialBase::None,1); pc.baud(9600); #endif #ifdefSIGFOX_ACTIF Sigfox.format(8,SerialBase::None,1); Sigfox.baud(9600); #endif #ifdefONEWIRE_TEMP_ACTIF //Initialisation du capteur de température while (!Temperature.initialize()); // on attendque le capteur soit initialisé avant de pouvoir effectuer des mesures #endif #ifdefRGB_ACTIF //Initialisation du TCS34725 rgb.init_RGB(); #endif // Attente de 5secondes avant le démarrage du programme wait(5); 我们的主循环分为3部分: 1 - 采取措施和数据处理: 为了使测量点更可靠,每个点对应于一段时间内的测量平均值(在Mapping.h中定义)。 /********************************* Mesure des ADC *********************************/ // On effectueune 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 duré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é desdonné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 pourn'avoir qu'un octet seulement Clear /= 256; Red /= 256; Green /= 256; Blue /= 256; #endif #endif 2 - 显示和发送数据: 数据显示在OLED屏幕上,并作为帧通过Sigfox模块发送到云端。 /********************************* 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("  riseSecteur"); } #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 desdonné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 - 待机: 然后微控制器进入待机模式以限制其在空闲时间内的消耗: /********************************* 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 注意:整个代码取决于Mapping.h文件中的配置 微控制器编程 - 编译 您可以直接在Mbed上下载或编译程序:https ://os.mbed.com/teams/Radiopotache/code/plant-monitoring/ 或者您可以下载程序文件: 请参阅“监视工厂程序”.zip文件“CAD-Enclosures andcustom parts”部分。 如何链接Sigfox和NodeRed? 我们使用了本教程,详细介绍了如何链接这两个接口。我们还使用此链接在回调配置上构建我们的Sigfox消息。我们的回调是这样配置的。我们为变量提供了简单的名称,因此在NodeRED上检索这些数据更简单。 回调配置 使用NodeRED创建仪表板 当您收到来自Sigfox的消息时,我们传感器的所有数据都会定位在有效负载上。让我们看一下如何从一个简单的例子中获取这些数据: 配置简单 我们决定根据传输的信息安排数据。这就是为什么每个变量都有一个功能块(橙色块)。检索数据后,我们将其显示在图表上(蓝色块)。 我们有时间玩NodeRED,所以我们决定创建一个很棒的仪表板。 左侧面板分组有关Sigfox模块的一般信息: 序列号(下拉列表) 电源模式 地理跟踪 中间面板显示根据湿度,温度和亮度检索数据。块底部的按钮生成包含所有收集值的CSV报告(它是数据库的导出)。 正确的人使用地理跟踪来告知最终用户天气预报。 可以从NodeRED(颜色,面板,图标......)修改整个布局 垂直侧边栏 为Sigfox仪表板导入一个简单示例,以启动您自己的界面: [{"id":"5c96b484.a1fc9c","type":"tab","label":"Flow 1"},{"id":"b960c664.32b098","type":"httpresponse","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 iton 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":"AirTemperature","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":"AirMoisture","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":"GroundTemperature","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":"GroundMoisture","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":"LastMeasure","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\nreturnmsg;","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}] 访问到我们的仪表盘 查看我们的仪表板:点击此链接! 导入我们的仪表板: /!\要使用此仪表板,您需要在多个站点上创建帐户,以使用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":"  ré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 constructiond'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,SegoeUI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":true,"reset":false},"darkTheme":{"default":"#097479","baseColor":"#097479","baseFont":"-apple-system,BlinkMacSystemFont,SegoeUI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif","edited":true,"reset":false},"customTheme":{"name":"","default":"#4B7930","baseColor":"#097479","baseFont":"-apple-system,BlinkMacSystemFont,SegoeUI,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,SegoeUI,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 dusol","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 del'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":"  ré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 labatterie 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 niveaude batterie et le seuil\nelse if (Batterie < Seuil && Batterie >0)\n{\n // Envoi d'une alerte si labatterie est trop faible\n var Notif ='[' + strDate + ']' +' AttentionBatterie faible ! ' + Batterie + '%restant';\n msg.payload =Notif;\n returnmsg;\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 labatterie pour la comparer à un niveau de seuil\nvar Batterie =global.get('Batterie');\n\n// Dans le programme du microcontrôleur, la valeursera -1 si la batterie n'est pas surveillée\nif (Batterie == -1 )\n{\n msg.payload = \"Relié sursecteur\";\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":"  ré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//http://stackoverflow.com/questions/45784308/geocoding-node-red-node-google-error-invalid-request-invalid-latlng-paramet\n\nvarcoords ={};\nvar latitude= global.get('lat');\nvar length =global.get('lng');\ncoords.location = {lat:latitude, lon:length};\nreturncoords;","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":"  révisions des températures ","func":"// Déclarationd'un tableau de messages\nvar outputMsgs = [];\n\n// tableau récupérant lesrésultats\nvar Temperature = [];\nvar Titre = [];\n\n// Traitement desdonnées\nfor (i=1;i<=10;i++)\n{\n // Récupération des prévisions\n Temperature = ((msg.forecasts.max_temp) -(msg.forecasts.min_temp))/2;\n Titre = msg.forecasts.dow ;\n //'Jour '+i;\n \n // Mise en forme des messages\n outputMsgs.push({topic:Titre,payload:Temperature});\n}\n\n// Envoidu 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 enfonction 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 =msg.forecasts.narrative;\n global.set('Prevision_Resume'+i,Resume);\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\nreturnmsg;\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\nreturnmsg;\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":"cloudantout","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\nreturnmsg;","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'uneré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 dudé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 unefonctionnalité 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 ThomasBroussard","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 etaffichages 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 ThomasBroussard","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 ThomasBroussard","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érieet 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 ThomasBroussard","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 prochainsjours 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 ThomasBroussard","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é auPlantSigfox 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 ThomasBroussard","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 ThomasBroussard","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 dansles 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 à unbouton sur l'interface","info":"","x":335.00001525878906,"y":1193.750244140625,"wires":[]},{"id":"b952ce9.d87113","type":"comment","z":"a9be358b.b57d98","name":"Zone de quarantaine : lescodes présents ici ne sont pas utiilisés dans l'interface, mais sont conservéspour 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 ThomasBroussard","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 laré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":"MessageSigfox","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":" revision_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":" revision_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":"varSigfox_id = msg.payload.device;\nvarNiveau_Batterie = msg.payload.Batterie;\nvar Date_Enregistrement;\nvarHeure_Enregistrement;\nvar currentDate ;\nvar day,month,year;\nvar hours,minutes,seconds;\nvarNumero_Releve = 1;\n\n // Récupérationde 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érode 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":"cloudantout","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 leJour {{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":" ré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 sila 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<imgsrc=\"http://img4.hostingpics.net/pics/472303logoplantsigfox2.png\" width=\"190\"height=\"...\" class=\"logo_plantsigfox\" alt=\"LogoPlantSigfox\" />\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//varoutputMsgs = [];\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 = [];\nvarGreen = [];\nvar Blue = [];\n\nvar Releve_Sigfox =[];\nvar Buffer_CSV =\"\";\n\n// Récupération du nombre de lignes présentes dans letableau\nvar nb_lignes = msg.payload.total_rows;\n\n// Entête de chaquecolonne\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;\n Date_Releve = msg.payload.rows[i-1].doc.Date;\n Heure_Releve = msg.payload.rows[i-1].doc.Heure;\n id_Sigfox =msg.payload.rows[i-1].doc.id_Sigfox;\n \n TempSol =msg.payload.rows[i-1].doc.TempSol;\n TempAir = msg.payload.rows[i-1].doc.TempAir;\n HumidSol =msg.payload.rows[i-1].doc.HumidSol;\n HumidAir =msg.payload.rows[i-1].doc.HumidAir;\n Lumiere = msg.payload.rows[i-1].doc.Lumiere;\n Batterie = msg.payload.rows[i-1].doc.Batterie;\n \n Clear =msg.payload.rows[i-1].doc.Clear;\n Red = msg.payload.rows[i-1].doc.Red;\n Green = msg.payload.rows[i-1].doc.Green;\n Blue = msg.payload.rows[i-1].doc.Blue;\n\n // Création de la ligne du tableau CSV\n Releve_Sigfox =Numero_Releve+';'+Date_Releve + ';' + Heure_Releve+';'+id_Sigfox+';'+TempSol+';'+HumidSol+';'+TempAir+';'+HumidAir+';'+Lumiere+';'+Clear+';'+Red+';'+Green+';'+Blue+';'+Batterie+'%0A';\n \n \n // Enregistrement dans lebuffer représentant le fichier CSV\n Buffer_CSV = Buffer_CSV + Releve_Sigfox;\n}\n\n// Mise à dispositiondu 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 lesrelevé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 testerici !","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 estde 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 surl'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":"varSigfox_id = msg.payload.device;\nvarNiveau_Batterie = msg.payload.Batterie;\nvar Date_Enregistrement;\nvarcurrentDate ;\nvar day,month,year;\nvar hours,minutes,seconds;\n\n // Récupération de la date d'envoi dumessage sigfox\n currentDate= newDate(msg.payload.time* 1000);\n \n // Mise en forme de ladate\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 deBatterie\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":"cloudantout","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'adressemail","info":"","x":235,"y":2050.199951171875,"wires":[]},{"id":"7f7c6f5e.e14a3","type":"comment","z":"e884629f.ba039","name":"http://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 dubilan\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émentsutiles\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 formathtml)\n html:\n '<p>Bonjour,</p>'+\n '<p>Vous trouverez ci-jointvotre Bilan PlantSigfox du '+ Date_Debut_Bilan +' au ' + Date_Fin_Bilan +' sousformat .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=\"http://plantsigfox.eu-gb.mybluemix.net/ui\" > lantSigfox!</a></p>'+\n '<p> </p>'+\n '<p><b> lantSigfox</b></p>'+\n '<p>Développé par JeanneBaumier, Anaïs Auberval et Thomas Broussard</p>'+\n '<p>Etudiants en ei2i-4 à Polytech ParisUPMC</p>',\n\n // Piècesjointes\n attachments: \n [\n { \n // Nom dufichier\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 dumsg\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":"httprequest","z":"e884629f.ba039","name":"Récupération des relevés des 7 joursprécédents","method":"GET","ret":"obj","url":"http://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":"http://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":"// tableaurécupérant les résultats\nvar Mail = [];\nvar Buffer_Liste =\"\";\n\n// Récupération du nombre de lignes présentes dans letableau\nvar nb_lignes = msg.payload.total_rows;\n\n// Traitement desdonnées\nBuffer_Liste = msg.payload.rows[0].key;\n\nfor(i=1;i<nb_lignes;i++)\n{\n Mail= msg.payload.rows.key;\n //Création de la liste de diffusion\n Buffer_Liste = Buffer_Liste +';'+ Mail;\n}\n\n// Mise à dispositiondu 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 votreadresse 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 bilanshebdomadaires ! ","label":"Inscrivez vous pour recevoir les bilanshebdomadaires ! ","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 pouraccéder directement à l'onglet Bilan","info":"","x":185,"y":450,"wires":[]},{"id":"88eafa22.ee4768","type":"twitterout","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 surle 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":"twitterout","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 surla 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":"twitterout","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 laluminosité\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":"twitterout","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 desmessages 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":"http://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 letableau\nvar nb_lignes = msg.payload.total_rows;\n\nfor (i=0;i<nb_lignes;i++)\n{\n id =msg.payload.rows.doc._id;\n rev =msg.payload.rows.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');\nvarBlue = 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 + \" Lesproprié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 + \" Latempérature du sol est de \" + TempSol + \"°C\";\n break;\n \n case\"tempair\":\n\tcase \"temp air\":\n msg.payload = name + \" Latempérature de l'air est de \" + TempAir + \"°C\";\n break;\n \n /*************************\n *Humidités\n ************************/\n case \"humidsol\":\n case \"humidsol\":\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 debatterie 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//varoutputMsgs = [];\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 = [];\nvarGreen = [];\nvar Blue = [];\n\nvar Releve_Sigfox =[];\nvar Buffer_CSV =\"\";\n\n// Récupération du nombre de lignes présentes dans letableau\nvar nb_lignes = msg.payload.total_rows;\n\n// Entête de chaquecolonne\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;\n Date_Releve = msg.payload.rows[i-1].doc.Date;\n Heure_Releve =msg.payload.rows[i-1].doc.Heure;\n id_Sigfox = msg.payload.rows[i-1].doc.id_Sigfox;\n \n TempSol = msg.payload.rows[i-1].doc.TempSol;\n TempAir =msg.payload.rows[i-1].doc.TempAir;\n HumidSol = msg.payload.rows[i-1].doc.HumidSol;\n HumidAir = msg.payload.rows[i-1].doc.HumidAir;\n Lumiere =msg.payload.rows[i-1].doc.Lumiere;\n Batterie = msg.payload.rows[i-1].doc.Batterie;\n \n Clear =msg.payload.rows[i-1].doc.Clear;\n Red =msg.payload.rows[i-1].doc.Red;\n Green =msg.payload.rows[i-1].doc.Green;\n Blue =msg.payload.rows[i-1].doc.Blue;\n\n //Création de la ligne du tableau CSV \n Releve_Sigfox = Numero_Releve+';'+Date_Releve + ';' +Heure_Releve+';'+id_Sigfox+';'+TempSol+';'+HumidSol+';'+TempAir+';'+HumidAir+';'+Lumiere+';'+Clear+';'+Red+';'+Green+';'+Blue+';'+Batterie+'\\n';\n \n \n // Enregistrement dans lebuffer représentant le fichier CSV\n Buffer_CSV = Buffer_CSV + Releve_Sigfox;\n}\n\n// Mise à dispositiondu 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 nouveaumodule 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\ntempsol\ntempair\ntemp air\nhumidsol\nhumid sol\nhumidair\nhumidair\nlumiere\nlumière\nluminosité\nluminosite\nlux\nr\nred\nrouge\ng\ngreen\nvert\nb\nblue\nbleu\nbatterie\nniveaubatterie","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;\nvarLumiere;\nvar TempAir;\nvar TempSol;\nvar HumidAir;\nvar HumidSol;\nvar Red;\nvarGreen;\nvar Blue;\n\n // Limitation duniveau 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;\nvarid_Sigfox = msg.payload.id_Sigfox;\n// Adresse de la BDD (avec lesearch_index)\nvar requete_http =\"http://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":"RequeteHTTP","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éclarationdes variables\nvar Module_Sigfox;\nvar Type_Bilan;\n\n// Réception desparamè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":"httprequest","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;\nvarid_Sigfox = msg.payload.id_Sigfox;\n// Adresse de la BDD (avec lesearch_index)\nvar requete_http =\"http://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éclarationdes variables\nvar Module_Sigfox;\nvar Type_Bilan;\n\n// Réception desparamè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":"httprequest","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;\nvarid_Sigfox = msg.payload.id_Sigfox;\n// Adresse de la BDD (avec lesearch_index)\nvar requete_http =\"http://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éclarationdes 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//varoutputMsgs = [];\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 = [];\nvarGreen = [];\nvar Blue = [];\n\nvar Releve_Sigfox =[];\nvar Buffer_CSV =\"\";\n\n// Récupération du nombre de lignes présentes dans le tableau\nvarnb_lignes = msg.payload.total_rows;\n\n// Entête de chaquecolonne\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;\n Date_Releve =msg.payload.rows[i-1].doc.Date;\n Heure_Releve = msg.payload.rows[i-1].doc.Heure;\n id_Sigfox =msg.payload.rows[i-1].doc.id_Sigfox;\n \n TempSol =msg.payload.rows[i-1].doc.TempSol;\n TempAir = msg.payload.rows[i-1].doc.TempAir;\n HumidSol = msg.payload.rows[i-1].doc.HumidSol;\n HumidAir =msg.payload.rows[i-1].doc.HumidAir;\n Lumiere = msg.payload.rows[i-1].doc.Lumiere;\n Batterie = msg.payload.rows[i-1].doc.Batterie;\n \n Clear =msg.payload.rows[i-1].doc.Clear;\n Red = msg.payload.rows[i-1].doc.Red;\n Green = msg.payload.rows[i-1].doc.Green;\n Blue = msg.payload.rows[i-1].doc.Blue;\n\n // Création de la ligne du tableau CSV\n Releve_Sigfox =Numero_Releve+';'+Date_Releve + ';' + Heure_Releve+';'+id_Sigfox+';'+TempSol+';'+HumidSol+';'+TempAir+';'+HumidAir+';'+Lumiere+';'+Clear+';'+Red+';'+Green+';'+Blue+';'+Batterie+'%0A';\n \n \n // Enregistrement dans lebuffer représentant le fichier CSV\n Buffer_CSV = Buffer_CSV + Releve_Sigfox;\n}\n\n// Mise à dispositiondu tableau\nmsg.payload = Buffer_CSV;\nvar idSigfox_fichier =global.get('idSigfox_Bilan');\nmsg.filename =\"Rapport_Sigfox_Mensuel_\" + idSigfox_fichier + \".csv\";\n\nreturnmsg;\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 CSVMensuel","order":3,"width":"9","height":"2","format":"<a download=\"{{msg.filename}}\"href=\"data:application/octet-stream,{{msg.payload}}\">\n<md-card>\n <md-buttonclass=\"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//varoutputMsgs = [];\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 = [];\nvarGreen = [];\nvar Blue = [];\n\nvar Releve_Sigfox =[];\nvar Buffer_CSV =\"\";\n\n// Récupération du nombre de lignes présentes dans letableau\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;\n Date_Releve= msg.payload.rows[i-1].doc.Date;\n Heure_Releve = msg.payload.rows[i-1].doc.Heure;\n id_Sigfox =msg.payload.rows[i-1].doc.id_Sigfox;\n \n TempSol =msg.payload.rows[i-1].doc.TempSol;\n TempAir = msg.payload.rows[i-1].doc.TempAir;\n HumidSol =msg.payload.rows[i-1].doc.HumidSol;\n HumidAir = msg.payload.rows[i-1].doc.HumidAir;\n Lumiere =msg.payload.rows[i-1].doc.Lumiere;\n Batterie = msg.payload.rows[i-1].doc.Batterie;\n \n Clear =msg.payload.rows[i-1].doc.Clear;\n Red =msg.payload.rows[i-1].doc.Red;\n Green = msg.payload.rows[i-1].doc.Green;\n Blue = msg.payload.rows[i-1].doc.Blue;\n\n // Création de la ligne du tableau CSV \n Releve_Sigfox =Numero_Releve+';'+Date_Releve + ';' +Heure_Releve+';'+id_Sigfox+';'+TempSol+';'+HumidSol+';'+TempAir+';'+HumidAir+';'+Lumiere+';'+Clear+';'+Red+';'+Green+';'+Blue+';'+Batterie+'%0A';\n \n \n // Enregistrement dans lebuffer représentant le fichier CSV\n Buffer_CSV = Buffer_CSV + Releve_Sigfox;\n}\n\n// Mise à dispositiondu 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 CSVSemestriel","order":4,"width":"9","height":"2","format":"<a download=\"{{msg.filename}}\"href=\"data:application/octet-stream,{{msg.payload}}\">\n<md-card>\n <md-buttonclass=\"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 CSVSemestriel\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 CSVHebdomadaire","order":2,"width":"9","height":"2","format":"<a download=\"{{msg.filename}}\"href=\"data:application/octet-stream,{{msg.payload}}\">\n<md-card>\n <md-buttonclass=\"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":"cloudantout","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 = newDate();\\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 = newDate();\\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 = newDate();\\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 = newDate();\\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":"httprequest","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)\nvarrequete_http =\"http://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":"ReponseHTTP","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éclarationdes variables\nvar Module_Sigfox;\nvar Type_Bilan;\n\n// Réception desparamè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}\nreturnmsg;","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\nreturnmsg;","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":"Extractionlat/lng","func":"// Code trouvé sur : \n//http://stackoverflow.com/questions/45784308/geocoding-node-red-node-google-error-invalid-request-invalid-latlng-paramet\nvarcoords ={};\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 returncoords;\n}\nelse\n{\n returnmsg;\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;\nvarLieu = msg.payload.geonames[0].alternateNames[1].name;\n\n\n// Mise en forme dumessage\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// Envoidu 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":"lookupplace","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 enforme\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 = newDate().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 surl\\'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èsqu'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-textng-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é ausecteur\nelse if(Batterie == -1)\n msg.payload = {'icon':'fa-plug','Batterie':'Appareil relié ausecteur'};\n// Etat inconnu\nelse if(Batterie == -3)\n msg.payload = {'icon':'fa-spinnerfa-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 =msg.payload.rows.doc.TimeStamp * 1000;\n y = msg.payload.rows.doc.TempAir;\n data = \n {\n \"x\":x,\n \"y\":y\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/YYYYHH: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 =msg.payload.rows.doc.TimeStamp * 1000;\n y = msg.payload.rows.doc.HumidAir;\n data = \n {\n \"x\":x,\n \"y\":y\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 = msg.payload.rows.doc.TimeStamp *1000;\n y =msg.payload.rows.doc.TempSol;\n data = \n {\n \"x\":x,\n \"y\":y\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/YYYYHH: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/YYYYHH: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 =msg.payload.rows.doc.TimeStamp * 1000;\n y = msg.payload.rows.doc.HumidSol;\n data = \n {\n \"x\":x,\n \"y\":y\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 = msg.payload.rows.doc.TimeStamp *1000;\n y =msg.payload.rows.doc.Lumiere;\n data = \n {\n \"x\":x,\n \"y\":y\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 = msg.payload.rows.doc.TimeStamp *1000;\n \n y = msg.payload.rows.doc.Red;\n dataR = \n {\n \"x\":x,\n \"y\":y\n }\n y =msg.payload.rows.doc.Green;\n dataG = \n {\n \"x\":x,\n \"y\":y\n }\n\n y = msg.payload.rows.doc.Blue;\n dataB = \n {\n \"x\":x,\n \"y\":y\n }\n y = msg.payload.rows.doc.Clear;\n dataC = \n {\n \"x\":x,\n \"y\":y\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}]\nreturnmsg;","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 dutemps","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 variableglobale\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 variableglobale\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 variableglobale\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 variableglobale\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":"RefreshHumidSol","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":"RefreshTempAir","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":"RefreshHumidAir","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":"RefreshLumiere","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":"RefreshRGB","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 pluspartie 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ésabonnementPlantSigfox',\n\n // corps dumessage (sous format html)\n html:\n '<p>Bonjour,</p>'+\n '<p>Vous venez de vousdésabonner de PlantSigfox. N\\'hésitez pas à nous renvoyer votre expérienceutilisateur en réponse à ce mail.</p>'+\n '<p>A bientôt sur <a href=\"http://plantsigfox.eu-gb.mybluemix.net/ui\" >PlantSigfox!</a></p>'+\n '<p> </p>'+\n '<p><b>PlantSigfox</b></p>'+\n '<p>Développé par JeanneBaumier, Anaïs Auberval et Thomas Broussard</p>'+\n '<p>Etudiants en ei2i-4 àPolytech Paris UPMC</p>',\n };\n \n// Creation dumsg\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 votreadresse 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 desvariables\nvar mail_a_effacer = msg.payload[0].payload;\nvarmail_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.doc.mail;\n if (mail_a_effacer === mail_a_comparer)\n {\n id_a_effacer = msg.payload[1].payload.rows.doc._id;\n rev_a_effacer =msg.payload[1].payload.rows.doc._rev;\n }\n \n}\n\n// Envoi duré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":"http://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 dansla 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 5jours (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 <imgsrc={{msg.payload.J2_Icone}} width=\"50\" height=\"50\"class=\"image_meteo\" alt=\"Image Meteo 00\" />\n </td>\n <td >\n <imgsrc={{msg.payload.J3_Icone}} width=\"50\" height=\"50\" class=\"image_meteo\"alt=\"Image Meteo 00\" />\n </td>\n <td>\n <imgsrc={{msg.payload.J4_Icone}} width=\"50\" height=\"50\"class=\"image_meteo\" alt=\"Image Meteo 00\" />\n </td>\n <td >\n <imgsrc={{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 lesrésultats\nvar Tmax = [];\nvar Tmin = [];\n\nvar Code_Icone;\nvar Icone= [];\n\nvar Titre = [];\nvar Jour_Date = [];\n\nvar j = 0;\n\n// Traitement desdonnées\n for (i=1;i<=5;i++)\n {\n // Récupération des prévisions\n Tmax = msg.payload.list[j].main.temp_max;\n Tmin =msg.payload.list[j].main.temp_min;\n Code_Icone = msg.payload.list[j].weather[0].icon;\n Icone =\"http://openweathermap.org/img/w/\"+ Code_Icone+\".png\"\n\n //Récupération des dates\n currentDate = new Date(new Date().getTime() + (i-1)*24 * 60 * 60 *1000);\n day = currentDate.getDate();\n month = currentDate.getMonth() +1;\n year =currentDate.getFullYear();\n Jour_Date = 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 =msg.forecasts.narrative;\n Icon = msg.forecasts.day.icon_code;\n global.set('Prevision_Resume'+i,Resume);\n global.set ('Icon'+i,Icon);\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\nreturnmsg;\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 leJour {{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<!--http://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\";\nvarcode = \"\";\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éclarationd'un tableau de messages\nvar outputMsgs = [];\n\n// tableau récupérant lesrésultats\nvar Temperature = [];\nvar Titre = [];\nvar j = 0;\n\n// Traitementdes données\nfor (i=0;i<5;i++)\n{\n // Récupération des prévisions\n Temperature = msg.payload.list[j].main.temp_max;\n Titre = 'Jour '+i;\n \n // Mise en forme des messages\n outputMsgs.push({topic:Titre,payload:Temperature});\n j+=8;\n}\n\n// Envoi du tableau demessages\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 destempératures MIN","func":"// Déclaration d'un tableau de messages\nvaroutputMsgs = [];\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érationdes prévisions\n Temperature =msg.payload.list[j].main.temp_min;\n Titre = 'Jour '+i;\n \n // Mise en forme des messages\n outputMsgs.push({topic:Titre,payload:Temperature});\n j+=8;\n}\n\n// Envoi du tableau demessages\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 PrevisionMIN","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":[[],[]]}]如何来建立的印刷电路板,并在机箱案例 我们已经在Hackster和Thingiverse上传了我们的文件! 在“CAD - 外壳和定制部件”部分中,EAGLE软件(制造商和学生免费)可以使用PCB文件。 3D打印(.STL)文件可用于电源箱和工厂监控案例 有关Thingiverse的更多信息:https ://www.thingiverse.com/thing:2750290 PCB 焊接 有关组件接线,请参阅整体原理图: 装配手册 如何制作太阳能电池: 组件 : 电池脂肪 李宝骑士亲 太阳能板 为RGB和Lux传感器创建i2c跳线: 我们在同一条i2c线上添加了一个pcb来连接两个传感器。你可以用PCB自己做,或者只使用一些跳线和焊接: 然后,连接机箱中的传感器。 附件案例: 按照附件中包含的原理图进行操作,并以这种方式将其设置在机箱中: 升级和期货 如果您将您的想法发送给我们以改进我们的设备,我们将非常高兴! 这里有一些我们要做的升级: 不使用时,通过关闭传感器来改善消耗 添加按钮或加速计传感器以打开/关闭OLED屏幕 为每个Sigfox模块添加重命名命令,而不是显示序列号 原理图 代码 /**************************************************************************************************************************************************** Titre : Full_Sensors Auteur : Jeanne Baumier, Anas Auberval etThomas Broussard Date : 29/11/17 Plateforme : STM32L432KC Projet : PlantSigfox - Monitoring deplante distance -------------------------------- Description : Ce programme permet d'effectuer des relvesdes diffrents capteurs mtorologiques toute les T secondes. Les donnes reues par les capteurs sonttraites puis transmises via un module Sigfox TD1208R sur un serveur sigfox( http://backend.sigfox.com) L'ensemble des composants peuvent treconfigurs dans le fichier Mapping.h, savoir : - l'activation ou la dsactivation d'uncomposant - les paramtres d'talonnage et de mesuredes capteurs - les broches programmes pour lemicrocontrleur ****************************************************************************************************************************************************/ // ------------------------------------------------------------------------------ // LIBRAIRIES //------------------------------------------------------------------------------ #include "mbed.h" #include "DS18B20.h" // OneWire Temperature #include "DHT.h" //DHT22 #include "TSL2561.h" //Lux #include "TCS34725.h" //RGB #include "Adafruit_SSD1306.h" //OLED #include "Mapping.h" #include "WakeUp.h" //Low Power Energy //------------------------------------------------------------------------------ // CLASSES ET STRUCTURES //------------------------------------------------------------------------------ #ifdef OLED_ACTIF // sub-class SPI : // Caractristiques par dfaut de la communication SPI avecle SSD1306 class SPIPreInit : public SPI { public: SPIPreInit(PinName mosi, PinName miso, PinName clk) : SPI(mosi,miso,clk) { format(8,3); frequency(2000000); }; }; #endif //------------------------------------------------------------------------------ // INITIALISATION DES GPIO DUMICROCONTROLEUR //------------------------------------------------------------------------------ #ifdef DEBUG_UART_ACTIF // Liaison UART pour Debug Serial pc(USBTX, USBRX); #endif #ifdef SIGFOX_ACTIF // Liaison UART Sigfox Serial Sigfox(SIGFOX_RX, SIGFOX_TX); #endif #ifdef OLED_ACTIF // Ecran OLED (communication SPI) SPIPreInit gSpi(MOSI,MISO,CLK); Adafruit_SSD1306_Spi OLED(gSpi,DC,RST_SPI,CS,HAUTEUR_OLED,LARGEUR_OLED); #endif #ifdef GROVE_MOIST_ACTIF // Capteur d'humidit du sol Grove AnalogIn Capteur_Moisture(GROVE_MOIST_PIN); #endif #ifdef ONEWIRE_TEMP_ACTIF //Capteur de Temprature du sol One Wire CRC DS18B20 Temperature(true, true, false, ONEWIRE_TEMP_PIN); // Temperature( crcOn, useAddress, parasitic, mbed pin ) #endif #ifdef DHT_ACTIF //Capteur Temprature/Humidit de l'air Grove DHT22 DHT sensor(DHT_PIN,SEN51035P); // Use theSEN11301P sensor #endif #ifdef I2C_ACTIF I2C i2c(I2C_SDA,I2C_SCL); // SDA, SCL //Capteur de Luminosit et RGB Adafruit (tous les deuxconnects au bus i2c) #ifdef LUX_ACTIF TSL2561 lum(i2c); #endif #ifdef RGB_ACTIF TCS34725 rgb(i2c); #endif #endif #ifdef BATTERIE_ACTIF //Batterie AnalogIn Batterie(BATTERIE_PIN); #endif //------------------------------------------------------------------------------ // PROGRAMME PRINCIPAL //------------------------------------------------------------------------------ int main() { /********************************* Variables locales *********************************/ // Divers int i; int line = 0; // Variables permettant de stocker lesdonnes relever float VBAT = 0; float HumidSol = 0; float TempSol = 0; float TempAir = 0; float HumidAir = 0; float Lumiere = 0; float Niveau_Batterie = 101; int Clear = 0; int Red = 0; int Green = 0; int Blue = 0; wait(2); /********************************* 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("JeanneAnais Thomas"); OLED.setTextCursor(0,50); OLED.printf("==================="); OLED.display(); #endif #ifdef DEBUG_UART_ACTIF // Initialisation des communication 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 temprature while(!Temperature.initialize()); // on attend que le capteur soit initialis avant depouvoir effectuer des mesures #endif #ifdef RGB_ACTIF // Initialisation du TCS34725 rgb.init_RGB(); #endif // Attente de 5 secondes avant le dmarragedu programme wait(5); /********************************* Boucle principale *********************************/ while(1) { /********************************* Mesure des ADC *********************************/ // On effectue une moyenne sur une quantit de relevs (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'entre 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 rsultat #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 dconnecte, on doit lefaire remarquer (code : 101) if(Niveau_Batterie < 0) Niveau_Batterie = 101; #endif /********************************* Temprature du sol (OneWIRE) *********************************/ #ifdef ONEWIRE_TEMP_ACTIF Temperature.setResolution(twelveBit); // Le choix de la rsolution se fait avant le relev des donnes TempSol = Temperature.readTemperature(); // relev de donnes #endif /********************************* Temprature/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 rduit la prcision des donnes brutesen divisant par 256 pour n'avoir qu'un octet seulement Clear /= 256; Red /= 256; Green /= 256; Blue /= 256; #endif #endif /********************************* 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 donnes via le module Sigfox (dpend du format des donnes) *****************************************************************************/ #ifdef SIGFOX_ACTIF #if defined(RGB_2_OCTET) &&!defined(RGB_1_OCTET) // trame 1 : [TAir , Hum Air , TSol , HumSol , 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 : [TAir , Hum Air , TSol , 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 donnes sur le debug UART (optionnel) #ifdef DEBUG_UART_ACTIF #if defined(RGB_2_OCTET) &&!defined(RGB_1_OCTET) // trame 1 : [TAir , Hum Air , TSol , HumSol , 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 : [TAir , Hum Air , TSol , 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 /********************************* Mise en veille de l'appareil *********************************/ #if defined(OLED_ACTIF) &&defined(OLED_VEILLE) // Test : teindre l'cran au bout d'un tempsdonn 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 /*********************************************************************************** On attend le rveil de l'appareil pour excuter le prochain relev ***********************************************************************************/ } } void my_wakeup() { }
& F5 T: G7 C% L2 J- w' O |