Sortir d un script lua sous condition
Publié : 11 nov. 2017, 13:42
Bonjour,
J'ai fait un script permettant de changer de chaines et autre sur la freebox avec google home.
Je rencontre un problème, je passe par ifttt pour envoyer à domoticz du texte, exemple "mets TF1", le script fonctionne parfaitement.
j'alimente une variable utilisateur ["freebox"] de domoticz avec la chaine de caractère d'ifttt, dès qu'une variable utilisateur est modifié, cela lance mon script_variable_freebox.lua
Si je n'utilise que la variable utilisateur ["freebox"] tout fonctionne, en revanche si j'ajoute une variable utilisateur exemple ["temp"] qui correspond à la temperature d'une de mes sondes et que je la mets à jour à chaque intérogation de la sonde soit toutes les 10s, cela déclanche également mon script
script_variable_freebox.lua, ce qui est logique car ces scripts se déclanche sur la modification d'une uservariable, ce qui aura pour effet de relancer le script ce que je ne souhaite pas, car je veux le déclancher uniquement si la variable ["freebox"] est modifée.
J'ai donc voulu vider la variable ["freebox"] en fin de script, une fois que la chaine est modifié et j'ai mis une condition en début de script afin que le script soit arreté si la variable ["freebox"] est vide, mais cela ne fonctionne pas, j'ai surement un probleme de synthaxe.
en début de script :
Mais la variable ifttt reste toujours avec la valeur précédente, donc dans mon exemple, toujours égale à "mets TF1".
Je suppose que je vide mal la variable ["freebox"] en fin de script, j'ai tenté avec un :
mais cela fait tourner le script en rond et ifttt ne prends pas la valeur de raz.
Je ne parviens pas à trouver une commande lua pour vider la variable ["freebox"]
Une petite aide serait la bienvenue
Ps: je ne veux pas de solution de contournement du type, utilise qu'une seule variable
, je sais que je peut faire autrement pour ma variable température, mais je ne le souhaite pas, car cela me servira pour d'autres choses.
J'ai fait un script permettant de changer de chaines et autre sur la freebox avec google home.
Je rencontre un problème, je passe par ifttt pour envoyer à domoticz du texte, exemple "mets TF1", le script fonctionne parfaitement.
j'alimente une variable utilisateur ["freebox"] de domoticz avec la chaine de caractère d'ifttt, dès qu'une variable utilisateur est modifié, cela lance mon script_variable_freebox.lua
Si je n'utilise que la variable utilisateur ["freebox"] tout fonctionne, en revanche si j'ajoute une variable utilisateur exemple ["temp"] qui correspond à la temperature d'une de mes sondes et que je la mets à jour à chaque intérogation de la sonde soit toutes les 10s, cela déclanche également mon script
script_variable_freebox.lua, ce qui est logique car ces scripts se déclanche sur la modification d'une uservariable, ce qui aura pour effet de relancer le script ce que je ne souhaite pas, car je veux le déclancher uniquement si la variable ["freebox"] est modifée.
J'ai donc voulu vider la variable ["freebox"] en fin de script, une fois que la chaine est modifié et j'ai mis une condition en début de script afin que le script soit arreté si la variable ["freebox"] est vide, mais cela ne fonctionne pas, j'ai surement un probleme de synthaxe.
en début de script :
Code : Tout sélectionner
ifttt=uservariables["freebox"]
ifttt=string.lower(ifttt)
print("valeur de debut"..ifttt)
if ifttt=="" or ifttt== nil then
print("sortie du script")
os.exit()
endJe suppose que je vide mal la variable ["freebox"] en fin de script, j'ai tenté avec un :
Code : Tout sélectionner
raz=""
os.execute('sudo curl -s "http://ip:port/json.htm?type=command¶m=updateuservariable&id=1&vname=freebox&vtype=2&vvalue="'..raz)
Je ne parviens pas à trouver une commande lua pour vider la variable ["freebox"]
Une petite aide serait la bienvenue
Ps: je ne veux pas de solution de contournement du type, utilise qu'une seule variable