Aller au contenu
Domotique-Home

Tableau Dans Une Variable Globale

Recommended Posts

Bonjour je cherche a placer un tableau dans une variable globale.

Avez vous une idée ?

 

J'ai créée une variable "mon_tableau" = 1,2,3,4,5,60

et je voudrais la récupérer dans le code LUA comme un tableau pour récupérer une valeur. 

Exemple:

 

local mon_tableau = fibaro:getGlobal('mon_tableau');
local devices = {mon_tableau};
fibaro:debug(devices[2]);
 
bien sur l'exemple me retourne une erreur de type
[ERROR] 21:42:20: line :debug (arg 2), expected 'string const &' got 'nil'
 
 
Merci pour votre aide.

 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu peux malheureusement stocké que des chaînes de caractères

Tu peux les stocker sous forme de chaîne avec un séparateur "," ou autre puis les "spliter" pour récupérer un tableau


function split(text, sep)
		local sep, fields = sep or ":", {}
		local pattern = string.format("([^%s]+)", sep)
		text:gsub(pattern, function(c) fields[#fields+1] = c end)
		return fields
end

local mon_tableau  = "1,2,3,4,5,60"
local devices = split(mon_tableau, ",")

fibaro:debug(devices[2])
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

En fin de compte ... il y a plus simple :)

 

json est notre ami

local tableau = {1,2,3,4,5}
 
-- pour stocker
fibaro:setGlobal("mon_tableau", json.encode(tableau))
fibaro:sleep(2000)
 
-- pour récupérer
local mon_tableau = fibaro:getGlobal("mon_tableau");
local devices = json.decode(mon_tableau);
fibaro:debug(devices[4]);
  • Upvote 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Je déterre le sujet, il n'y a toujours pas plus simple pour stocker un tableau en variable globale ?

Partager ce message


Lien à poster
Partager sur d’autres sites

Bah si on avait un truc du genre ce serait encore plus simple !

local tableau = {0,1,2,3}

fibaro:setGlobal("mon_tableau", tableau)

Partager ce message


Lien à poster
Partager sur d’autres sites

Ben oui, mais ça marche pas.

Tu peux faire "0,1,2,3" mais àtoi après de décortiquer la chose. :)

Donc, au final, c'est plus compliqué !!!

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai fait comme plus haut avec le json mais bon c'est con, faudrait leur soumettre l'idée :)

Partager ce message


Lien à poster
Partager sur d’autres sites

×