On va pouvoir avancer
Je pense que ton problème est que tu demandes une valeur de v, mais tu en as plusieurs possibles dans le Json.
Qu'est ce que cela donne si tu essayes :
Code : Tout sélectionner
cumul_jour = jsonValeur.[1].vCode : Tout sélectionner
cumul_jour = jsonValeur.[1].vCode : Tout sélectionner
config= assert(io.popen (curl.."http://raspberrypi:8080/json.htm?type=graph&sens$Code : Tout sélectionner
cumul_jour = jsonValeur.[1].v Code : Tout sélectionner
cumul_jour = jsonValeur.result[1].vCode : Tout sélectionner
cumul_jour = jsonValeur.result[1]["v"]Code : Tout sélectionner
{
"ValueQuantity": "",
"ValueUnits": "",
"counter": "4096.038",
"result": [
{
"c": "3905.098",
"d": "2021-03-31",
"v": "15.700"
},Code : Tout sélectionner
const json = '{"ValueQuantity": "","ValueUnits": "","counter": "4096.038","result": [{"c": "3905.098","d": "2021-03-31","v": "15.700"}],"status": "OK","title": "Graph counter month"}';
const obj = JSON.parse(json);
console.log(obj.result[0].v);Code : Tout sélectionner
json = (loadfile "/home/kan/domoticz/scripts/lua/JSON.lua")()
commandArray = {}
curl='/usr/bin/curl -m 15 '
config= assert(io.popen (curl.."http://raspberrypi:8080/json.htm?type=graph&sensor=counter&idx=9&range=month"))
blocjson = config:read ('*all')
config:close()
jsonValeur = json:decode(blocjson)
--print (jsonValeur)
cumul_jour = jsonValeur.result[1]"[v]"
msg = 'le cumul production du jour est'..cumul_jour..'kWh'
print (msg)
return commandArray
L'erreur t'indique a Nil Value car le résultat de la recherche Json est vide. Ton Json aurait result écrit entre "", ça fonctionnerait. Et je n'ai pas trouvé d'exemple avec result sans guillementsknasson a écrit : 14 avr. 2021, 10:05 tout se passe comme si "result" était interprété comme une variable vide. Peut être a t il besoin d'être défini?
Code : Tout sélectionner
curl -s "http://raspberrypi:8080/json.htm?type=graph&sensor=counter&idx=9&range=week" | jq .result[7].vCode : Tout sélectionner
commandArray = {}
nrj_jour = os.execute("curl -s 'http://raspberrypi:8080/json.htm?type=graph&sensor=counter&idx=9&range=week' | jq .result[7].v")
euro_jour= nrj_jour*uservariables[prixKWh]
msg = 'la valeur euro du jour est'..euro_jour..'Euros'
print (msg)
return commandArray
Code : Tout sélectionner
2021-04-17 16:46:38.690 Error: EventSystem: in /home/kan/domoticz/scripts/lua/script_device_compteurjour.lua: .../kan/domoticz/scripts/lua/script_device_compteurjour.lua:3: attempt to perform arithmetic on a boolean value (global 'nrj_jour')