Page 1 sur 1

Uservriables Lua

Publié : 14 janv. 2015, 15:56
par Jihem
Bonjour
je fais à nouveau appel à votre savoir pour un problème de programmation en Lua.
Je dois mettre à jour une variable utilisateur "Told_CH1" de Domoticz dans un script:

Code : Tout sélectionner

 tempold = tostring(Told_CH1)
        commandArray['Variable:tempold'] = tostring(temp)
Or avec cette formule je mets à jour une variable "tempold" et pas "Told_CH1"
Quelle est la bonne syntaxe pour faire passer ma variable "Told_CH1"
j'espère avoir été clair
Merci d'avance

Re: Uservriables Lua

Publié : 14 janv. 2015, 18:25
par patrice
Toujours pas spécialiste en Lua
mais un

commandArray['Variable:Told_CH1'] = tostring(temp)

tout simple devrait rouler non ?

Re: Uservriables Lua

Publié : 14 janv. 2015, 19:49
par Jihem
Ben non hélas!
Car en fait je veux mettre à jour plusieurs variables à partir d'une table de températures.
temp_Séjour, temp_CH 1, temp_CH2...etc vers told_Séjour, told_CH1..etc avec une variable tempold qui prend successivement les valeurs précédentes.
Ça fonctionnent avec les interrupteurs:

Code : Tout sélectionner

controle = "Ctrl_Séjour" 
commandArray[controle] = "On"
me met bien à jour le switch "Ctrl_Séjour"
mais

Code : Tout sélectionner

tempold = "told_Séjour"
 commandArray['Variable:tempold'] = "25"
me met à jour une variable "tempold" (je l'ai créé pour voir).
il doit y avoir une syntaxe pour que la commande prenne en compte la valeur "told_Séjour" plutôt que le nom "tempold".
Si je fais un print(tempold) j'ai bien "told_séjour" et il n'y a pas d'erreur dans les logs.
J'ai essayé plusieurs syntaxes commandArray['Variable:"tempold"'], commandArray['Variable:..tempold'] sans succès.
Une idée?

Re: Uservriables Lua

Publié : 14 janv. 2015, 21:13
par patrice
Je passe ...

Re: Uservriables Lua

Publié : 15 janv. 2015, 08:05
par jackslayter
essaye de renommer ton script script_device_blabla.lua en script_variable_blabla.lua

Re: Uservriables Lua

Publié : 15 janv. 2015, 10:03
par Jihem
A priori Domoticz n'en veut pas, je ne vois plus le script dans les logs. Même après un restart.

Re: Uservriables Lua

Publié : 16 janv. 2015, 20:59
par Jihem
Bonsoir
au temps pour moi, j'avais oublié que le script était déclenché par "uservariablechanged".
Ceci dit je n'avance pas tellement car j'ai une erreur:

Code : Tout sélectionner

Error: /home/pi/domoticz/scripts/lua/script_variable_essai.lua:5: attempt to call global 'uservariablechanged' (a table value)
j'appelle pourtant bien une variable de ma liste de variable?????

Re: Uservriables Lua

Publié : 21 janv. 2015, 20:26
par hobbe
Jihem a écrit :Bonsoir
au temps pour moi, j'avais oublié que le script était déclenché par "uservariablechanged".
Ceci dit je n'avance pas tellement car j'ai une erreur:

Code : Tout sélectionner

Error: /home/pi/domoticz/scripts/lua/script_variable_essai.lua:5: attempt to call global 'uservariablechanged' (a table value)
j'appelle pourtant bien une variable de ma liste de variable?????
Je pense que tu confonds ta variable de code (tempold) et le variable Domoticz (Told_CH1, told_Séjour, etc.).
Je pense que tu peux concaténer le contenu de tempold avec "Variable:" pourobtenir le nom de la variable Domoticz.

Code : Tout sélectionner

tempold = "Told_CH1"
commandArray["Variable:" .. tempold] = tostring(temp)
tempold = "told_Séjour"
commandArray["Variable:" .. tempold] = "25"
La variable Told_CH1 de Domoticz sera positionnée à la valeur de temp.
La variable told_Séjour de Domoticz sera positionnée à la valeur 25.

Note: je n'ai pas essayé...