28.06.2022, 07:44
(27.06.2022, 12:15)admin Wrote: You need a separate socket connection for commands. You also need to send another init sequence: *99*0##.
This example should control light point 11 by converting 0..100% value to 0..10. There's some extra logging to check if the message flow is correct. Remove it when the script is working properly.
Code:value = event.getvalue()
value = math.ceil(value / 10)
cmd = '*1*' .. value .. '*11##'
sock = require('socket').tcp()
sock:settimeout(1)
res, err = sock:connect('192.168.1.247', 20000)
if res then
sock:send('*99*0##')
res, err = sock:receive(6) -- receive ACK
log('receive 1', res, err)
res, err = sock:send(cmd)
log('send', res, err)
res, err = sock:receive(6) -- receive result ACK/NACK
log('receive 2', res, err)
else
log('connect failed', err)
end
sock:close()
Works perfectly!
Thank you very much for the help!