Page 1 sur 5
Correction de script LUA
Publié : 03 févr. 2019, 18:30
par f0emm
Bonsoir,
Les script en LUA commençant à me plaire, je compte y passer pour remplacer mes "Blockly".
Étant loin d’être un expert, ce post afin de poster mes scripts et si possible me les faire confirmer et me faire aider par les plus aguerri
Surement très simple pour vous mais .......
Code : Tout sélectionner
--SI l'Alarme passe à ON ALORS
if devicechanged['Alarme']=='ON' then
--ETEINDRE LES LUMIERES
commandArray[#commandArray+1]={['Façade arrière']='Off'}
end
commandArray[#commandArray+1]={['Appoint salon']='Off'}
end
commandArray[#commandArray+1]={['Façade avant']='Off'}
end
--SI ECLAIRAGE PISCINE état ON ALORS
if otherdevices['A1-Eclairage piscine']=='On' then
--PASSER A OFF
commandArray[#commandArray+1]={['A1-Eclairage piscine']='Off'}
end
......... encore un peu confus pour moi.
Merci.
Bonne soirée.
A+
Fab
Re: Correction de script LUA
Publié : 03 févr. 2019, 19:03
par f0emm
Oula !
Je viens de l'essayer et j'ai ce message d'erreur qui revient depuis dans le LOG
2019-02-03 19:02:07.460 Error: EventSystem: in Script #2: [string "--SI l'Alarme passe à ON ALORS..."]:9: <eof> expected near 'end'
Y'a un truc qui va pas

Re: Correction de script LUA
Publié : 03 févr. 2019, 20:10
par denis_brasseur
Un If, un seul end.
Tu démarre par un if, ton end doit etre apres tes 3 commandarray.
Re: Correction de script LUA
Publié : 03 févr. 2019, 21:07
par f0emm
Merci !
J'essaye de suite
Re: Correction de script LUA
Publié : 03 févr. 2019, 21:19
par f0emm
arffff !
Je suis vraiment novice
Code : Tout sélectionner
--SI l'Alarme passe à ON ALORS
if devicechanged['Alarme']=='ON' then
--ETEINDRE LES LUMIERES
commandArray[#commandArray+1]={['Façade arrière']='Off'}
commandArray[#commandArray+1]={['Appoint salon']='Off'}
commandArray[#commandArray+1]={['Façade avant']='Off'}
--SI ECLAIRAGE PISCINE état ON ALORS
if otherdevices['A1-Eclairage piscine']=='On' then
--PASSER A OFF
commandArray[#commandArray+1]={['A1-Eclairage piscine']='Off'}
end
return commandArray
Message d'erreur :
2019-02-03 21:18:14.436 Error: EventSystem: in Script #2: [string "--SI l'Alarme passe à ON ALORS..."]:16: 'end' expected (to close 'if' at line 2) near <eof>
en plus c'est en anglais
Merci.
Bonne soirée.
A+
Fab
Re: Correction de script LUA
Publié : 03 févr. 2019, 21:45
par f0emm
Code : Tout sélectionner
commandArray={}
--SI l'Alarme passe à ON ALORS
if devicechanged['Alarme']=='ON' then
--ETEINDRE LES LUMIERES
commandArray[#commandArray+1]={['Façade arrière']='Off'}
commandArray[#commandArray+1]={['Appoint salon']='Off'}
commandArray[#commandArray+1]={['Façade avant']='Off'}
end
--SI ECLAIRAGE PISCINE état ON ALORS
do if otherdevices['Alarme']=='ON' and otherdevices['A1-Eclairage piscine']=='On' then
--PASSER A OFF
commandArray[#commandArray+1]={['A1-Eclairage piscine']='Off'}
end
end
return commandArray
Plus d'erreur !
Ce que je cherche à faire :
Quand alarme ON
Façade avant, arrière et appoint salon OFF
Si Eclairage piscine ON, passage à OFF
Du coup je ne sais pas si le deuxième IF est bon ?
Merci.
A+
Fab
Re: Correction de script LUA
Publié : 04 févr. 2019, 05:51
par denis_brasseur
Re: Correction de script LUA
Publié : 04 févr. 2019, 18:38
par f0emm
Bonjour Denis,
Merci pour ce lien très instructifs.
Ce script fonctionne presque :
Code : Tout sélectionner
commandArray={}
--SI etat l'Alarme change
if devicechanged ['Alarme'] then
--SI l'Alarme passe à ON ALORS
if devicechanged['Alarme']=='ON' then
--ETEINDRE LES LUMIERES
commandArray[#commandArray + 1]={['Façade arrière']='Off'}
commandArray[#commandArray + 1]={['Appoint salon']='Off'}
commandArray[#commandArray + 1]={['Façade avant']='Off'}
end
-- SI l'Alarme passe à ON et SI ECLAIRAGE PISCINE état ON ALORS
if otherdevices['A1-Eclairage piscine']=='On' then
--PASSER A OFF
commandArray[#commandArray + 1]={['A1-Eclairage piscine']='Off'}
end
print ("Alarme activée --> extinction des éclairages allumés.")
end
return commandArray
Tout fonctionnent mais le retour à l'état OFF des interrupteurs ne se fait pas.
Grrrrrrr ..... ça va venir

Re: Correction de script LUA
Publié : 04 févr. 2019, 20:01
par denis_brasseur
Ton script nécessite 2 changements du device Alarme, puisque tu enchaîne 2 fois devicechanged ['Alarme']
Et comme ceci ?
Code : Tout sélectionner
commandArray={}
--SI etat l'Alarme change
if devicechanged ['Alarme'] then
--SI l'Alarme passe à ON ALORS
--if devicechanged['Alarme']=='ON' then
if otherdevices['Alarme']=='ON' then
--ETEINDRE LES LUMIERES
commandArray[#commandArray + 1]={['Façade arrière']='Off'}
commandArray[#commandArray + 1]={['Appoint salon']='Off'}
commandArray[#commandArray + 1]={['Façade avant']='Off'}
end
-- SI l'Alarme passe à ON et SI ECLAIRAGE PISCINE état ON ALORS
if otherdevices['A1-Eclairage piscine']=='On' then
--PASSER A OFF
commandArray[#commandArray + 1]={['A1-Eclairage piscine']='Off'}
end
print ("Alarme activée --> extinction des éclairages allumés.")
end
return commandArray
Re: Correction de script LUA
Publié : 04 févr. 2019, 20:28
par f0emm
Bonsoir,
Merci Denis
Le fonctionnement est le même, tout s'éteint, seul l'éclairage piscine passe à l'état OFF, les trois premiers restent à ON.
Peut être rajouter à ces trois là "Si ON" passage à "OFF"