Page 4 sur 4

Re: Meilleur méthode pour récupérer valeur visual crossing?

Publié : 22 janv. 2025, 23:21
par jeje
Bonsoir je pense que tu devrais essayer ceci:

cloudcoverhour14h = jsonValeur.days[1].cloudcover[13] avec comme requête :

https: //weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/Lat,Long/2025-01-23/?unitGroup=metric&lang=fr&key=MaClé&contentType=json&elements=cloudcover&include=hours
.

Tu auras la couverture nuageuse de 14h normalement.

Ta requête te donnera les 24h,j'ai essayer d'avoir juste la section de 14 h dans la requête mais ça ne marche pas ,donc tu dois prendre le jour complet.Par contre j’éviterai de mettre "une date ",je prendrais plutôt "tomorrow ou today "mais ce n'est que mon avis.

Je viens de tester ,ça fonctionne, j'ai ça dans mes logs
LUA: [visualcrossing] verife de couverture nuageuse demain a 14h:100.0

et dans la requête j'avais bien 100% de couverture nuageuse.

Re: Meilleur méthode pour récupérer valeur visual crossing?

Publié : 23 janv. 2025, 10:07
par Dreamer
Merci pour ta recherche et proposition. J'ai actualisé mon script mais j'ai toujours l'erreur "attempt to index a nil value (field 'cloudcover')".

Ma base de script est elle correcte? :

Code : Tout sélectionner

config=assert(io.popen('/usr/bin/curl "https://weather.visualcrossing.com/VisualCrossingWebServices/rest/services/timeline/'..lat..','..long..'/today/?unitGroup=metric&lang=fr&key='..api..'&contentType=json&elements=cloudcovert&include=hours"'))
    blocjson = config:read('*all')
    config:close() 
    jsonValeur = json:decode(blocjson)
    cloudcoverhour14h = jsonValeur.days[1].cloudcover[13]

Re: Meilleur méthode pour récupérer valeur visual crossing?

Publié : 23 janv. 2025, 23:08
par jeje
Bonsoir Dreamer, je me suis tromper c'est :

cloudcoverhour14h = jsonValeur.days[1].hours[13].cloudcover

la ça devrais marcher.
Désoler je viens de m'apercevoir de mon erreur.

Re: Meilleur méthode pour récupérer valeur visual crossing?

Publié : 24 janv. 2025, 07:54
par Dreamer
Oui j'avais modifié en ce sens hier mais j'ai toujours l'erreur "attempt to index a nil value" avec cette partie du script en place :

Code : Tout sélectionner

 
cloudcoverhour14h = jsonValeur.days[1].hours[13].cloudcover
commandArray[cloudcoverhour14hIdx] = { ['UpdateDevice'] = cloudcoverhour14hIdx..'|0|'..cloudcoverhour14h}
:roll:

Re: Meilleur méthode pour récupérer valeur visual crossing?

Publié : 24 janv. 2025, 11:04
par jeje
Essai de faire un print de ce que tu récupére de la requête.

Re: Meilleur méthode pour récupérer valeur visual crossing?

Publié : 24 janv. 2025, 11:13
par Dreamer
En glissant ce "print('cloudcoverhour14h = '..cloudcoverhour14h)", j'obtiens l'erreur identique au Log : "attempt to concatenate a nil value (global 'cloudcoverhour14h')"

Re: Meilleur méthode pour récupérer valeur visual crossing?

Publié : 24 janv. 2025, 11:37
par jeje
Enleve le t à cloudcover dans ta requête et ça devrait aller.

Re: Meilleur méthode pour récupérer valeur visual crossing?

Publié : 24 janv. 2025, 11:43
par Dreamer
Ah oui, effectivement en enlevant cette coquille je récupère la valeur et cela s'affiche bien dans le Log ;) .
Merci d'avoir pris le temps de te pencher sur mon script :P

Re: Meilleur méthode pour récupérer valeur visual crossing?

Publié : 24 janv. 2025, 11:49
par jeje
De rien j'en fait aussi quelquefois :D .