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:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657local 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.