#!/usr/bin/lua
-require("json")
-require("socket")
+json = require("json")
+socket = require("socket")
function startswith(String,Start)
if String then
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")
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
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
command = command.." -u "..web_user..":"..web_pass
end
- command = command.." \""..url.."\""
+ command = command.." \""..url.."\" 2>&1"
result = capture(command)
+ touch()
+
end
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"
end
for k,v in pairs(sensor) do
- printLog("Type = "..sensor_type..", ID = "..sensor_id..", Param = "..k..", Value = "..v)
+ printLog("Type = "..sensor_type..", ID = "..sensor_id..", Param = "..k..", Value = \""..v.."\"")
submitValue(sensor_type,sensor_id,k,v)
if mqtt_client then
mqtt_path=string.gsub(mqtt_topic,"{(.-)}",
end
end
else
- printLog("Cannot parse sensor input: "..msg_body)
+ printLog("Cannot parse sensor input: "..str)
end
end
getConfig(arg[1])
if mqtt_host then
- MQTT = require "paho.mqtt"
- mqtt_client = MQTT.client.create(mqtt_host, mqtt_port)
+ MQTT = require "mosquitto"
+ mqtt_client = MQTT.new(mqtt_id)
if mqtt_user then
- mqtt_client:auth(mqtt_user, mqtt_passwd)
+ mqtt_client:login_set(mqtt_user, mqtt_passwd)
end
- mqtt_client:connect(mqtt_id)
+ mqtt_client:connect(mqtt_host,mqtt_port)
end
if serial_port then
return
end
while 1 do
- line=serialin:read()
+ line=serialin:read("*l")
if line == nil then
break
end
if startswith(line,'{') then
processJson(line)
else
- processLine(line)
+ processLine(line)
end
end