Je me suis crée un petit script pour la recuperation des infos precipitations de DarkSky en lua.
voici ce que je recupere en JSON (partie qui m'interese seulement)
Code : Tout sélectionner
"latitude": 43.4872,
"longitude": 1.5838,
"timezone": "Europe/Paris",
"offset": 1,
"hourly": {
"summary": "Dégagé durant toute la journée.",
"icon": "clear-day",
"data": [
{
"time": 1480518000,
"summary": "Dégagé",
"icon": "clear-day",
"precipIntensity": 0,
"precipProbability": 0,
"temperature": 11.42,
"apparentTemperature": 11.42,
"dewPoint": 2.73,
"humidity": 0.55,
"windSpeed": 4.71,
"windBearing": 115,
"cloudCover": 0,
"pressure": 1031.25,
"ozone": 290.45
},Code : Tout sélectionner
CommandArray = {}
JSON = (loadfile "/domoticz/scripts/lua/JSON.lua")()
local jsondata=assert(io.popen('curl "https://api.darksky.net/forecast/___cle__api___/43.4872,1.5838?units=auto&lang=fr&exclude=currently,flags"'))
local jsondevices = jsondata:read('*all')
jsondata:close()
local jsonLocation = JSON:decode(jsondevices)
local indexArray=0
for x=2,48,1 do
local pluie=jsonLocation.hourly.data[x].precipProbability
local hour_pluie = jsonLocation.hourly.data[x].time
local intensity_pluie = jsonLocation.hourly.data[x].precipIntensity
local date = os.date("%A %d/%m/%Y %H:%M", hour_pluie)
intensity_pluie=tonumber(intensity_pluie)
pluie=tonumber(pluie)
date=tostring(date)
print(type(intensity_pluie))
print(type(date))
print(intensity_pluie)
print(date)
commandArray[indexArray] = {['UpdateDevice'] = '236|2|'..intensity_pluie..';0'}
indexArray=indexArray+1
-- commandArray[indexArray] = {['Probabilité pluie'] = date}
commandArray[indexArray] = {['UpdateDevice'] = '235|2|'..'date'}
indexArray=indexArray+1
Code : Tout sélectionner
2016-11-30 16:28:01.252 LUA: number
2016-11-30 16:28:01.252 LUA: string
2016-11-30 16:28:01.252 LUA: 0
2016-11-30 16:28:01.252 LUA: Wednesday 30/11/2016 17:00
2016-11-30 16:28:01.252 Error: EventSystem: in Prevision meteo: [string "CommandArray = {}..."]:23: attempt to index global 'commandArray' (a nil value) Code : Tout sélectionner
commandArray[indexArray] = {['UpdateDevice'] = '236|2|'..intensity_pluie..';0'}j'ai essayer de passer en tostring ou tonumber, meme probleme et meme reponse dans le log
Si on pouvait me donner un coup de main, merci d'avance