DatabasePreparer
This commit is contained in:
9
AbstractDatabasePreparer.py
Normal file
9
AbstractDatabasePreparer.py
Normal 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)
|
@ -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")
|
||||
|
||||
|
7
EnergyDatabasePreparer.py
Normal file
7
EnergyDatabasePreparer.py
Normal file
@ -0,0 +1,7 @@
|
||||
from AbstractDatabasePreparer import AbstractDatabasePreparer
|
||||
|
||||
class EnergyDatabasePreparer(AbstractDatabasePreparer):
|
||||
def __init__(self, values):
|
||||
super(EnergyDatabasePreparer, self).__init__('ElectricEnergy')
|
||||
self.values = values
|
||||
|
@ -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)))
|
||||
|
@ -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()
|
||||
|
7
TemperatureDatabasePreparer.py
Normal file
7
TemperatureDatabasePreparer.py
Normal file
@ -0,0 +1,7 @@
|
||||
from AbstractDatabasePreparer import AbstractDatabasePreparer
|
||||
|
||||
class TemperatureDatabasePreparer(AbstractDatabasePreparer):
|
||||
def __init__(self, values):
|
||||
super(TemperatureDatabasePreparer, self).__init__('Temperature')
|
||||
self.values = values
|
||||
|
Reference in New Issue
Block a user