Même erreur avec ou sans le print, oui le fichier JSON.lua est bien la et a la bonne placejackslayter 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
recupere valeur json et update device via jq
Re: recupere valeur json et update device via jq
-
jackslayter
- Messages : 1040
- Inscription : 30 sept. 2014, 14:40
- Localisation : Isère (38)
Re: recupere valeur json et update device via jq
essai ce script et donne nous le log
script en lua Time
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 commandArrayRaspberry 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
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
Re: recupere valeur json et update device via jq
Ok my bad
curl étais pas installé....
Donc manque plus que la partie update virtual device
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 -
jackslayter
- Messages : 1040
- Inscription : 30 sept. 2014, 14:40
- Localisation : Isère (38)
Re: recupere valeur json et update device via jq
ah mieux ça marche mieux 
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
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
Re: recupere valeur json et update device via jq
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
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
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Re: recupere valeur json et update device via jq
hummm voie rien qui ressemble a cela, puis la vient de tomber en lua du coup.... m'en manque un bout.landaisbenj a écrit :Recolle le reste du script mais je crois que je te l'ai expliqué plus haut.
-
landaisbenj
- Messages : 695
- Inscription : 12 mars 2017, 19:24
Re: recupere valeur json et update device via jq
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Re: recupere valeur json et update device via jq
j'ai essayer comme cela:
Avec un os.execute('curl "http://10.0.0.171:8080/json.htm?type=co ... ='..stateS' " ')
et un os.execute('curl "http://10.0.0.171:8080/json.htm?type=co ... ng(stateS)'
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 commandArrayCode : 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)Code : Tout sélectionner
2018-06-16 06:16:00.120 Error: EventSystem: in watt: [string "commandArray = {}..."]:11: attempt to call a string valueRe: recupere valeur json et update device via jq
A force de persévérance:
Ça fonctionne 
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