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 :

Code : Tout sélectionner

tab_print(commandArray)

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.

Code : Tout sélectionner

Essaie print( next(commandAray[1]) )
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)