225
gwid (number/string) gateway id: gateway number or internal or internal2 when
internal DALI exists
cmd (string) command to send, refer to command table for possible values
params (table) command parameters
Params (Lua table):
addrtype (string) address type, only required for addressable commands, possible
values: short group broadcast
address (number) short or group address
value (number) additional value to send
3 addressing modes are supported
broadcast all slaves should react: { addrtype = 'broadcast' }
short only one slave having a unique short address should react: { addrtype = 'short',
address = SLAVE_ID }
group several slaves belonging to a group should react: { addrtype = 'group', address =
GROUP_ID }
Command types
If command is addressable, it's possible to provide address type and address in params table.
If command expects a reply it must be addressed so only one slave can reply, otherwise a
collision will happen. In case of success, reply is a binary string, usually consisting of a single
byte. You can convert it to number like this:
-- query status of slave with short address 5 on the internal DALI bus
res, err = dalicmd('internal', 'querystatus', { addrtype = 'short', address = 5 })
-- read ok
if res then
status = res:byte()
end
If command has a value range, params table must have a value field which is an integer in the
specified range. For example, arc command accepts a value from 0 to 254:
-- set level to 42 for all slave on the internal DALI bus