En fait c' est pour simplifier mon code en utilisant moins de if then. J' utilise pour mon arrosage 6 relais d' une carte USB UART donc j' ai créé 6 devices que j' ai nommé Vanne1,Vanne2... jusqu' à 6. J' utilise qu' un fichier pour gerer les 6 actions, mon code commence par:
if devicechanged['Vanne1'] or devicechanged['Vanne2'] or devicechanged['Vanne3'] or devicechanged['Vanne4'] or devicechanged['Vanne5'] or devicechanged['Vanne6'] then
Comme il est dit dans la convention d' écriture de script LUA domoticz pour arrêter le code si il n y a pas de changement d' état.
.Je trouve ça tres lourd alors que si dans un premier temps le code s' éxecute avec comme argument variable le nom du device ou même un indice du type RLYX, je pourrai le comparer à un tableau de variable dans mon code et continuer si le nom ou l' indice fait partie du tableau. Dans un deuxième temps si je peux passer RLYX comme variable dynamique, le code serait simplifié de 30 lignes :
--Actionner les relais--
if (devicechanged['Vanne1'] == 'On') then
trame=( 'VariableRLYX'+1) --1 pour ON
chaine="Début d'arrosage"
elseif (devicechanged['Vanne1'] == 'Off') then
trame=( 'VariableRLYX'+0) --0 pour OFF
chaine="Fin d'arrosage"
au lieu de:
--Actionner les relais--
if (devicechanged['Vanne1'] == 'On') then
trame=( 'RLY11')
chaine="Début d'arrosage"
elseif (devicechanged['Vanne1'] == 'Off') then
trame=( 'RLY10')
chaine="Fin d'arrosage"
elseif (devicechanged['Vanne2'] == 'On') then
trame=( 'RLY21')
chaine="Début d'arrosage"
elseif (devicechanged['Vanne2'] == 'Off') then
trame=( 'RLY20')
chaine="Fin d'arrosage"
elseif (devicechanged['Vanne3'] == 'On') then
trame=( 'RLY31')
chaine="Début d'arrosage"
elseif (devicechanged['Vanne3'] == 'Off') then
trame=( 'RLY30')
chaine="Fin d'arrosage"
elseif (devicechanged['Vanne4'] == 'On') then
trame=( 'RLY41')
chaine="Début d'arrosage"
elseif (devicechanged['Vanne4'] == 'Off') then
trame=( 'RLY40')
chaine="Fin d'arrosage"
elseif (devicechanged['Vanne5'] == 'On') then
trame=( 'RLY51')
chaine="Début d'arrosage"
elseif (devicechanged['Vanne5'] == 'Off') then
trame=( 'RLY50')
chaine="Fin d'arrosage"
elseif (devicechanged['Vanne6'] == 'On') then
trame=( 'RLY61')
chaine="Début d'arrosage"
elseif (devicechanged['Vanne6'] == 'Off') then
trame=( 'RLY60')
chaine="Fin d'arrosage"
end
J' espère ne pas avoir était trop ennuyeux, et merci d' avoir lu jusqu'au bout.
