X-Git-Url: https://git.rvb.name/weathermon.git/blobdiff_plain/466c75a8854e8f81a5ee07128b771b308943858b..7edb3771717d15f7c36d8459fa12b3d6f76d7d9a:/weathermon.lua?ds=sidebyside diff --git a/weathermon.lua b/weathermon.lua index 683d406..3208e30 100755 --- a/weathermon.lua +++ b/weathermon.lua @@ -1,7 +1,7 @@ #!/usr/bin/lua -require("json") -require("socket") +json = require("json") +socket = require("socket") function startswith(String,Start) if String then @@ -83,6 +83,7 @@ function getConfig(configname) end logging = cur.get(config,"logging","enabled") + touch_file = cur.get(config,"logging","touch_file") serial_port = cur.get(config,"serial","port") serial_baud = cur.get(config,"serial","baud") @@ -125,6 +126,13 @@ function getConfig(configname) end +function touch() + if touch_file then + local file = io.open(touch_file, 'w') + file:close() + end +end + function sleep(sec) socket.select(nil, nil, sec) end @@ -153,7 +161,10 @@ end function printLog(str) if logging=="on" then capture("logger -t weathermon "..str) - else + print(str) + elseif logging=="syslog" then + capture("logger -t weathermon "..str) + elseif logging=="stdout" then print(str) end end @@ -176,6 +187,8 @@ function submitValue(type,id,param,val) result = capture(command) + touch() + end function processJson(str) @@ -198,6 +211,10 @@ function processJson(str) end end + if not sensor_id then + sensor_id = web_devid + end + if not (sensor_type==nil or sensor_id==nil or sensor_type=='' or sensor_id=='') then if next(sensor)==nil then sensor["command"]="alarm" @@ -224,7 +241,7 @@ function processJson(str) end end else - printLog("Cannot parse sensor input: "..msg_body) + printLog("Cannot parse sensor input: "..str) end end @@ -358,7 +375,7 @@ else return end while 1 do - line=serialin:read() + line=serialin:read("*l") if line == nil then break end @@ -366,6 +383,6 @@ while 1 do if startswith(line,'{') then processJson(line) else - processLine(line) + processLine(line) end end