Add Brams script for processing and storing data from WebSocket
This commit is contained in:
65
server/brams-script.py
Normal file
65
server/brams-script.py
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
import asyncio
|
||||||
|
import websockets
|
||||||
|
import mysql.connector
|
||||||
|
import json
|
||||||
|
|
||||||
|
async def process_data(data):
|
||||||
|
try:
|
||||||
|
mydb = mysql.connector.connect(
|
||||||
|
host="localhost",
|
||||||
|
user="root",
|
||||||
|
password="Dingleberries69!",
|
||||||
|
database="NodeData"
|
||||||
|
)
|
||||||
|
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)"
|
||||||
|
processedData = json.loads(data)
|
||||||
|
processedTemp = (processedData['Temp'])
|
||||||
|
processedHumi = (processedData['Humi'])
|
||||||
|
processedeCO2 = (processedData['eCO2'])
|
||||||
|
processedTvoc = (processedData['TVOC'])
|
||||||
|
processedMAC = (processedData['node'])
|
||||||
|
MACTuple = (processedMAC,)
|
||||||
|
|
||||||
|
MACDataFetching = MACDataReading.fetchall()
|
||||||
|
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:
|
||||||
|
print(query ,i)
|
||||||
|
cursor.execute(query, i)
|
||||||
|
mydb.commit()
|
||||||
|
|
||||||
|
except mysql.connector.Error as err:
|
||||||
|
print("MySQL Error:", err)
|
||||||
|
finally:
|
||||||
|
cursor.close()
|
||||||
|
mydb.close()
|
||||||
|
|
||||||
|
async def receive_data():
|
||||||
|
uri = "ws://145.92.8.114/ws"
|
||||||
|
|
||||||
|
try:
|
||||||
|
async with websockets.connect(uri) as websocket:
|
||||||
|
while True:
|
||||||
|
data = await websocket.recv()
|
||||||
|
print(f"Received data: {data}")
|
||||||
|
await process_data(data)
|
||||||
|
except websockets.ConnectionClosedError as e:
|
||||||
|
print("WebSocket connection closed:", e)
|
||||||
|
|
||||||
|
async def main():
|
||||||
|
await receive_data()
|
||||||
|
|
||||||
|
asyncio.run(main())
|
||||||
|
|
Reference in New Issue
Block a user