Demande d'aide Problème avec un code !! - Version imprimable +- Forum Lifedomus (http://forum-lifedomus.com) +-- Forum : Vos automates et applications (http://forum-lifedomus.com/forumdisplay.php?fid=52) +--- Forum : Autres (http://forum-lifedomus.com/forumdisplay.php?fid=85) +--- Sujet : Demande d'aide Problème avec un code !! (/showthread.php?tid=4598) |
Problème avec un code !! - Al_Bla - 12-19-2019 Salut les chefs Parseur, un peu long je vous l'accorde !! Je n'y comprends pas grand chose, mais avec l'aide de tous ceux qui ont travaillé sur Netatmo, j'ai repris des codes qui m'ont permis de récupérer les données du Pluviomètre, de l'Anémomètre, et même en bricolant de la station. Je pensais qu'en bricolant le code ci-dessous je récupèrerai les données du module extérieure (NAModules1), mais je ne reçois dans le Listener que le message "{"error":{"code":404,"message":"Not Found"}}" Pour les autres équipements (NAModules2) et (NAModules3) j'obtiens bien les données. Exemple pour l'anémomètre : 3 9.0 1.576632695E9 230.0 22.0 250.0 11.0 241.0 8 Anémomètre 06:00:00:03:b0:66 le code pour les modules est celui-ci : //On récupère la trame et on la formate var objan = JSON.parse(trame); // Recherche et mise en forme du Module Extérieur for (i=0; i<objan.body.devices[0].modules.length; i++) { typemodules = objan.body.devices[0].modules[i].type if ( typemodules == "NAModule1" ) { parammodulexterieur = objan.body.devices[0].modules[i].dashboard_data batterymodulexterieur = objan.body.devices[0].modules[i].battery_percent } } //Récupération et mise en forme des variables disponibles id = objan.body.devices[0].modules[0]._id; nom_module=objan.body.devices[0].modules[0].module_name; temperature1 = parammodulexterieur.temperature; Temperature = parseFloat(temperature1) humidity1 = parammodulexterieur.humidity; Humidite = parseFloat(humidity1) battery1 = batterymodulexterieur; min_temp1 = parammodulexterieur.min_temp; Temperature_minimale = parseFloat(min_temp1) max_temp1= parammodulexterieur.max_temp; Temperature_maximale= parseFloat(max_temp1) date_max_temp1=parammodulexterieur.date_max_temp; Date_temperature_maxi=parseFloat(date_max_temp1) date_min_temp1=parammodulexterieur.date_min_temp; Date_temperature_mini=parseFloat(date_min_temp1) temp_trend1=parammodulexterieur.temp_trend; Evolution_temperature=parseFloat(temp_trend1) //Mise en forme pour l’état de la batterie pour Lifedomus if (battery1 < 20) { batteryan = BATTERY_LEVEL.LOW; } else if (battery1 < 80) { batteryan = BATTERY_LEVEL.MEDIUM; } else { batteryan = BATTERY_LEVEL.FULL; } //Affichage pour débugage ldprint(id); ldprint(nom_module); ldprint(Temperature); ldprint(Humidity); ldprint(Temperature_minimale); ldprint(Temperature_maximale); ldprint(Date_temperature_mini); ldprint(Date_temperature_maxi); ldprint(Evolution_temperature); ldprint(batteryan); Question : Où est mon erreur ? Il y a un problème que j'avais vu sur le forum, des variables avec le même nom, ici dans la station et dans le module extérieure ? En vert les données que je veux récupérer. Voilà ce que me renvoie le Listener : {"body":{"devices":[{"_id":"70:ee:50:22:a4:0a","station_name":"XXXXX","date_setup":1506167028,"last_setup":1506167028,"type":"NAMain","last_status_store":1576685936,"module_name":"Salon","firmware":140,"last_upgrade":1506167029,"wifi_status":58,"reachable":true,"co2_calibrating":false,"data_type":["Temperature","CO2","Humidity","Noise","Pressure"],"place":{"altitude":xx,"city":"AAAAAAAA","country":"FR","timezone":"Europe\/Paris","location":[4.xxxxxx,43.xxxxxxx]},"dashboard_data":{"time_utc":1576685924,"Temperature":21.5,"CO2":641,"Humidity":57,"Noise":45,"Pressure":1016.9,"AbsolutePressure":1013.3,"min_temp":21.5,"max_temp":22.8,"date_max_temp":1576668228,"date_min_temp":1576652182,"temp_trend":"stable","pressure_trend":"stable"},"modules":[{"_id":"02:00:00:22:ae:62","type":"NAModule1","module_name":"Patio","data_type":["Temperature","Humidity"],"last_setup":1506167057,"battery_percent":100,"reachable":true,"firmware":44,"last_message":1576685928,"last_seen":1576685903,"rf_status":74,"battery_vp":6050,"dashboard_data":{"time_utc":1576685903,"Temperature":16.1,"Humidity":72,"min_temp":9.7,"max_temp":22.9,"date_max_temp":1576671803,"date_min_temp":1576655504,"temp_trend":"down"}},{"_id":"05:00:00:06:c1:46","type":"NAModule3","module_name":"Pluviome\u0300tre","data_type":["Rain"],"last_setup":1575188696,"battery_percent":100,"reachable":true,"firmware":8,"last_message":1576685928,"last_seen":1576685928,"rf_status":80,"battery_vp":6196,"dashboard_data":{"time_utc":1576685916,"Rain":0,"sum_rain_1":0,"sum_rain_24":0}},{"_id":"06:00:00:03:b0:66","type":"NAModule2","module_name":"An\u00e9mome\u0300tre","data_type":["Wind"],"last_setup":1575308451,"battery_percent":100,"reachable":true,"firmware":19,"last_message":1576685928,"last_seen":1576685928,"rf_status":76,"battery_vp":6108,"dashboard_data":{"time_utc":1576685922,"WindStrength":9,"WindAngle":241,"GustStrength":11,"GustAngle":250,"max_wind_str":22,"max_wind_angle":230,"date_max_wind_str":1576632695}}]}],"user":{"mail":"xxxx_xxxx@xxxx.fr","administrative":{"lang":"fr-FR","reg_locale":"fr-FR","country":"FR_FR","unit":0,"windunit":0,"pressureunit":0,"feel_like_algo":0}}},"status":"ok","time_exec":0.09859418869018555,"time_server":1576686335} Merci de vos réponses. RE: Problème avec un code !! - jojo - 12-19-2019 " if ( typemodules == "NAModule1" ) { parammodulexterieur = objan.body.devices[0].modules[i].dashboard_data batterymodulexterieur = objan.body.devices[0].modules[i].battery_percent } " Je ne suis pas du tout un programmeur, donc , c'est difficile pour moi de mettre le doigts sur ce qui n'irais pas. Mais la chose que je me dit, pourquoi ce test sur NAModule1 (et pas les 2/3), alors que du dis que NAModule1 ne fonctionne pas ? RE: Problème avec un code !! - Al_Bla - 12-19-2019 (12-19-2019, 09:51 AM)jojo a écrit : " Salut Jojo, Le code fonctionne très bien pour NAModule2 (Anémomètre) et NAModule3 (Pluviomètre), les données remontent bien. Même en bricolant le code, j'ai réussi a faire remonter les données de (NAMain) la station Mais pour le NAModule1, j'obtiens un message d'erreur 404, Pourquoi ? La question que je me pose "Est-ce que cela ne vient pas du fait que les noms des données NAMain et NAModule1 sont les mêmes ?" Exemple : temperature C'est pour cela que j'appelle à l'aide la communauté des codeurs !!! PS : Si un codeur tombe sur mon post, peut-il me dire comment transformer une date linux (1576593006) en date au format (dd/mm/aaaa hh:mm), dans un code pour l'avoir en affichage dans DS par exemple. Merci Jojo pour ta réponse.... mais il faut encore creuser un peu, je cherche toujours... RE: Problème avec un code !! - Al_Bla - 12-19-2019 Salut Jojo et les super codeurs, Pour plus d'info complète ci-dessous le Listener complet des 4 équipements (Station "NAMain"- Anémomètre "NAModule2"- Pluviomètre "NAModule3" - Module ext."NAModule1") Module ext. renvoie "error" Voir le code post précédent pour le Module ext.(NAModule1) Listener : {"error":{"code":404,"message":"Not Found"}} 0.0 3 0.0 0.0 Pluviomètre 05:00:00:06:c1:46 {"body":{"devices":[{"_id":"70:ee:50:22:a4:0a","station_name":"XXXX","date_setup":1506167028,"last_setup":1506167028,"type":"NAMain","last_status_store":1576755517,"module_name":"Salon","firmware":140,"last_upgrade":1506167029,"wifi_status":58,"reachable":true,"co2_calibrating":false,"data_type":["Temperature","CO2","Humidity","Noise","Pressure"],"place":{"altitude":30,"city":"xxxxx","country":"FR","timezone":"Europe\/Paris","location":[xxxxxx,yyyyyyy]},"dashboard_data":{"time_utc":1576755508,"Temperature":21.7,"CO2":541,"Humidity":54,"Noise":47,"Pressure":1014.1,"AbsolutePressure":1010.5,"min_temp":21.3,"max_temp":21.9,"date_max_temp":1576710237,"date_min_temp":1576750673,"temp_trend":"stable","pressure_trend":"stable"},"modules":[{"_id":"02:00:00:22:ae:62","type":"NAModule1","module_name":"Patio","data_type":["Temperature","Humidity"],"last_setup":1506167057,"battery_percent":100,"reachable":true,"firmware":44,"last_message":1576755516,"last_seen":1576755477,"rf_status":73,"battery_vp":6054,"dashboard_data":{"time_utc":1576755477,"Temperature":17.4,"Humidity":66,"min_temp":11.5,"max_temp":17.9,"date_max_temp":1576753376,"date_min_temp":1576726968,"temp_trend":"up"}},{"_id":"05:00:00:06:c1:46","type":"NAModule3","module_name":"Pluviome\u0300tre","data_type":["Rain"],"last_setup":1575188696,"battery_percent":100,"reachable":true,"firmware":8,"last_message":1576755516,"last_seen":1576755516,"rf_status":81,"battery_vp":6188,"dashboard_data":{"time_utc":1576755503,"Rain":0,"sum_rain_1":0,"sum_rain_24":0}},{"_id":"06:00:00:03:b0:66","type":"NAModule2","module_name":"An\u00e9mome\u0300tre","data_type":["Wind"],"last_setup":1575308451,"battery_percent":100,"reachable":true,"firmware":19,"last_message":1576755516,"last_seen":1576755516,"rf_status":74,"battery_vp":6096,"dashboard_data":{"time_utc":1576755503,"WindStrength":8,"WindAngle":241,"GustStrength":18,"GustAngle":225,"max_wind_str":18,"max_wind_angle":228,"date_max_wind_str":1576736739}}]}],"user":{"mail":"xxxxxx@xxx.fr","administrative":{"lang":"fr-FR","reg_locale":"fr-FR","country":"FR_FR","unit":0,"windunit":0,"pressureunit":0,"feel_like_algo":0}}},"status":"ok","time_exec":0.08902287483215332,"time_server":1576755680} 3 8.0 1.576736739E9 228.0 18.0 225.0 18.0 241.0 8 Anémomètre 06:00:00:03:b0:66 {"body":{"devices":[{"_id":"70:ee:50:22:a4:0a","station_name":"XXXX","date_setup":1506167028,"last_setup":1506167028,"type":"NAMain","last_status_store":1576755517,"module_name":"Salon","firmware":140,"last_upgrade":1506167029,"wifi_status":58,"reachable":true,"co2_calibrating":false,"data_type":["Temperature","CO2","Humidity","Noise","Pressure"],"place":{"altitude":30,"city":"xxxxx","country":"FR","timezone":"Europe\/Paris","location":[xxxxxx,yyyyyyy]},"dashboard_data":{"time_utc":1576755508,"Temperature":21.7,"CO2":541,"Humidity":54,"Noise":47,"Pressure":1014.1,"AbsolutePressure":1010.5,"min_temp":21.3,"max_temp":21.9,"date_max_temp":1576710237,"date_min_temp":1576750673,"temp_trend":"stable","pressure_trend":"stable"},"modules":[{"_id":"02:00:00:22:ae:62","type":"NAModule1","module_name":"Patio","data_type":["Temperature","Humidity"],"last_setup":1506167057,"battery_percent":100,"reachable":true,"firmware":44,"last_message":1576755516,"last_seen":1576755477,"rf_status":73,"battery_vp":6054,"dashboard_data":{"time_utc":1576755477,"Temperature":17.4,"Humidity":66,"min_temp":11.5,"max_temp":17.9,"date_max_temp":1576753376,"date_min_temp":1576726968,"temp_trend":"up"}},{"_id":"05:00:00:06:c1:46","type":"NAModule3","module_name":"Pluviome\u0300tre","data_type":["Rain"],"last_setup":1575188696,"battery_percent":100,"reachable":true,"firmware":8,"last_message":1576755516,"last_seen":1576755516,"rf_status":81,"battery_vp":6188,"dashboard_data":{"time_utc":1576755503,"Rain":0,"sum_rain_1":0,"sum_rain_24":0}},{"_id":"06:00:00:03:b0:66","type":"NAModule2","module_name":"An\u00e9mome\u0300tre","data_type":["Wind"],"last_setup":1575308451,"battery_percent":100,"reachable":true,"firmware":19,"last_message":1576755516,"last_seen":1576755516,"rf_status":74,"battery_vp":6096,"dashboard_data":{"time_utc":1576755503,"WindStrength":8,"WindAngle":241,"GustStrength":18,"GustAngle":225,"max_wind_str":18,"max_wind_angle":228,"date_max_wind_str":1576736739}}]}],"user":{"mail":"xxxxxx@xxx.fr","administrative":{"lang":"fr-FR","reg_locale":"fr-FR","country":"FR_FR","unit":0,"windunit":0,"pressureunit":0,"feel_like_algo":0}}},"status":"ok","time_exec":0.08902287483215332,"time_server":1576755680} 3 NaN 1010.5 1014.1 47.0 541.0 54.0 NaN 1.576710237E9 -8000 21.9 21.3 NaN Salon 70:ee:50:22:a4:0a {"body":{"devices":[{"_id":"70:ee:50:22:a4:0a","station_name":"XXXX","date_setup":1506167028,"last_setup":1506167028,"type":"NAMain","last_status_store":1576755517,"module_name":"Salon","firmware":140,"last_upgrade":1506167029,"wifi_status":58,"reachable":true,"co2_calibrating":false,"data_type":["Temperature","CO2","Humidity","Noise","Pressure"],"place":{"altitude":30,"city":"xxxxx","country":"FR","timezone":"Europe\/Paris","location":[xxxxxx,yyyyyyy]},"dashboard_data":{"time_utc":1576755508,"Temperature":21.7,"CO2":541,"Humidity":54,"Noise":47,"Pressure":1014.1,"AbsolutePressure":1010.5,"min_temp":21.3,"max_temp":21.9,"date_max_temp":1576710237,"date_min_temp":1576750673,"temp_trend":"stable","pressure_trend":"stable"},"modules":[{"_id":"02:00:00:22:ae:62","type":"NAModule1","module_name":"Patio","data_type":["Temperature","Humidity"],"last_setup":1506167057,"battery_percent":100,"reachable":true,"firmware":44,"last_message":1576755516,"last_seen":1576755477,"rf_status":73,"battery_vp":6054,"dashboard_data":{"time_utc":1576755477,"Temperature":17.4,"Humidity":66,"min_temp":11.5,"max_temp":17.9,"date_max_temp":1576753376,"date_min_temp":1576726968,"temp_trend":"up"}},{"_id":"05:00:00:06:c1:46","type":"NAModule3","module_name":"Pluviome\u0300tre","data_type":["Rain"],"last_setup":1575188696,"battery_percent":100,"reachable":true,"firmware":8,"last_message":1576755516,"last_seen":1576755516,"rf_status":81,"battery_vp":6188,"dashboard_data":{"time_utc":1576755503,"Rain":0,"sum_rain_1":0,"sum_rain_24":0}},{"_id":"06:00:00:03:b0:66","type":"NAModule2","module_name":"An\u00e9mome\u0300tre","data_type":["Wind"],"last_setup":1575308451,"battery_percent":100,"reachable":true,"firmware":19,"last_message":1576755516,"last_seen":1576755516,"rf_status":74,"battery_vp":6096,"dashboard_data":{"time_utc":1576755503,"WindStrength":8,"WindAngle":241,"GustStrength":18,"GustAngle":225,"max_wind_str":18,"max_wind_angle":228,"date_max_wind_str":1576736739}}]}],"user":{"mail":"xxxxxx@xxx.fr","administrative":{"lang":"fr-FR","reg_locale":"fr-FR","country":"FR_FR","unit":0,"windunit":0,"pressureunit":0,"feel_like_algo":0}}},"status":"ok","time_exec":0.08902287483215332,"time_server":1576755680} RE: Problème avec un code !! - Jlr - 12-19-2019 Ta date est un timestamp sous unix. tu trouvera des conversion à adapter en fonction de langage utilisé: ex: http://www.tux-planet.fr/convertir-des-dates-et-des-timestamp-sous-linux/ RE: Problème avec un code !! - Al_Bla - 12-20-2019 (12-19-2019, 05:30 PM)Jlr a écrit : Ta date est un timestamp sous unix. tu trouvera des conversion à adapter en fonction de langage utilisé: Merci j'ai trouvé un petit script que j'ai ajouté à mon code, il fonctionne à merveille. Mais je n'ai toujours pas trouvé mon problème "error 404" dan mon code pour mon module extérieur Netatmo. Je vais appliquer ma devise et poursuivre..... RE: Problème avec un code !! - Al_Bla - 12-20-2019 Je me réponds, n'ayant pas trouvé l'erreur dans mon code, j'ai essayé de faire remonter les valeurs en passant par l'équipement Pluviomètre et là toutes les valeurs du module extérieur ont pu être récupérées en parsant la trame. (température mini, maxi, date température maxi-mini, évolution température etc...) Je ne comprends pas mais cela fonctionne de cette manière. RE: Problème avec un code !! - jojo - 12-21-2019 , les mystères de l'informatique ... |