it works yippee (depending on what node sends it data the script will send it to the corresponding table with automatic node numbering)

This commit is contained in:
sietse jonker
2024-03-26 22:46:50 +01:00
parent 44a2d1e5c6
commit 970b7eaa41

View File

@@ -6,15 +6,11 @@ import json
sensorNodeArray = [] sensorNodeArray = []
enqueteNodeArray = [] enqueteNodeArray = []
async def processSensorNodeData(data): async def processSensorNodeData(data, nodeID):
try: try:
mydb = dbLogin() mydb = dbLogin()
cursor = mydb.cursor() cursor = mydb.cursor()
# MACDataReading = mydb.cursor()
# MACDataReading.execute("SELECT MAC FROM Node")
print('some_response')
query = "INSERT INTO `Measurement` (NodeID, Type, Value) VALUES (%s, %s, %s)" query = "INSERT INTO `Measurement` (NodeID, Type, Value) VALUES (%s, %s, %s)"
processedData = json.loads(data) processedData = json.loads(data)
@@ -23,18 +19,8 @@ async def processSensorNodeData(data):
processedeCO2 = (processedData['eCO2']) processedeCO2 = (processedData['eCO2'])
processedTVOC = (processedData['TVOC']) processedTVOC = (processedData['TVOC'])
processedMAC = (processedData['node']) processedMAC = (processedData['node'])
MACTuple = (processedMAC,)
# MACDataFetching = MACDataReading.fetchall() pushingDataArray = [(nodeID, "Temp", processedTemp), (nodeID, "Humi", processedHumi), (nodeID, "eCO2", processedeCO2), (nodeID, "TVOC", processedTVOC)]
# MACArray = list(MACDataFetching)
# if MACTuple not in MACArray:
# addingNode = "INSERT INTO `Node` (MAC) VALUES (%s)"
# cursor.execute(addingNode, MACTuple)
# mydb.commit()
pushingDataArray = [(1, "Temp", processedTemp), (1, "Humi", processedHumi), (1, "eCO2", processedeCO2), (1, "TVOC", processedTVOC)]
for i in pushingDataArray: for i in pushingDataArray:
print(query ,i) print(query ,i)
cursor.execute(query, i) cursor.execute(query, i)
@@ -63,15 +49,19 @@ async def receive_data():
else: else:
type = 'enquete' type = 'enquete'
await getNodeInfo('sensor') await getNodeInfo('sensor')
await getNodeInfo('enquete') await getNodeInfo('enquete')
print(str(sensorNodeArray)) print(sensorNodeArray)
if str(macAdress) in sensorNodeArray: if macAdress in sensorNodeArray:
await processSensorNodeData(data) nodeID = await getNodeID(macAdress)
elif str(macAdress) in enqueteNodeArray: await processSensorNodeData(data, nodeID)
await processEnqueteNodeData(data) elif macAdress in enqueteNodeArray:
nodeID = await getNodeID(macAdress)
await processEnqueteNodeData(data, nodeID)
else: else:
await newNode(macAdress, type) await newNode(macAdress, type)
except websockets.ConnectionClosedError as e: except websockets.ConnectionClosedError as e:
@@ -100,6 +90,9 @@ def dbLogin():
return mydb return mydb
async def getNodeInfo(type): async def getNodeInfo(type):
global sensorNodeArray
global enqueteNodeArray
nodeInfoArray = [] nodeInfoArray = []
id = (type,) id = (type,)
@@ -113,6 +106,9 @@ async def getNodeInfo(type):
nodeInfoArray.append(item) nodeInfoArray.append(item)
print(nodeInfoArray) print(nodeInfoArray)
cursor.close()
mydb.close()
if type == 'sensor': if type == 'sensor':
sensorNodeArray = nodeInfoArray sensorNodeArray = nodeInfoArray
print(sensorNodeArray) print(sensorNodeArray)
@@ -123,6 +119,17 @@ async def getNodeInfo(type):
return enqueteNodeArray return enqueteNodeArray
async def getNodeID(macAdress):
id = (macAdress,)
mydb = dbLogin()
cursor = mydb.cursor()
cursor.execute("""SELECT nodeID FROM Node WHERE MAC = %s""", id)
data = cursor.fetchall()
nodeID = data[0][0]
return nodeID