in a DZvents script I wanted to simplify my declaration of the devices and their parameters
i do that :
Code: Select all
local DEVICES = {
['device_1'] = 'device_1 Act',
['device_2'] = 'device_2 Act'
}
local TimeOut = {
['device_1 Act'] = 6,
['device_2 Act'] = 10
}
local Min = {
['device_1 Act'] = 4,
['device_2 Act'] = 3
}
local Max = {
['device_1 Act'] = 15,
['device_2 Act'] = 100
}
local Notify = {
['device_1 Act'] = 'No',
['device_2 Act'] = 'Yes'
}
return {
on = {
devices = {
'device_1',
'device_1 Act',
'device_2',
'device_2 Act'
},
},
execute = function(domoticz, device)
if (DEVICES[device.name] ~= nil) then
local switch = domoticz.devices(DEVICES[device.name])
local timeout = TimeOut[DEVICES[device.name]]
local Min = Min[DEVICES[device.name]]
local Max = Max[DEVICES[device.name]]
endlocal Min = {}, local Max = {}, local Notify = {}, local TimeOut = {},...
by something like
Code: Select all
local parametres = {
['device_1 Act'] = {[TimeOut] = 6, [Min] = 4, [Max] = 15, [Notify] = 'No'},
['device_2 Act'] = {[TimeOut] = 7, [Min] = 3, [Max] = 100, [Notify] = 'Yes'}
}
I tried a lot of things like
Code: Select all
local timeout = parametres.TimeOut[DEVICES[device.name]]