+function process_MSG(mid, topic, payload)
+ print(topic, payload)
+ pcall(function(topic,payload)
+ print(payload)
+ payload = json.decode(payload)
+ local time = os.date(payload['Time'])
+ if not time then time = os.date(payload['time']); end
+ local model = payload['model']
+ local id = payload['id']
+ for sensor_type,sensor_data in pairs(payload) do
+ if sensor_type ~= "Time" and sensor_type ~= "TempUnit" and sensor_type ~= "model" and sensor_type ~="id" and sensor_type ~= "time" then
+ if model then
+ conn:execute(string.format("CALL meteo.submit_mqtt('%s','%s','%s','%s',NULL)", topic,model,sensor_type,sensor_data))
+ conn:commit()
+ print(topic,model,sensor_type,sensor_data)
+ else
+ for param,value in pairs(sensor_data) do
+ conn:execute(string.format("CALL meteo.submit_mqtt('%s','%s','%s','%s',NULL)", topic,sensor_type,param,value))
+ conn:commit()
+ print(topic,sensor_type,param,value)
+ end
+ end
+ end
+ end
+ end, topic, payload)
+end