Page 6 sur 8
Re: bibliothèque de fonctions pour scripts LUA
Publié : 21 mars 2018, 16:34
par landaisbenj
Bon j'ai créé ma fonction je testerai plus tard. Dommage de ne pas avoir le retour de la commande quand meme:
Code : Tout sélectionner
function makeVar(name,value)
if uservariables[name]==nil then
local url = 'curl '..domoticzURL..'/json.htm?type=command¶m=saveuservariable&vname='..url_encode(name)..'&vtype=2&vvalue='..url_encode(value)
os.capture(url, false)
else
local url = 'curl '..domoticzURL..'/json.htm?type=command¶m=updateuservariable&vname='..url_encode(name)..'&vtype=2&vvalue='..url_encode(value)
os.capture(url, false)
end
end
Et en passant je voyais l'utilisation de tes logs, je voulais proposer la mienne pour ceux qui veulent:
Code : Tout sélectionner
function log(txt,lvl)
if lvl==nil then
print("<font color='green'>" .. script .. ' ' .. txt .. "</font>")
elseif lvl>=3 then
error(script .. ' ' .. txt)
else
if lvl<=debug then
if lvl==1 then
print("<font color='yellow'>" .. script .. ' ' .. txt .. "</font>")
elseif lvl==2 then
print("<font color='red'>" .. script .. ' ' .. txt .. "</font>")
end
end
end
end
Avec debug= le niveau de debug a afficher
et chaques log avec son propre niveau. Un niveau superieur ou egale a 3 pour afficher un erreure systematique, ou sans niveau pour afficher un log systematique.
Le niveau 1 me sert pour des infos et le niveau 2 me sert pour les retours de commande en general.
Re: bibliothèque de fonctions pour scripts LUA
Publié : 11 avr. 2019, 19:19
par vulbas
salut à tous,
j'utilise le script_device_remote.lua pour utiliser des boutons simple appui. donc je veux un appui = on un appui = off.
dans le script ça marche tres bien pour un switch. la ou àa se gatte c'est pour un groupe que j'ai creer dans scenario.
j'arrive à avoir l'allumage mais pas l'extinction.
au passage merci à vil1driver, c'est top
Code : Tout sélectionner
-- script_device_remote.lua
-- chargement des modules (http://easydomoticz.com/forum/viewtopic.php?f=17&t=3940)
dofile('/home/pi/domoticz/scripts/lua/modules.lua')
local debug = false -- true pour voir les logs dans la console log Dz ou false pour ne pas les voir
commandArray = {}
--------------------------------
------ Tableau à éditer ------
--------------------------------
local bt={}
--bt['switch name'] = { 'action On' , 'action Off' }
bt['test']={'switch("Lumiere Garage")'}
bt['test 2']={'groupOn("Lumiere Salon Blanc")','groupOff("Lumiere Salon Blanc")'}
-- etc..
--------------------------------
-- Fin du tableau à éditer --
--------------------------------
for bouton, action in pairs(bt) do
if (devicechanged[bouton] == 'On') then
log('REMOTE: '..bouton..' switched On > '..action[1],debug)
load(action[1])()
break
elseif (devicechanged[bouton] == 'Off') then
log('REMOTE: '..bouton..' switched Off > '..action[2],debug)
load(action[2])()
break
end
end
return commandArray
mon bouton de test 2

- vil1.PNG (10.62 Kio) Consulté 6375 fois
et mon groupe qui envois deux commandes

- vil.PNG (12.99 Kio) Consulté 6375 fois
si vous avez une idée je suis preneur.
Re: bibliothèque de fonctions pour scripts LUA
Publié : 11 avr. 2019, 20:11
par vil1driver
Salut,
Test 2 est un pushOn dont ne passe jamais à Off,
Re: bibliothèque de fonctions pour scripts LUA
Publié : 11 avr. 2019, 20:21
par vulbas
ben mon test 1 est aussi un pushon et il passe bien sur off, du coup je seche.
je devrais choisir on/off du coup ? j'ai testé en on/off pour test 2 et c'est pareil, juste le on fonctionne.
Re: bibliothèque de fonctions pour scripts LUA
Publié : 11 avr. 2019, 20:28
par vil1driver
Ton test 1 n'a qu'une action sur On qui est de changer l'État de la lampe.
A chaque On de test, la lampe passe á On puis Off pui On etc...
Ton groupe fonctionne manuellement ?
Tu pourrais passer debug à true et poster le log de Domoticz ?
Re: bibliothèque de fonctions pour scripts LUA
Publié : 13 avr. 2019, 14:33
par vulbas
merci de te pencher sur mon probleme.
mon group fonctionne bien avec on et off dans DZ
j'ai activé le local debug dans le script
voilà quand je lance un appui sur la TC et mon bouton test2
Code : Tout sélectionner
2019-04-13 14:19:58.506 Status: LUA: REMOTE: test 2 switched On > groupOn("Lumiere Salon Blanc")
2019-04-13 14:19:48.873 Status: User: vulbas initiated a scene/group command
et la un 2eme appui
Code : Tout sélectionner
2019-04-13 14:27:19.496 Status: LUA: REMOTE: test 2 switched On > groupOn("Lumiere Salon Blanc")
2019-04-13 14:27:19.537 Status: User: vulbas initiated a scene/group command
voila pour celui qui fonctionne (test) avec appui sur la tc
Code : Tout sélectionner
2019-04-13 14:28:58.549 Status: LUA: REMOTE: test switched On > switch("Lumiere Garage")
2019-04-13 14:28:58.598 Status: User: vulbas initiated a switch command (530/Lumiere Garage/Toggle)
et le 2eme appui
Code : Tout sélectionner
2019-04-13 14:30:28.279 Status: LUA: REMOTE: test switched On > switch("Lumiere Garage")
2019-04-13 14:30:28.352 Status: User: vulbas initiated a switch command (530/Lumiere Garage/Toggle)
Re: bibliothèque de fonctions pour scripts LUA
Publié : 13 avr. 2019, 16:35
par vil1driver
Tout semble correct
Re: bibliothèque de fonctions pour scripts LUA
Publié : 13 avr. 2019, 19:26
par vulbas
etrange alors....
j'ai fait une video, je ne sais pas si ça va aider mmais bon
https://www.youtube.com/watch?v=vw47UST ... e=youtu.be
Re: bibliothèque de fonctions pour scripts LUA
Publié : 13 avr. 2019, 19:39
par vil1driver
Je me répète mais ton bouton n'envoie que On comme le montre les logs.
Il est donc normal de ne jamais exécuter la commande qui correspond à la réception d'un Off
La seule solution que je vois serait de créer la fonction groupToggle pour qu'à chaque exécution l'état du groupe soit inversé (idem la fonction switch('lampe'))
Re: bibliothèque de fonctions pour scripts LUA
Publié : 13 avr. 2019, 19:49
par vulbas
pourtant ça marche avec mon autre bouton dans DZ, le Switch lampe. . il faudrait donc que mon bouton envois une commande on suivi d'une commande off, donc pas avec le meme code d'envois ?