Page 2 sur 3
Re: recupere valeur json et update device via jq
Publié : 15 juin 2018, 10:38
par QcVictor
jackslayter a écrit :enlève les -- de la ligne -- print (blocjson)
si il y a rien ou une erreur regarde si tu as bien le fichier JSON.lua dans /home/pi/domoticz/scripts/lua/ sinon mets le bon chemin
sinon colle le résultat ici
Même erreur avec ou sans le print, oui le fichier JSON.lua est bien la et a la bonne place
Re: recupere valeur json et update device via jq
Publié : 15 juin 2018, 10:57
par jackslayter
essai ce script et donne nous le log
script en lua Time
Code : Tout sélectionner
commandArray = {}
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()
local config=assert(io.popen('/usr/bin/curl -m 5 http://10.0.0.14:8123/api/states/sensor.hydroquebec_period_mean_daily_consumption'))
local blocjson = config:read('*all')
config:close()
print(blocjson)
return commandArray
Re: recupere valeur json et update device via jq
Publié : 15 juin 2018, 12:09
par QcVictor
Ok my bad

curl étais pas installé....
Code : Tout sélectionner
2018-06-15 06:24:00.135 LUA: {"attributes": {"friendly_name": "HydroQuebec Period mean daily consumption", "icon": "mdi:flash", "unit_of_measurement": "kWh"}, "entity_id": "sensor.hydroquebec_period_mean_daily_consumption", "last_changed": "2018-06-15T09:25:49.262847+00:00", "last_updated": "2018-06-15T09:25:49.262847+00:00", "state": "89.3"}
2018-06-15 06:24:00.135 LUA: 89.3
Donc manque plus que la partie update virtual device
Re: recupere valeur json et update device via jq
Publié : 15 juin 2018, 14:02
par jackslayter
ah mieux ça marche mieux

Re: recupere valeur json et update device via jq
Publié : 15 juin 2018, 19:10
par QcVictor
Un petit coup de main pour le reste !
Re: recupere valeur json et update device via jq
Publié : 15 juin 2018, 22:21
par landaisbenj
Recolle le reste du script mais je crois que je te l'ai expliqué plus haut.
Re: recupere valeur json et update device via jq
Publié : 15 juin 2018, 22:33
par QcVictor
landaisbenj a écrit :Recolle le reste du script mais je crois que je te l'ai expliqué plus haut.
hummm voie rien qui ressemble a cela, puis la vient de tomber en lua du coup.... m'en manque un bout.
Re: recupere valeur json et update device via jq
Publié : 15 juin 2018, 23:01
par landaisbenj
Re: recupere valeur json et update device via jq
Publié : 16 juin 2018, 12:24
par QcVictor
j'ai essayer comme cela:
Code : Tout sélectionner
commandArray = {}
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()
local config=assert(io.popen('/usr/bin/curl -m 5 http://10.0.0.14:8123/api/states/sensor.hydroquebec_period_mean_daily_consumption'))
local blocjson = config:read('*all')
config:close()
print (blocjson)
local jsonValeur = json:decode(blocjson)
stateS = jsonValeur.state
print (stateS)
os.execute('curl "http://10.0.0.171:8080/json.htm?type=command¶m=udevice&idx=1&nvalue=0&svalue='..stateS' " ')
--os.execute('curl "http://10.0.0.171:8080/json.htm?type=command¶m=udevice&idx=1&nvalue=0&svalue='..tostring(stateS)' " ')
Avec os.execute('curl "http://10.0.0.171:8080/json.htm?type=command¶m=udevice&idx=1&nvalue=0&svalue='..stateS' " ')return commandArray
Avec un os.execute('curl "
http://10.0.0.171:8080/json.htm?type=co ... ='..stateS' " ')
Code : Tout sélectionner
2018-06-16 06:17:00.262 Error: EventSystem: in watt: [string "commandArray = {}..."]:10: attempt to call global 'stateS' (a string value)
et un os.execute('curl "
http://10.0.0.171:8080/json.htm?type=co ... ng(stateS)'
Code : Tout sélectionner
2018-06-16 06:16:00.120 Error: EventSystem: in watt: [string "commandArray = {}..."]:11: attempt to call a string value
Re: recupere valeur json et update device via jq
Publié : 16 juin 2018, 23:15
par QcVictor
A force de persévérance:
Code : Tout sélectionner
commandArray = {}
json = (loadfile "/home/pi/domoticz/scripts/lua/JSON.lua")()
local config=assert(io.popen('/usr/bin/curl -m 5 http://10.0.0.14:8123/api/states/sensor.hydroquebec_yesterday_lower_price_consumption'))
local blocjson = config:read('*all')
config:close()
print (blocjson)
local jsonValeur = json:decode(blocjson)
stateS = jsonValeur.state
print (stateS)
if (jsonValeur ~= nil) then
commandArray[#commandArray + 1]={['OpenURL']="http://10.0.0.171:8080/json.htm?type=command¶m=udevice&idx=1&nvalue=0&svalue="..stateS..""}
end
return commandArray
Ça fonctionne
