MqttDispatcherPy/MqttDispatcher.py
Wolfgang Hottgenroth 3fcf6fe486 initial
2017-11-10 22:03:30 +01:00

68 lines
1.3 KiB
Python

#!/usr/bin/python
from MqttReceiver import MqttReceiver
import os
import sys
from logger import Logger
import time
from MBusParser import MBusParser
from ModbusParser import ModbusParser
from PersistentQueue import PersistentQueue
DEBUG = True
DEBUG_TO_STDOUT = True
BACKGROUND = False
PID_FILE = "/tmp/MqttDispatcher.pid"
LOG_FILE = "/tmp/MqttDispatcher.log"
MQTT_BROKER = "172.16.2.15"
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()
if DEBUG_TO_STDOUT:
Logger.debugToStdoutEnable()
Logger.log("MqttDispatcher starting")
try:
mqttReader = MqttReceiver.create(MQTT_BROKER)
mqttReader.start()
Logger.log("MqttReader started ...")
mbusParser = MBusParser()
mqttReader.registerParser(mbusParser)
modbusParser = ModbusParser()
mqttReader.registerParser(modbusParser)
persistentQueue = PersistentQueue()
mbusParser.setNextStage(persistentQueue)
Logger.log("MqttDispatcher running")
while (True):
time.sleep(10)
except Exception, e:
Logger.log("MqttDispatcher dying from %s" % (str(e)))
finally:
Logger.log("MqttDispatcher terminating ...")