From: Roman Bazalevsky Date: Tue, 2 Jun 2020 14:16:25 +0000 (+0300) Subject: Обработка сообщений MQTT в формате rtl_433 X-Git-Url: https://git.rvb.name/weathermon.git/commitdiff_plain/0d332cb66939747237ce374275f5719acc2354f5?ds=sidebyside;hp=9b024ef6c2d9a1f8260fadd562f8d2298a50eb3e Обработка сообщений MQTT в формате rtl_433 --- diff --git a/server/weathermon-mqtt b/server/weathermon-mqtt index 025deec..809b4e9 100755 --- a/server/weathermon-mqtt +++ b/server/weathermon-mqtt @@ -15,15 +15,25 @@ end 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" then - 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)) + 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,sensor_type,param,value) - end + 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)