Page 1 sur 1

Récuperer une UserVariable du Json en Lua

Publié : 05 janv. 2020, 17:24
par Matthieu
Bonjour

J'essai de récupérer une Variable utilisateur par le json en Lua. mais je bloque.
voici mon bout de code inspiré par ce que j'ai pu trouver sur le forum.

Code : Tout sélectionner

function jsonInfos()
  json = assert(loadfile '/home/pi/domoticz/scripts/lua/JSON.lua')()
  local config=assert(io.popen('/usr/bin/curl "http://MONADRESSEIP.PORT/json.htm?type=command&param=getuservariable&idx=10"'))
  local blocjson = config:read('*all')
   config:close()
  return json:decode(blocjson)
end

commandArray = {}
if (devicechanged['BootVolet'] == 'On') then
	print('Interrupteur Volet Sud à rebooté') 
	local mavariable = jsonInfos()
	print(mavariable)
	commandArray['BootVolet']='Off'
end
return commandArray
J'ai bien le premier print dans les logs avec le texte.
Je n'arrive pas a avoir le print de mavariable.

Merci d'avance de votre aide.
Matthieu

Re: Récuperer une UserVariable du Json en Lua

Publié : 05 janv. 2020, 17:44
par denis_brasseur
Je ne comprend pas ta notion de "récupérer une Variable utilisateur par le json en Lua".
En LUA, tu peux utiliser ceci :

Code : Tout sélectionner

uservariables['ma_variable']

Re: Récuperer une UserVariable du Json en Lua

Publié : 05 janv. 2020, 17:57
par Matthieu
denis_brasseur a écrit : 05 janv. 2020, 17:44 Je ne comprend pas ta notion de "récupérer une Variable utilisateur par le json en Lua".
En LUA, tu peux utiliser ceci :

Code : Tout sélectionner

uservariables['ma_variable']
Effectivement c'est plus simple... je vais utiliser ça. Merci.

Mais quand même si quelqu'un peu m'expliquer ou est la boulette dans mon code je me coucherai moins bête...

Re: Récuperer une UserVariable du Json en Lua

Publié : 05 janv. 2020, 18:37
par denis_brasseur
Lis cet article dans sa totalité

Les variables au travers de JSON

Code : Tout sélectionner

/json.htm?type=command&param=getuservariable&idx=IDX

Re: Récuperer une UserVariable du Json en Lua

Publié : 05 janv. 2020, 19:34
par lmet
Matthieu a écrit : 05 janv. 2020, 17:57 Mais quand même si quelqu'un peu m'expliquer ou est la boulette dans mon code je me coucherai moins bête...
Salut,
D'accord avec Denis, il y a vraiment plus simple. Dans ton code initial, la fonction renvoie un tableau qu'il faut "parser"

Code : Tout sélectionner

…
jsonValeur = json:decode(blocjson)
return json:decode(jsonValeur.result[1].Value)
…
local mavariable = jsonInfos()
print(mavariable)

Re: Récuperer une UserVariable du Json en Lua

Publié : 05 janv. 2020, 20:56
par Matthieu
lmet a écrit : 05 janv. 2020, 19:34
Matthieu a écrit : 05 janv. 2020, 17:57 Mais quand même si quelqu'un peu m'expliquer ou est la boulette dans mon code je me coucherai moins bête...
Salut,
D'accord avec Denis, il y a vraiment plus simple. Dans ton code initial, la fonction renvoie un tableau qu'il faut "parser"

Code : Tout sélectionner

…
jsonValeur = json:decode(blocjson)
return json:decode(jsonValeur.result[1].Value)
…
local mavariable = jsonInfos()
print(mavariable)
Merci ça fonctionne avec tes modifs.

J'ai changé pour la méthode plus simple mais je garde le bout de code pour une autre utilisation.
Merci de votre aide