Переход на mosquitto
[weathermon.git] / weathermon.lua
index af387297ccd5274478816d74928dd5baf4ae199b..683d40697a1e2a068b868bb15a0d4f85d2c17717 100755 (executable)
@@ -172,7 +172,7 @@ function submitValue(type,id,param,val)
     command = command.." -u "..web_user..":"..web_pass
   end
 
-  command = command.." \""..url.."\""
+  command = command.." \""..url.."\" 2>&1"
 
   result = capture(command)
 
@@ -186,7 +186,7 @@ function processJson(str)
 
   for key,value in pairs(msg) do
     if value then
-      if key=="model" then
+      if key=="model" or key=="device" then
         sensor_type=value
       elseif key=="id" then
         sensor_id=value
@@ -199,8 +199,11 @@ function processJson(str)
   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,"{(.-)}", 
@@ -334,12 +337,12 @@ 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