Небуферизованый вывод.
[weathermon.git] / weathermon-mqtt
index 6c5fd378d949bcefddb8194820febff88f6e44fe..f288f51f8055e076b4a7b6c9595a6937f37d6982 100755 (executable)
@@ -1,21 +1,30 @@
-#!/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 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
 
 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':
+      sensor_data=payload[sensor_type]
+      for param in sensor_data:
+        try:
+          value=sensor_data[param]
+          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"  
 
 def Topics():
 
 
 def Topics():