Domotique-Home 38 Signaler ce message Posté(e) 22 mai 2014 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. 1 Partager ce message Lien à poster Partager sur d’autres sites
Steven 2 335 Signaler ce message Posté(e) 22 mai 2014 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]) 1 Partager ce message Lien à poster Partager sur d’autres sites
Domotique-Home 38 Signaler ce message Posté(e) 22 mai 2014 Merci @Steven justement j'utilise déjà le split mais je voulais savoir si il y avais un moyen plus cour Partager ce message Lien à poster Partager sur d’autres sites
Domotique-Home 38 Signaler ce message Posté(e) 22 mai 2014 Par contre je trouve ta fonction mieux que la mienne je vais la reprendre, merci 1 Partager ce message Lien à poster Partager sur d’autres sites
Steven 2 335 Signaler ce message Posté(e) 6 juin 2014 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]); 2 Partager ce message Lien à poster Partager sur d’autres sites
Domotique-Home 38 Signaler ce message Posté(e) 6 juin 2014 oui, excellent je n'ai pas pensé a json merci Partager ce message Lien à poster Partager sur d’autres sites
BenjyNet 1 200 Signaler ce message Posté(e) 7 novembre 2015 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
Domotique-Home 38 Signaler ce message Posté(e) 7 novembre 2015 Je trouve que json est la solution la plus simple Partager ce message Lien à poster Partager sur d’autres sites
BenjyNet 1 200 Signaler ce message Posté(e) 7 novembre 2015 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
Berale64 630 Signaler ce message Posté(e) 7 novembre 2015 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
BenjyNet 1 200 Signaler ce message Posté(e) 7 novembre 2015 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