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 :oops: 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 :lol:

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&param=udevice&idx=1&nvalue=0&svalue='..stateS' " ')
--os.execute('curl "http://10.0.0.171:8080/json.htm?type=command&param=udevice&idx=1&nvalue=0&svalue='..tostring(stateS)' " ')
Avec os.execute('curl "http://10.0.0.171:8080/json.htm?type=command&param=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&param=udevice&idx=1&nvalue=0&svalue="..stateS..""}
end			
return commandArray
Ça fonctionne :D