DatabasePreparer

This commit is contained in:
Wolfgang Hottgenroth
2017-11-10 23:35:06 +01:00
parent 6c8abd1adf
commit 5be27e1994
6 changed files with 50 additions and 6 deletions

View File

@ -0,0 +1,9 @@
from logger import Logger
class AbstractDatabasePreparer(object):
def __init__(self, tablename):
self.tablename = tablename
self.values = {}
def getInsertStatement(self):
return "table: %s " % (self.tablename) + str(self.values)

View File

@ -32,7 +32,10 @@ class DatabaseEngine(threading.Thread):
while not self.queue.empty():
data = self.queue.get()
Logger.log("DatabaseEngine receives: %s" % (str(data)))
if (type(data) != list):
data = [data]
for dbo in data:
Logger.log("DatabaseEngine receives: %s" % (str(dbo.getInsertStatement())))
else:
Logger.log("DatabaseEngine: no more data to handle")

View File

@ -0,0 +1,7 @@
from AbstractDatabasePreparer import AbstractDatabasePreparer
class EnergyDatabasePreparer(AbstractDatabasePreparer):
def __init__(self, values):
super(EnergyDatabasePreparer, self).__init__('ElectricEnergy')
self.values = values

View File

@ -1,6 +1,8 @@
import json
from logger import Logger
from AbstractParser import AbstractParser
from AbstractNextStage import AbstractNextStage
from TemperatureDatabasePreparer import TemperatureDatabasePreparer
class ModbusParser(AbstractParser, AbstractNextStage):
def __init__(self):
@ -8,5 +10,21 @@ class ModbusParser(AbstractParser, AbstractNextStage):
self.topic = "IoT/Measurement/ModbusHub"
def execute(self, data):
#Logger.log("ModbusParser %s" % (str(data)))
self.executeNextStage(data)
Logger.log("ModbusParser %s %s" % (type(data), str(data)))
try:
j = json.loads(data['payload'])
if j['metadata']['Slave'] == 'Thermometer':
vv = []
v = TemperatureDatabasePreparer({'name':'Fridge',
'temperature':j['data']['t1'],
'timestamp':data['timestamp']})
vv.append(v)
v = TemperatureDatabasePreparer({'name':'Freezer',
'temperature':j['data']['t2'],
'timestamp':data['timestamp']})
vv.append(v)
self.executeNextStage(vv)
except Exception, e:
Logger.log("Exception in ModbusParser, %s" % (str(e)))

View File

@ -1,11 +1,11 @@
#!/usr/bin/python
from MqttReceiver import MqttReceiver
import os
import sys
from logger import Logger
import time
from logger import Logger
from MqttReceiver import MqttReceiver
from MBusParser import MBusParser
from ModbusParser import ModbusParser
from PersistentQueue import PersistentQueue
@ -50,7 +50,7 @@ try:
Logger.log("MqttReader started ...")
mbusParser = MBusParser()
mqttReader.registerParser(mbusParser)
#mqttReader.registerParser(mbusParser)
Logger.log("MBusParser started ...")
modbusParser = ModbusParser()

View File

@ -0,0 +1,7 @@
from AbstractDatabasePreparer import AbstractDatabasePreparer
class TemperatureDatabasePreparer(AbstractDatabasePreparer):
def __init__(self, values):
super(TemperatureDatabasePreparer, self).__init__('Temperature')
self.values = values