X-Git-Url: https://git.rvb.name/weathermon.git/blobdiff_plain/3710dc777a1990a2868d3d187d9dd18efaa1f90a..72cd4bb0ea28977f72894b7ce52d71218add44a7:/weathermon-mqtt?ds=sidebyside diff --git a/weathermon-mqtt b/weathermon-mqtt index 6c5fd37..c6b6a82 100755 --- a/weathermon-mqtt +++ b/weathermon-mqtt @@ -1,28 +1,40 @@ -#!/usr/bin/python +#!/usr/bin/python -u import paho.mqtt.client as paho import sys from ConfigParser import ConfigParser import MySQLdb from pprint import pprint +import json +from dateutil.parser import parser +tparser=parser() def on_message(mosq, obj, msg): topic=msg.topic - payload=msg.payload - try: - c = database.cursor() - c.execute('CALL meteo.submit_mqtt(%s,%s,NULL)', (topic,payload)) - database.commit() - print topic,payload - except: - print "Failed to submit data" + payload=json.loads(msg.payload) + timestamp=tparser.parse(payload['Time']) + for sensor_type in payload: + if sensor_type != 'Time' and sensor_type != 'TempUnit': + sensor_data=payload[sensor_type] + for param in sensor_data: + try: + value=sensor_data[param] + try: + c = database.cursor() + c.execute('CALL meteo.submit_mqtt(%s,%s,%s,%s,NULL)', (topic,sensor_type,param,value)) + database.commit() + print topic,sensor_type,param,value + except: + print "Failed to submit data" + except: + None def Topics(): c = database.cursor() c.execute( ''' - select topic from mqtt_topics + select topic from mqtt_topics where topic<>"" ''' )