Sakkhho 469 Signaler ce message Posté(e) 9 mai 2015 J'ai regardé comment aller chercher les datas en passant par http://api.wunderground.com/api/VOTRE CLE/history_20150430/q/pws:VOTRE STATION.json on peut récupérer cela à la fin "DAILY SUMMARY" "dailysummary": [ { "date": { "pretty": "April 30, 2015", "year": "2015", "mon": "04", "mday": "30", "hour": "00", "min": "00", "tzname": "Europe/Paris" }, "utcdate": { "pretty": "April 29, 2015", "year": "2015", "mon": "04", "mday": "29", "hour": "22", "min": "00", "tzname": "UTC" }, "meantempm":"11.1", "meantempi":"51.9","meandewptm":"8.4", "meandewpti":"47.1","meanwindspdm":"0.0", "meanwindspdi":"0.0","meanwdire":"North","meanwdird":"","humidity":"86","maxtempm":"12.1", "maxtempi":"53.8","mintempm":"10.0", "mintempi":"50.0","maxhumidity":"91","minhumidity":"78","maxdewptm":"10.1", "maxdewpti":"50.2","mindewptm":"6.7", "mindewpti":"44.1","maxpressurem":"1012.8", "maxpressurei":"29.91","minpressurem":"1006.3", "minpressurei":"29.72","maxwspdm":"0.0", "maxwspdi":"0.0","precipm":"18.8", "precipi":"0.74" } donc pour ce jour precipm":"18.8 ensuite dans une scene on stock la date des 7 derniers jours local DAY7 = local DAY6 = ... pour on interroge recupere la valeur precipm sur le site avec une sorte de : http://api.wunderground.com/api/VOTRE CLE/history_ " ... DAY7".. /q/pws:VOTRE STATION.json http://api.wunderground.com/api/VOTRE CLE/history_ " ... DAY6".. /q/pws:VOTRE STATION.json ... ensuite on additionne le tout :-) pour avoir l'historique. personne pour m'aider ? pleeeeasssse Partager ce message Lien à poster Partager sur d’autres sites
Franie 10 Signaler ce message Posté(e) 9 mai 2015 Bonjour, Le projet est absolument génial. Merci Steven. L'idée de récupérer les datas du pluviomètre du voisin (je n'ai pas de pluviomètre sur ma station netatmo) associé au prévision du site weather underground est super bien pensée. En revanche avec mon talent légendaire j'ai une erreur dans la scène : [DEBUG] 15:29:16: Last request : 05/09/15 - 15:29:16[DEBUG] 15:29:16: nil[ERROR] 15:29:17: LUA error: /opt/fibaro/scenes/226.lua:231: attempt to concatenate upvalue 'token' (a nil value) 226 est l'ID de ma scène. Je ne pige pas ce qu'est le 226.lua:231 ?? mais j'ai une valeur à Zero. Une idée à me souffler sur l'erreur a corriger pour faire fonctionner le truc ? Franie Partager ce message Lien à poster Partager sur d’autres sites
Steven 2 335 Signaler ce message Posté(e) 9 mai 2015 231 est la ligne en erreur. À vue de nez, il ne trouve pas le token, c'est normalement qu'il n'arrive pas t'authentifier avec ton login, password, clé et émail. Il faut donc commencer par vérifier cela. Partager ce message Lien à poster Partager sur d’autres sites
Franie 10 Signaler ce message Posté(e) 9 mai 2015 Le boulet... Une faute dans mon email. Pffff Merci Steven. C'est top moumoute ton programme. [DEBUG] 16:47:39: Last request : 05/09/15 - 16:47:39[DEBUG] 16:47:39: 536200021c7759780c6ba3f9|7f6d29e36815b5f75f96062ab48d8b0f[DEBUG] 16:47:40: ----------========== D e v i c e s =========----------[DEBUG] 16:47:40: ----------========== Module extérieur ==========----------[DEBUG] 16:47:40: temperature_exterieure = 22[DEBUG] 16:47:40: humidite_externe = 41[DEBUG] 16:47:40: ----------========== Module intérieur ==========----------[DEBUG] 16:47:40: temperature_interieure = 24.2[DEBUG] 16:47:40: co2 = 651[DEBUG] 16:47:40: humidite_interne = 47[DEBUG] 16:47:40: pression = 1022.7[DEBUG] 16:47:40: bruit = 51[DEBUG] 16:47:40: ----------========== D e v i c e s =========----------[DEBUG] 16:47:40: Pluie jour : 1.01[DEBUG] 16:47:40: Pluie heure : 0 1 Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 10 mai 2015 Bonjour les amis j'essai de faire ce bout de code pour récupérer les datas de precipitations de WU en regardant le bouton de steven et l'appel pour avoir le forecast des 3 prochains jours j'ai tenté cela, mais ca ne marche dans un 1er temps je veux juste remonter une valeur pour voir si j'y arrive. on verra ensuite la requêtes pour les 7 jours. local cle_api = "xxxx" -- cle api de chez Wunderground local pws = "ISAINTGE186" -- station ID local Dday = "20150430" local WGROUND = Net.FHttp("api.wunderground.com",80) local response ,status, err = WGROUND:GET("/api/"..cle_api.."/history_"..Dday.."/q/pws:"..pws..".json") --http://api.wunderground.com/api/xxxxx/history_20150430/q/pws:ISAINTGE186.json local rain = -1 if (response ~= nil) then rain = 0 local jsonTable = json.decode(response) fibaro:debug(jsonTable.history.dailysummary.precipm) rain = rain + jsonTable.history.dailysummary.precipm fibaro:debug(" Il est tombé " .. rain .. " mm depuis 7 jours") end fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lblHisto.value", rain) ca me renvoie [ERROR] 13:55:39: line :debug (arg 2), expected 'string const &' got 'nil' pourtant la valeur est "precipm":"20.3" donc je pense que le jsonTable.history.dailysummary.precipm n'est pas correct, avez vous une idée ? merci Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 10 mai 2015 je seche sur ce sujet, c'est trop compliqué pour moi Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 10 mai 2015 bon finalement et sans vraiment comprendre, ca marche... (pour 1 jour) probablement pas optimisé mais bon . local cle_api = "xxxx" -- cle api de chez Wunderground local pws = "ISAINTGE24" -- station ID local Dday = os.date("%Y%m%d") local WGROUND = Net.FHttp("api.wunderground.com",80) local response ,status, err = WGROUND:GET("/api/"..cle_api.."/history_"..Dday.."/lang:FR/q/pws:"..pws..".json") rain = 0 local jsonTable = json.decode(response) fibaro:debug(jsonTable.history.dailysummary[1].precipm) rain = rain + jsonTable.history.dailysummary[1].precipm 1 Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 10 mai 2015 Le second problème maintenant c'est de récupérer la date de la veille et des 7 jours precedents sous le format year/mm/dd avez vous une idée pour me mettre sur la voix ? est ce qu'à partir du os.date je peux faire qq chose ? merci Partager ce message Lien à poster Partager sur d’autres sites
fuuss 1 Signaler ce message Posté(e) 11 mai 2015 T'as déjàjoué un peu avec la formule ? Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 11 mai 2015 oui mais sans succès. N'etant pas très doué pour la programmation j'ai besoin d'un peu d'aide..; Je cherche aussi sur internet mais pareil, je trouve peu de chose, je continue de chercher neanmoins est ce quelque chose du style (os.date("%Y%m%d",os.time()-24*60*60)) fonctionnerait ? Partager ce message Lien à poster Partager sur d’autres sites
fuuss 1 Signaler ce message Posté(e) 12 mai 2015 EN fait ce serait sympa d'intégrer Koubachi On sais à quelle point le sol est sec https://labs.koubachi.com/?locale=en Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 12 mai 2015 quand meme pas donné le koubachi :-) moi je chercher toujours comment avoir les dates anterieures au bon format... Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 12 mai 2015 [DEBUG] 13:57:07: 20150512 [DEBUG] 13:57:07: 0.0 [DEBUG] 13:57:08: 20150511 [DEBUG] 13:57:08: 0.0 [DEBUG] 13:57:09: 20150510 [DEBUG] 13:57:09: 0.0 [DEBUG] 13:57:09: 20150509 [DEBUG] 13:57:09: 0.0 [DEBUG] 13:57:10: 20150508 [DEBUG] 13:57:10: 0.3 [DEBUG] 13:57:11: 20150507 [DEBUG] 13:57:11: 0.0 [DEBUG] 13:57:11: 20150506 [DEBUG] 13:57:11: 0.5 [DEBUG] 13:57:12: 20150505 [DEBUG] 13:57:12: 2.0 [DEBUG] 13:57:12: Il est tombé 2.8 mm depuis 7 jours 1 Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 12 mai 2015 voila le bout de code local cle_api = "xxxxx" -- cle api de chez Wunderground local pws = "ISAINTGE24" -- station ID local previous_day = 7 -- Number of days local WGROUND = Net.FHttp("api.wunderground.com",80) rain = 0 for i = 1, previous_day do local response ,status, err = WGROUND:GET("/api/"..cle_api.."/history_".. os.date("%Y%m%d",os.time()-i*24*3600) .."/lang:FR/q/pws:"..pws..".json") local jsonTable = json.decode(response) fibaro:debug(os.date("%Y%m%d",os.time()-i*24*3600)) fibaro:debug(jsonTable.history.dailysummary[1].precipm) rain = rain + jsonTable.history.dailysummary[1].precipm end fibaro:debug(" Il est tombé " .. rain .. " mm depuis " .. previous_day .. "jours") fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lblHisto.value", rain) par contre ca ne va surrement pas marché sur la osdate est le 1er mai et le day-1 est le 30 avril faut que je regarde. de plus le 'setProperty' m'affiche : last 7days 2.7999999999999998 pourquoi autant de decimal ? 1 Partager ce message Lien à poster Partager sur d’autres sites
Steven 2 335 Signaler ce message Posté(e) 12 mai 2015 fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lblHisto.value", rain .. " ") Ajoute .. " " àla fin. C'est nul, mais c'est fibaro. Partager ce message Lien à poster Partager sur d’autres sites
Steven 2 335 Signaler ce message Posté(e) 12 mai 2015 Pour le 30 avril, 1er mai ... cela va fonctionner, fais toi pas de soucis. Et un mot : . . . . . . . BRAVO courage et persévérance Partager ce message Lien à poster Partager sur d’autres sites
pepite 1 272 Signaler ce message Posté(e) 12 mai 2015 yes bravo sakkhho, super boulot, tu peux etre fier de toi, on t'a pas beaucoup aide sur ce coup là;-) :60: :13: Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 12 mai 2015 Cool !! oui enfin si j'etais parti d'une feuille blanche, sans le code de Steven, c'etait pas la meme chose. Steven, dans ton appel pour le forecast, tu avais local rain = -1 if (response ~= nil) then rain = 0 local jsonTable = json.decode(response) max_day = max_day + 1 if (#jsonTable.forecast.simpleforecast.forecastday < max_day) then max_day = #jsonTable.forecast.simpleforecast.forecastday end j'ai pas repris car je ne comprends pas à quoi ça sert. Partager ce message Lien à poster Partager sur d’autres sites
pepite 1 272 Signaler ce message Posté(e) 12 mai 2015 c'est pour les 3 jours si je ne dis pas de betise ;-) Partager ce message Lien à poster Partager sur d’autres sites
Steven 2 335 Signaler ce message Posté(e) 12 mai 2015 Oui, pour les prévisions, on reçoit un seul json avec une liste des prochains jours. On prend les 4 premier, soit aujourd'hui et les 3e prochains jours. Pour l'historique, c'est une requête / un json par jour exactement comme tu as fait. Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 12 mai 2015 ok clair, faudra pas que GEA appuie sur le bouton toutes les 30s sinon WU va nous jeter ... une compte gratuit c'est 500 demandes par jour, l'historique fait deja 7 demandes + 1 previsions ... max 62 "click" par jour donc max toutes les 30mn Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 12 mai 2015 avec http://www.wunderground.com/weather/api/d/docs?d=data/planner on peut aussi recuperer les 30 derniers jours roulants ;-) je regarde ca dans les jours qui viennent Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 12 mai 2015 ha non dommage, si je comprends bien c'est le min/max/average d'une periode mais pas un cumul. par ce que sinon c'est un carton jaune ! Hello,Your wunderground API key (xxxx) exceeded its allotted usage today by making 27 calls within a minute but the limit is 10.We used one of your raindrops instead of disabling the key for the remainder of the day. You now have 3 remaining raindrops.We check usage for 24-hour periods based on U.S. Eastern Time.The plan you are registered for is Stratus - Developer, granting you 500 calls per day with 10 calls per minute limit. To upgrade your plan go to: Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 13 mai 2015 petite question quand je suis dans ma boucle, je voudrai si i =1 (donc Hier) récupérer la valeiur for i = 1, previous_day do local response ,status, err = WGROUND:GET("/api/"..cle_api.."/history_".. os.date("%Y%m%d",os.time()-i*24*3600) .."/lang:FR/q/pws:"..pws..".json") local jsonTable = json.decode(response) fibaro:debug(os.date("%Y%m%d",os.time()-i*24*3600)) fibaro:debug(jsonTable.history.dailysummary[1].precipm) rain5days = rain5days + jsonTable.history.dailysummary[1].precipm if (i = 1) then rainyesterday = JsonTable.history.dailysummary[1].precipm end end sauf qu'il me dit [ERROR] 08:57:45: line 23: ')' expected near '=' ligne 23, c'est la ligne de mon if (i=1 ...) qu'est ce que j'ai loupé ? merci Partager ce message Lien à poster Partager sur d’autres sites
Sakkhho 469 Signaler ce message Posté(e) 13 mai 2015 en parralle je cherche à exploiter les datas CONDITIONS http://www.wunderground.com/weather/api/d/docs?d=data/conditions pour remonter les données precip_1hr_metric precip_today_metric sauf que j'arrive pas a décortiquer le Json je pensais faire simplement un local jsonTable = json.decode(response) fibaro:debug(jsonTable.conditions.precip_today_metric) mais ca marche pas. vous avez une idée ? l'idée est de proposer un VD 'précipitations" au fofo avec uniquement les datas de WU. 1hour, Aujourd'hui, Hier, Il y a 5 jours, Il y a 10jours, j'ai les 3 derniers, me manquent ceux du Json "Conditions" EDIT ; je commence à mieux comprendre la syntaxe du JSON ... :-) je l'ai 1 Partager ce message Lien à poster Partager sur d’autres sites