[LUA] Bibliothèque de fonctions
Re: bibliothèque de fonctions pour scripts LUA
non j'ai confondu dzvents et lua
comme tu l'as remarqué c'est du dzvents
vais l'adapter en lua
comme tu l'as remarqué c'est du dzvents
vais l'adapter en lua
Re: bibliothèque de fonctions pour scripts LUA
la fonction lua :
j'ai modifié mon message précédent pour que l'on ne puisse pas se tromper
Code : Tout sélectionner
function telegram(msg)
commandArray[#commandArray+1] = {['OpenURL'] = 'https://api.telegram.org/bot'..TELEGRAM_API_key..'/sendMessage?chat_id='..chat_ID .. '&text=' .. msg}
end-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: bibliothèque de fonctions pour scripts LUA
bien pratique
merci
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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
-
landaisbenj
- Messages : 695
- Inscription : 12 mars 2017, 19:24
Re: bibliothèque de fonctions pour scripts LUA
Hello.
Je tente de créer cette fonction:
Sauf qu'il a pas l'air d’apprécier le io.popen d'os.capture avec l'api.
Apres recherche il n'aime pas attendre:
Me retour ca:
On dirait que la reponse se fait trop attendre vu que je retir le &. Le script tourne plus de 10s et donc plante. Une idée d'ou ça peut provenir ? Ou comment je pourrais éviter l'attente tout en ayant la réponse ?
Pour info si je la test en ligne de commande depuis le pi, la réponse est immédiate. C'est étonnant que la commande via domoticz plante...
Je tente de créer cette fonction:
Code : Tout sélectionner
function makeVariable(name,value)
local url = 'curl '..domoticzURL..'/json.htm?type=command¶m=saveuservariable&vname='..url_encode(name)..'&vtype=2&vvalue='..url_encode(value)
local output = json:decode(os.capture(url, false))
if output.status=="Variable name already exists!" then
log('Variable existante',debug)
local url = 'curl '..domoticzURL..'/json.htm?type=command¶m=updateuservariable&vname='..url_encode(name)..'&vtype=2&vvalue='..url_encode(value)
local output = json:decode(os.capture(url, false))
if output.status=="Ok" then
log('Mise a jour variable existante')
else
error('Mise a jour de variable existante impossible')
end
elseif output.status=="Ok!" then
log('Creation de variable avec les parametres')
else
error('Creation de variable impossible')
end
endApres recherche il n'aime pas attendre:
Code : Tout sélectionner
script = ' [Test] ' ; commandArray={}
if devicechanged['Bouton Test']=='On' then
print('\n--------------------------------------------- '..script..' --------------------------------------------------------')
print('Debut de test')
os.execute( 'curl "http://192.168.0.38:8080/json.htm?type=command¶m=updateuservariable&vname=Libre1&vtype=2&vvalue=TEST1"' )
print('Fin de test')
end
return commandArray--------------------------------------------- [Test] --------------------------------------------------------
2018-03-21 09:23:04.426 dzVents: Debut de test
2018-03-21 09:23:14.424 Error: EventSystem: Warning!, lua script *** LUA: Test has been running for more than 10 seconds
On dirait que la reponse se fait trop attendre vu que je retir le &. Le script tourne plus de 10s et donc plante. Une idée d'ou ça peut provenir ? Ou comment je pourrais éviter l'attente tout en ayant la réponse ?
Pour info si je la test en ligne de commande depuis le pi, la réponse est immédiate. C'est étonnant que la commande via domoticz plante...
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: bibliothèque de fonctions pour scripts LUA
pourquoi ne pas simplement tester l’existence de la variable directement ?
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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
-
landaisbenj
- Messages : 695
- Inscription : 12 mars 2017, 19:24
Re: bibliothèque de fonctions pour scripts LUA
Par ce que je ne sais pas comment faire
?
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: bibliothèque de fonctions pour scripts LUA
regarde à la fin de modules.lua, la fonction compute, un teste y est effectué avant de créer ou non les variables utiles à la fonction
Dernière modification par vil1driver le 21 mars 2018, 15:39, modifié 1 fois.
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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
-
landaisbenj
- Messages : 695
- Inscription : 12 mars 2017, 19:24
Re: bibliothèque de fonctions pour scripts LUA
A ok. Donc c'est bien ce que j'avais voulu faire au debut:
Mais si la variable est créé et vide ?
Code : Tout sélectionner
if uservariables['Test'] == nil then Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: bibliothèque de fonctions pour scripts LUA
vide n'est pas inexistant (nil)
de plus ce n'est pas permis
de plus ce n'est pas permis
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
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
-
landaisbenj
- Messages : 695
- Inscription : 12 mars 2017, 19:24
Re: bibliothèque de fonctions pour scripts LUA
A ok ?? Il me semblait avoir faire le test, j'avais du me trompé dans le nom de la variable. Du coup ca fonctionne bien merci.
Par contre j'arrive a faire une variable vide:
Bien merci pour la precision en tout cas je vais pouvoir avancer !!!
[EDIT] Bon ca n'empeche pas que le script crash si je fais l'os.execute mais j'ai ouvert un post sur le fofo us...
Par contre j'arrive a faire une variable vide:
Code : Tout sélectionner
commandArray['Variable:Libre3']=''[EDIT] Bon ca n'empeche pas que le script crash si je fais l'os.execute mais j'ai ouvert un post sur le fofo us...
Rpbi3b: Domoticz + Homebridge + Monit + Freebox scripts + Shellinabox; Rpbi2: Jarvis
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway
Domoticz: Derniere stable; RFLINK: Dernière stable; Xiaomi Gateway