Récuperer une UserVariable du Json en Lua

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 <\>.
Matthieu
Messages : 20
Inscription : 31 janv. 2019, 23:11

Récuperer une UserVariable du Json en Lua

Message 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
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: Récuperer une UserVariable du Json en Lua

Message 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']
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
Matthieu
Messages : 20
Inscription : 31 janv. 2019, 23:11

Re: Récuperer une UserVariable du Json en Lua

Message 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...
denis_brasseur
Messages : 898
Inscription : 24 déc. 2018, 17:05
Localisation : (26)

Re: Récuperer une UserVariable du Json en Lua

Message 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
Pi3 + DD PiDrive - RFXtrx433 - AEON Labs ZW090
lmet
Messages : 252
Inscription : 30 juin 2017, 18:16
Localisation : Val d'Oise
Contact :

Re: Récuperer une UserVariable du Json en Lua

Message 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)
Domoticz : V4.10717
Zigate : V4.11230 plugin:4.5.4 firmware:031a
Mon petit blog domotique
Matthieu
Messages : 20
Inscription : 31 janv. 2019, 23:11

Re: Récuperer une UserVariable du Json en Lua

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