Page 1 sur 1
Lister les actions d'un tableau
Publié : 03 mars 2019, 15:38
par domoboy
Hi
A des fins de debuging est-il possible de lister les actions d'un tableau ?
Exemple:
Est-il possible d'afficher dans les logs la liste des actions à venir pour ce type de tableaux ?
Code : Tout sélectionner
commandArray[#commandArray + 1]= {['Lampe'] = 'Off AFTER 5400'}
Merci
Re: Lister les actions d'un tableau
Publié : 07 mars 2019, 13:23
par landaisbenj
Je ne comprend pas trop la fin de la question:
la liste des actions à venir pour ce type de tableaux ?
Met pour imprimer dans les logs c'est print, et pour manipuler un tableau (
tu peux te servir de ca) tu peux renvoyer les differentes ligne du tableau avec le numéro de la ligne ou le nom de la clef exemple:
commandArray[1] renvoi la premiere valeur du tableau
et
commandArray['MonDevice'] renvoi la derniere valeur de MonDevice (ce sera donc celle affecté affecté a MonDevice en fin de script)
Et du coup pour toutes les valeurs d'un tableau il faut juste faire une boucle sur ton print...
Re: Lister les actions d'un tableau
Publié : 10 mars 2019, 20:29
par domoboy
@landaisbenj
Tout d'abord merci pour la réponse
Je me débrouille un peu sur Lua, et j'avais essayé avant de poster ma question ce que tu m'as proposé.
Et donc, si je vais un :
Print(commandArray[1])
Dans les logs, je n'ai rien.
Alors peut être que je n'ai pas posé correctement la question.
J'ai un script qui fait :
Code : Tout sélectionner
commandArray[1]= {['lampe'] = 'On AFTER 1800'}
commandArray[2]= {['lampe'] = 'Off AFTER 5400'}
J'aimerais pouvoir afficher le contenu du tableau, dans les logs ou ailleurs.
Merci par avance.
Re: Lister les actions d'un tableau
Publié : 10 mars 2019, 20:32
par landaisbenj
Normalement c'est ça. Mais après que ces deux commandes soient passées. J'essaie demain pour voir si j'ai raison.
Re: Lister les actions d'un tableau
Publié : 10 mars 2019, 20:37
par denis_brasseur
Essaie ceci, il s'agit d'une fonction à placer en début de ton code
Code : Tout sélectionner
function tab_print(t)
for key,value in pairs(t) do
print(key, value)
end
end
tu l'utilise ensuite comme print() en mettant le nom de ton tableau entre parenthèses, avant return commandArray . Exemple :
Re: Lister les actions d'un tableau
Publié : 10 mars 2019, 20:45
par landaisbenj
Si tu peux. Mais tu as raison, comme il s'agit d'un couple alors il faut jouer sur la clef et la variable.
Tu dois afficher pour la première itération de la table, la clef Ou la variable. Ou faire une boucle effectivement.
EDIT:
Code : Tout sélectionner
clef,valeur = next(commandArray[1])
print('Données :'.. clef ..' ' .. valeur)
Re: Lister les actions d'un tableau
Publié : 10 mars 2019, 22:11
par vil1driver
Salut,
ces commandes
Code : Tout sélectionner
dofile('/home/pi/domoticz/scripts/lua/modules.lua')
log(table_show(commandArray,"commandArray"))
pour
Code : Tout sélectionner
commandArray[1]= {['lampe'] = 'On AFTER 1800'}
commandArray[2]= {['lampe'] = 'Off AFTER 5400'}
produisent ceci
Code : Tout sélectionner
2019-03-11 14:47:02.032 Status: LUA: commandArray = {
2019-03-11 14:47:02.032 [1] = {
2019-03-11 14:47:02.032 ["lampe"] = "On AFTER 1800";
2019-03-11 14:47:02.032 };
2019-03-11 14:47:02.032 [2] = {
2019-03-11 14:47:02.032 ["lampe"] = "Off AFTER 5400";
2019-03-11 14:47:02.032 };
2019-03-11 14:47:02.032 };
2019-03-11 14:47:02.032
Re: Lister les actions d'un tableau
Publié : 11 mars 2019, 12:30
par landaisbenj
Voila comment cibler une des entrée du tableau (pour éviter la boucle):
Code : Tout sélectionner
clef,valeur = next(commandArray[1])
print('Données :'.. clef ..' ' .. valeur)