05.10.2024, 05:32
(02.10.2024, 11:52)admin Wrote: Run this script as resident. Change host variable to your camera IP and auth variable to access credentials in username:password format. Make sure that Basic auth mode (not digest) is set on your camera. Then post what you get in LM Logs when running this script.Thanks for the reply.
Code:local json = require('json')
local socket = require('socket')
local mime = require('mime')
local host = '192.168.1.1'
local auth = 'user:password'
local sock = socket.tcp()
sock:settimeout(15)
local res, err = sock:connect(host, 80)
if not res then
sock:close()
log('connect failed', err)
os.sleep(5)
return
end
local function init()
local crlf = '\r\n'
sock:send(
'GET /FR/events/live/json?heartbeat=10 HTTP/1.1' .. crlf ..
'Host: ' .. host .. crlf ..
'Authorization: Basic ' .. mime.b64(auth) .. crlf .. crlf
)
end
local function parse(resp)
resp = json.pdecode(resp)
log(resp)
end
init()
local pat, len = nil, nil
while true do
res, err = sock:receive(pat)
log('rx', pat, res, err)
if err then
sock:close()
log('receive error', err)
break
end
if type(pat) == 'number' then
pcall(parse, res)
pat, len = nil, nil
elseif #res == 0 then
pat = len
elseif not len then
len = res:match('Content%-Length: (%d+)')
len = tonumber(len)
end
end
I am sending the log again as attached file.
Please help me.