LogicMachine Forum
Arcam control over ip - Printable Version

+- LogicMachine Forum (https://forum.logicmachine.net)
+-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1)
+--- Forum: Gateway (https://forum.logicmachine.net/forumdisplay.php?fid=10)
+--- Thread: Arcam control over ip (/showthread.php?tid=1768)



Arcam control over ip - Thinklight - 03.12.2018

Hi,
What I am doing wrong?
I want to control Arcam receiver over IP and put in Command function this code:
Code:
function tcp_arcam(data, ip, port)  local sock, res, err  sock = require('socket').tcp()  sock:settimeout(5)  res, err = sock:connect(ip, port or 50000)    if res then    res, err = sock:receive(5)    if res == 'PJ_OK' then      sock:send('PJREQ')      res, err = sock:receive(5)      if res == 'PJACK' then        sock:send(data)        res, err = sock:receive(6)      else        alert('invalid/no ack: ' .. tostring(res))        end    else      alert('invalid/no init: ' .. tostring(res))      end  else    alert('connect failed: ' .. tostring(err))  end  sock:close()  return res, err end
Then from event script using this:

Code:
cmdon  = string.char(0x21, 0x01, 0x00, 0x01, 0xF0, 0x0D) cmdoff = string.char(0x21, 0x01, 0x00, 0x00, 0xF0, 0x0D) ip = '192.168.11.112' if (event.getvalue()==true) then  res, err = tcp_arcam(cmdon, ip) else  res, err = tcp_arcam(cmdoff, ip) os.sleep(2.5)  res, err = tcp_arcam(cmdoff, ip) end log (res, err)

Manual of receiver is her: Manual of control


RE: Arcam control over ip - admin - 04.12.2018

Try this:
Code:
function tcp_arcam(data, ip, port)   local sock, res, err, len   sock = require('socket').tcp()   sock:settimeout(1)   res, err = sock:connect(ip, port or 50000)      if res then     -- send data     sock:send(data)     -- receive response     res, err = sock:receive(5)     if type(res) == 'string' and #res == 5 then       len = res:byte(5)       res, err = sock:receive(len + 1)     else       alert('receive failed: ' .. tostring(err))     end   else     alert('connect failed: ' .. tostring(err))   end   sock:close()   return res, err end



RE: Arcam control over ip - Thinklight - 04.12.2018

(04.12.2018, 07:16)admin Wrote: Try this:
Code:
function tcp_arcam(data, ip, port)  local sock, res, err, len  sock = require('socket').tcp()  sock:settimeout(1)  res, err = sock:connect(ip, port or 50000)    if res then    -- send data    sock:send(data)    -- receive response    res, err = sock:receive(5)    if type(res) == 'string' and #res == 5 then      len = res:byte(5)      res, err = sock:receive(len + 1)    else      alert('receive failed: ' .. tostring(err))    end  else    alert('connect failed: ' .. tostring(err))  end  sock:close()  return res, err end

I am got nil and timeout. What you think whats wrong?


RE: Arcam control over ip - admin - 04.12.2018

Do you get any entries in alerts?


RE: Arcam control over ip - Thinklight - 04.12.2018

(04.12.2018, 10:01)admin Wrote: Do you get any entries in alerts?

Yes receive filed: timeout


RE: Arcam control over ip - admin - 04.12.2018

Try using IR simulation commands for on/off:
Code:
cmdon  = string.char(0x21, 0x01, 0x08, 0x02, 0x10, 0x7B, 0x0D) cmdoff = string.char(0x21, 0x01, 0x08, 0x02, 0x10, 0x7C, 0x0D)



RE: Arcam control over ip - Thinklight - 04.12.2018

(04.12.2018, 10:16)admin Wrote: Try using IR simulation commands for on/off:
Code:
cmdon  = string.char(0x21, 0x01, 0x08, 0x02, 0x10, 0x7B, 0x0D) cmdoff = string.char(0x21, 0x01, 0x08, 0x02, 0x10, 0x7C, 0x0D)

It's working. Smile


RE: Arcam control over ip - Thinklight - 05.12.2018

Some ideas how need to get status of Arcam in LM:

It is possible that the state of the AV may be changed as a result of user input via the front panel buttons or via the IR remote control. Any change
resulting from these inputs is relayed to the RC using the appropriate message type.
For example, if the user changed the front panel display brightness using the DISPLAY button on the front panel, a display message (defined below)
would be sent to the RC. A similar action would be taken for all other state changes (including decode mode changes).


RE: Arcam control over ip - admin - 07.12.2018

For this you will need a resident script to constantly poll status values from remote host.