X-Git-Url: https://git.rvb.name/weathermon.git/blobdiff_plain/e32107a7fe79ce34f3bdf860410a6d5455efdca7..de2440e167bacd1cebff432611d5d837dfeddffd:/bin/weathermon?ds=inline diff --git a/bin/weathermon b/bin/weathermon index 03fad42..b8be15f 100755 --- a/bin/weathermon +++ b/bin/weathermon @@ -118,7 +118,9 @@ end function submitValue(type,id,param,val) - if web_url then + val = tonumber(val) + + if web_url and val then local url = web_url.."?stype="..url_encode(type).."&sid="..url_encode(id).."¶m="..url_encode(param).."&value="..url_encode(val) @@ -133,8 +135,8 @@ function submitValue(type,id,param,val) return req_sock end}) - if code ~= 200 then - print("writing record to backlog...") + if code ~= 200 and backlog_con then + printLog("writing record to backlog...") backlog_con:execute(string.format("INSERT INTO queue(time_stamp,sensor_id,sensor,param,value) VALUES (datetime('now','localtime'),'%s','%s','%s',%f)",id,type,param,val)) end @@ -385,24 +387,33 @@ else return end +serialin:setvbuf('no') + records = {} while 1 do + line=serialin:read("*l") + if line == nil then break end - printLog("Received: "..line); - if startswith(line,'{') then - processJson(line) - else - processLine(line) - end - if dump_file then - local f = io.open(dump_file,"w") - io.output(f) - io.write(json.encode(records)) - io.close(f) - end + pcall(function () + + printLog("Received: "..line) + if startswith(line,'{') then + processJson(line) + else + processLine(line) + end + + if dump_file then + local f = io.open(dump_file,"w") + io.output(f) + io.write(json.encode(records)) + io.close(f) + end + end) + end