Page 1 sur 1

exécution impossible d'un code LUA

Publié : 21 févr. 2018, 20:23
par figaro
Bonjour à tous
je débute dans le codage LUA ,j'ai un contact auquel j'essai de même un code il s'agit d'afficher un texte dans un dispositif virtuel ,j'ai copié simplement le code suivant :

- Allumage Lumière Entree.
commandArray = {}
if (devicechanged['cuve'] ) then
commandArray['cuve']='On'
print(' Allumage ' )
http://192.168.X.XX:8080/json.htm?type=command&param=udevice&idx=4&svalue=allumage
end
return commandArray

ce qui est incroyable c'est quand j’enlève la ligne" http ........." j'ai le texte "allumage" qui affiche dans le log de domoticz et quand je place la ligne "http ..........." dans le programme j'ai l'erreur :
2018-02-21 19:53:02.118 Error: EventSystem: in /home/pi/domoticz/scripts/lua/script_device_on.lua: /home/pi/domoticz/scripts/lua/script_device_on.lua:4: expected near '/'

et je n'ai plus "allumage" dans le LOg


je n'ai aucun de mot de passe nul par ,pour le capteur virtuel j'ai choisi comme type de capteur "TEXT"

si une âme charitable peut m’aider , ou si quelqu'un à déjà eu ce problème car la je vais craquer
merci pour votre aide

Re: exécution impossible d'un code LUA

Publié : 21 févr. 2018, 22:29
par Jeff
Pour un texte, regarde le wiki domoticz, rubrique 'Event', ci joint un extrait.
Il ya aussi l'histoire de 2 commandarray ala suite, voir sujet dans ce forum...

Code : Tout sélectionner

commandArray['Switch']='On'
 commandArray['Scene:Livingroom']='On'         -- remember, Scene cannot be turned Off!
 commandArray['Group:Kitchen']='Inactive'
 commandArray['Keyfob']='Group On'
 commandArray['DimmableDevice']='Set Level 50'
 commandArray['Selector']='Set Level: 50'
 commandArray['SendNotification']='subject#body#0'
 commandArray['SendEmail']='subject#body#your@email.com'
 commandArray['OpenURL']='www.yourdomain.com/api/movecamtopreset.cgi' 
 commandArray['Blinds']='On RANDOM 30'
 commandArray['Porch Light']='On FOR 2'
 commandArray['Variable:MyVar']='Some value'
 commandArray['Variable:MyVar']='Some value AFTER 3'
 commandArray[textDeviceIdx] = { ['UpdateDevice'] = textDeviceIdx..'|0|'..'some text' }
 commandArray[tempDeviceIdx] = { ['UpdateDevice'] = tempDeviceIdx..'|0|'..temp }
 commandArray[tempHumDevIdx] = { ['UpdateDevice'] = tempHumDevIdx..'|0|'.. temp ..';'.. hum ..';'.. hum_stat }

Re: exécution impossible d'un code LUA

Publié : 21 févr. 2018, 22:53
par papoo
pour compléter ce que dit Jeff
soit tu utilises les commandes events de domoticz pour mettre à jour ton device

exemple dans ton cas pour un device text :

Code : Tout sélectionner

local textDeviceIdx = 4
local some text = "Allumage"
commandArray[#commandArray+1] = { ['UpdateDevice'] = textDeviceIdx..'|0|'..'some text' }
(note le commandArray[#commandArray+1] qui te permet de t'affranchir de la restriction du nb de commande array comme l’évoque Jeff)


ou bien tu utilise la commande json mais dans ce cas la tu doit la faire exécuter par os.execute et curl

dans ton cas

Code : Tout sélectionner

os.execute(curl "http://192.168.X.XX:8080/json.htm?type=command&param=udevice&idx=4&svalue=allumage")


Re: exécution impossible d'un code LUA

Publié : 22 févr. 2018, 03:43
par vil1driver
Salut,

Un OpenURL fait aussi le taf pour json ;)

Re: exécution impossible d'un code LUA

Publié : 22 févr. 2018, 12:08
par figaro
Bonjour à tous je vais essayer toutes vos astuces ,je suis convaincu que cela va m'aider à grandir
en tout cas je suis content de vos réponses,ça fait du bien d’être aidé
je vous tiens au courant