-#!/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<>""
'''
)