''' Created on 20.05.2015 @author: wn ''' from MqttReceiver import MqttReceiver from MongoWriter import MongoWriter from MeterBusDecoder import MeterBusDecoder import Queue import os import sys from logger import Logger import time DEBUG = True BACKGROUND = False PID_FILE = "/tmp/mqtt2mongo.pid" LOG_FILE = "/tmp/mqtt2mongo.log" BROKER = "172.16.2.15" TOPICS = ['IoT/Measurement/#', 'IoT/WiFiPowerMeter/Measurement'] MONGO_HOST = "172.16.2.18" MONGO_DATABASE = "iot" MONGO_COLLECTION = "iot" if BACKGROUND: pid = os.fork() else: pid = 0 if pid: pidFile = file(PID_FILE , mode='w') pidFile.write("%i\n" % pid) pidFile.close() sys.exit(0) Logger.openlog(LOG_FILE) if DEBUG: Logger.debugEnable() Logger.log("mqtt2mongo starting") try: queue1 = Queue.Queue() queue2 = Queue.Queue() Logger.log("queues created ...") mqttReader = MqttReceiver.create(queue1, BROKER, TOPICS) mqttReader.start() Logger.log("MqttReader started ...") meterBusDecoder = MeterBusDecoder(queue1, queue2) meterBusDecoder.start() Logger.log("MeterBusDecoder started ...") mongoWriter = MongoWriter(queue2, MONGO_HOST, MONGO_DATABASE, MONGO_COLLECTION) mongoWriter.start() Logger.log("MongoWriter started ...") Logger.log("mqtt2mongo running") while (True): time.sleep(10) except Exception, e: Logger.log("mqtt2mongo dying from %s, %s" % (str(e), e.msg)) finally: Logger.log("mqtt2mongo terminating ...")