recupere valeur json et update device via jq

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
QcVictor
Messages : 79
Inscription : 17 janv. 2015, 14:52

Re: recupere valeur json et update device via jq

Message 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
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: recupere valeur json et update device via jq

Message 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
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
QcVictor
Messages : 79
Inscription : 17 janv. 2015, 14:52

Re: recupere valeur json et update device via jq

Message 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
jackslayter
Messages : 1040
Inscription : 30 sept. 2014, 14:40
Localisation : Isère (38)

Re: recupere valeur json et update device via jq

Message par jackslayter »

ah mieux ça marche mieux :lol:
Raspberry Pi + RFLink + Domoticz Beta
Oregon - 3x Thgr122Nx / Chacon - micromodule 200w, télécommande 3b et 16b, 2x module 1000w, détecteur de fumée, contact de porte, 2x prise 3500w / OWL - CM180 / TRC02 v2 RGB 3M / Cheap - PIR, contact de porte
QcVictor
Messages : 79
Inscription : 17 janv. 2015, 14:52

Re: recupere valeur json et update device via jq

Message par QcVictor »

Un petit coup de main pour le reste !
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: recupere valeur json et update device via jq

Message par landaisbenj »

Recolle le reste du script mais je crois que je te l'ai expliqué plus haut.
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
QcVictor
Messages : 79
Inscription : 17 janv. 2015, 14:52

Re: recupere valeur json et update device via jq

Message 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.
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: recupere valeur json et update device via jq

Message par landaisbenj »

Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
QcVictor
Messages : 79
Inscription : 17 janv. 2015, 14:52

Re: recupere valeur json et update device via jq

Message 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
QcVictor
Messages : 79
Inscription : 17 janv. 2015, 14:52

Re: recupere valeur json et update device via jq

Message 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
Répondre