en lua est-il possible de ?

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 <\>.
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

en lua est-il possible de ?

Message par papoo »

bonjour,
en lua est-il possible de transformer dynamiquement le contenu d'une variable en nom de variable dans une boucle?
je souhaite, dans une boucle for, concaténer la mention jsonValeur avec le nom d'un élément contenu dans un tableau pour alimenter une variable
si resultat_tableau = variable_a
je voudrais concaténer Jsonvaleur. et resultat_tableau pour faire
ma_nouvelle_variable = jsonValeur.variable_a
savez vous si cela est possible? je ne trouve rien, la mention Lua étant trop générique pour les moteurs de recherche
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: en lua est-il possible de ?

Message par vil1driver »

Salut,

pas certain de bien comprendre

je dirais

Code : Tout sélectionner

ma_nouvelle_variable = jsonValeur[variable_a]
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
domcars0
Messages : 238
Inscription : 18 févr. 2017, 20:23

Re: en lua est-il possible de ?

Message par domcars0 »

En lua, je pense que c'est comme en C, impossible d'avoir des noms de variable 'dynamiques'.Il te faut trouver une autre manière de faire.
La liberté a un prix... celui de l'effort.
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: en lua est-il possible de ?

Message par papoo »

vil1driver a écrit :Salut,

pas certain de bien comprendre

je dirais

Code : Tout sélectionner

ma_nouvelle_variable = jsonValeur[variable_a]
j'avais essayé sans succés
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
vil1driver
Messages : 5661
Inscription : 30 janv. 2015, 11:07
Localisation : Rennes (35)

Re: en lua est-il possible de ?

Message par vil1driver »

Tu aurais un exemple de contenu ?
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua

Un ex domoticzien
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: en lua est-il possible de ?

Message par papoo »

j'ai trouvé le moyen de contourner le problème
j'arrive à générer le nom dynamiquement dans une boucle for avec

Code : Tout sélectionner

 _G[le résultat de ma boucle]
il faut par contre ne pas déclarer les variables en local

ça donne ça

Code : Tout sélectionner

local les_devices = {};
les_devices[#les_devices+1] = {device = "qtemois" , nom = "Consommation mois en cours"} -- 1er device
les_devices[#les_devices+1] = {device = "prixmois" , nom = "Coût mensuel"} -- 2éme device
les_devices[#les_devices+1] = {device = "tendance" , nom = "Tendance"} -- 3éme device

            qtemois = jsonValeur.qtemois
            prixmois = jsonValeur.prixmois
            tendance = jsonValeur.tendance

            for k,v in pairs(les_devices) do
                local variable = tostring(_G[v.device])
print(variable)
           end
                
si il y a mieux je suis preneur
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
landaisbenj
Messages : 695
Inscription : 12 mars 2017, 19:24

Re: en lua est-il possible de ?

Message par landaisbenj »

Montre un exemple a l’écris de avant et de après.

Genre si tu as une variable:

local variable = 'test'
print(variable) >test
que veux tu faire ?

print(jsonValeur..variable) >test
ou
print(variable) >jsonValeurtest

ou autre chose ?
jsonValeur c'est une chaine ou une variable ?
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
papoo
Messages : 2029
Inscription : 10 janv. 2016, 11:29
Localisation : Limoges (87)
Contact :

Re: en lua est-il possible de ?

Message par papoo »

j'ai contourné le problème avec la solution au dessus pour ce script
https://easydomoticz.com/forum/viewtopi ... ets#p51452
domoticz beta/RaspBerry PI3 stretch
https://pon.fr github
Répondre