Sakkhho Posté(e) le 9 mai 2015 Signaler Posté(e) le 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
Franie Posté(e) le 9 mai 2015 Signaler Posté(e) le 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
Steven Posté(e) le 9 mai 2015 Auteur Signaler Posté(e) le 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.
Franie Posté(e) le 9 mai 2015 Signaler Posté(e) le 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
Sakkhho Posté(e) le 10 mai 2015 Signaler Posté(e) le 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
Sakkhho Posté(e) le 10 mai 2015 Signaler Posté(e) le 10 mai 2015 je seche sur ce sujet, c'est trop compliqué pour moi
Sakkhho Posté(e) le 10 mai 2015 Signaler Posté(e) le 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
Sakkhho Posté(e) le 10 mai 2015 Signaler Posté(e) le 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
fuuss Posté(e) le 11 mai 2015 Signaler Posté(e) le 11 mai 2015 T'as déjàjoué un peu avec la formule ?
Sakkhho Posté(e) le 11 mai 2015 Signaler Posté(e) le 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 ?
fuuss Posté(e) le 12 mai 2015 Signaler Posté(e) le 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
Sakkhho Posté(e) le 12 mai 2015 Signaler Posté(e) le 12 mai 2015 quand meme pas donné le koubachi :-) moi je chercher toujours comment avoir les dates anterieures au bon format...
Sakkhho Posté(e) le 12 mai 2015 Signaler Posté(e) le 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
Sakkhho Posté(e) le 12 mai 2015 Signaler Posté(e) le 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
Steven Posté(e) le 12 mai 2015 Auteur Signaler Posté(e) le 12 mai 2015 fibaro:call(fibaro:getSelfId(), "setProperty", "ui.lblHisto.value", rain .. " ") Ajoute .. " " àla fin. C'est nul, mais c'est fibaro.
Steven Posté(e) le 12 mai 2015 Auteur Signaler Posté(e) le 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
pepite Posté(e) le 12 mai 2015 Signaler Posté(e) le 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:
Sakkhho Posté(e) le 12 mai 2015 Signaler Posté(e) le 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.
pepite Posté(e) le 12 mai 2015 Signaler Posté(e) le 12 mai 2015 c'est pour les 3 jours si je ne dis pas de betise ;-)
Steven Posté(e) le 12 mai 2015 Auteur Signaler Posté(e) le 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.
Sakkhho Posté(e) le 12 mai 2015 Signaler Posté(e) le 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
Sakkhho Posté(e) le 12 mai 2015 Signaler Posté(e) le 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
Sakkhho Posté(e) le 12 mai 2015 Signaler Posté(e) le 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:
Sakkhho Posté(e) le 13 mai 2015 Signaler Posté(e) le 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
Sakkhho Posté(e) le 13 mai 2015 Signaler Posté(e) le 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
Messages recommandés