Всегда пытаемся создать таблицы при старте - поможет от пустого файла в бэкапе и...
[weathermon.git] / bin / weathermon
index 6980cc835dfc8e2aa6caa9794e282ce3c8ec7443..fb431a7485f2ac33534d6dd23e4ce1635d82c565 100755 (executable)
@@ -118,7 +118,9 @@ end
 
 function submitValue(type,id,param,val)
 
 
 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).."&param="..url_encode(param).."&value="..url_encode(val)
 
 
     local url = web_url.."?stype="..url_encode(type).."&sid="..url_encode(id).."&param="..url_encode(param).."&value="..url_encode(val)
 
@@ -133,8 +135,8 @@ function submitValue(type,id,param,val)
         return req_sock
       end})
 
         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
 
       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
 
@@ -346,22 +348,18 @@ end
 if backlogdb then
   if not file_exists(backlogdb) then
     touch(backlogdb)
 if backlogdb then
   if not file_exists(backlogdb) then
     touch(backlogdb)
-    backlog_con = assert(env:connect(backlogdb))
-    backlog_con:execute("CREATE TABLE queue(time_stamp datetime,sensor_id varchar(16),sensor varchar(16),param varchar(16),value float)")
-  else
-    backlog_con = assert(env:connect(backlogdb))
-  end
+  end  
+  backlog_con = assert(env:connect(backlogdb))
+  backlog_con:execute("CREATE TABLE queue(time_stamp datetime,sensor_id varchar(16),sensor varchar(16),param varchar(16),value float)")
 end
 
 if logdb then
   if not file_exists(logdb) then
     touch(logdb)
 end
 
 if logdb then
   if not file_exists(logdb) then
     touch(logdb)
-    log_con = assert(env:connect(logdb))
-    log_con:execute("CREATE TABLE log(time_stamp datetime,sensor_id varchar(16),sensor varchar(16),param varchar(16),value float)")
-    log_con:execute("CREATE INDEX log_idx ON log(sensor_id,sensor,param,time_stamp)")
-  else
-    log_con = assert(env:connect(logdb))
-  end
+  end  
+  log_con = assert(env:connect(logdb))
+  log_con:execute("CREATE TABLE log(time_stamp datetime,sensor_id varchar(16),sensor varchar(16),param varchar(16),value float)")
+  log_con:execute("CREATE INDEX log_idx ON log(sensor_id,sensor,param,time_stamp)")
 end
 
 if mqtt_host then
 end
 
 if mqtt_host then
@@ -385,6 +383,8 @@ else
   return
 end  
 
   return
 end  
 
+serialin:setvbuf('no')
+
 records = {}
 
 while 1 do
 records = {}
 
 while 1 do