From 6f391d01f663e427e4614a6edafe8722692e6ce2 Mon Sep 17 00:00:00 2001 From: Atilla Date: Tue, 2 Apr 2024 11:23:40 +0200 Subject: [PATCH] devices GEEN IDEE! --- app.py | 89 +++++++++++++++++++++++++++++++--------- src/py/script/devices.py | 5 ++- src/py/static/js/main.js | 27 +++++++----- 3 files changed, 90 insertions(+), 31 deletions(-) diff --git a/app.py b/app.py index 95edb19..eb7f585 100644 --- a/app.py +++ b/app.py @@ -1,3 +1,56 @@ +# from flask import Flask, jsonify +# import mysql.connector + +# app = Flask(__name__) + +# def database_connect(): +# try: +# connection = mysql.connector.connect( +# host='localhost', +# user='root', +# password='', +# database='goodgarden' +# ) +# return connection +# except Exception as e: +# print("Database connection failed:", e) +# return None + +# # Function to get data from the MySQL database +# def get_database_data(): + +# mydb = database_connect() + +# if mydb and mydb.is_connected(): + +# cursor = mydb.cursor() + +# # Query to retrieve the latest battery voltage data +# query = "SELECT label, last_seen, last_battery_voltage, device_id FROM devices" +# cursor.execute(query) +# battery_data = cursor.fetchall() +# mydb.close() +# return battery_data + +# @app.route('/', methods=['GET']) +# def get_data(): +# battery_data_322 = get_database_data() + +# if battery_data_322 is None: +# return jsonify({"error": "Failed to fetch data from database"}) + +# data_dict = { +# "label": battery_data_322[0], +# "last_seen": battery_data_322[1], +# "last_battery_voltage": battery_data_322[2], +# "device_id": battery_data_322[3] +# } + +# return jsonify(data_dict) + +# if __name__ == "__main__": +# app.run(host='127.0.0.1', port=5000) + from flask import Flask, jsonify import mysql.connector @@ -5,48 +58,46 @@ app = Flask(__name__) def database_connect(): try: + connection = mysql.connector.connect( - host='localhost', - user='root', - password='', - database='goodgarden' + host="localhost", + user="root", + password="", + database="goodgarden" ) return connection + except Exception as e: + print("Database connection failed:", e) return None + # Function to get data from the MySQL database def get_database_data(): - mydb = database_connect() - if mydb and mydb.is_connected(): - - cursor = mydb.cursor() + + cursor = mydb.cursor(dictionary=True) # Enable dictionary result # Query to retrieve the latest battery voltage data query = "SELECT label, last_seen, last_battery_voltage, device_id FROM devices" cursor.execute(query) - battery_data = cursor.fetchone() + battery_data = cursor.fetchall() # Fetch all rows mydb.close() return battery_data + @app.route('/', methods=['GET']) def get_data(): - battery_data_322 = get_database_data() + battery_data = get_database_data() - if battery_data_322 is None: + if battery_data is None or len(battery_data) == 0: + return jsonify({"error": "Failed to fetch data from database"}) - data_dict = { - "label": battery_data_322[0], - "last_seen": battery_data_322[1], - "last_battery_voltage": battery_data_322[2], - "device_id": battery_data_322[3] - } - return jsonify(data_dict) + return jsonify(battery_data) # Directly return the list of dictionaries as JSON if __name__ == "__main__": - app.run(host='127.0.0.1', port=5000) + app.run(host="127.0.0.1", port=5000) diff --git a/src/py/script/devices.py b/src/py/script/devices.py index e057c1b..7e5c161 100644 --- a/src/py/script/devices.py +++ b/src/py/script/devices.py @@ -49,6 +49,9 @@ def on_message(client, userdata, message): print(f"\033[92mMessage received on topic\033[0m {message.topic}: {data}") +# def berekenAlgo(data): + + if __name__ == "__main__": topic = "goodgarden/devices" - subscribe.callback(on_message, topic) + subscribe.callback(on_message, topic) \ No newline at end of file diff --git a/src/py/static/js/main.js b/src/py/static/js/main.js index a24b703..a923da9 100644 --- a/src/py/static/js/main.js +++ b/src/py/static/js/main.js @@ -138,16 +138,21 @@ function fetchBatteryData() { }); } -function updateBatteryData(batteryData) { - document.getElementById('deviceNumber-322').innerHTML = batteryData[1].device_id; - document.getElementById('voltage-322').innerHTML = batteryData[1].label; - document.getElementById('time-322').innerHTML = batteryData[1].last_seen; - document.getElementById('tevredenheid-322').innerHTML = batteryData[1].last_battery_voltage; - - document.getElementById('deviceNumber-256').innerHTML = batteryData[0].device_id; - document.getElementById('voltage-256').innerHTML = batteryData[0].label; - document.getElementById('time-256').innerHTML = batteryData[0].last_seen; - document.getElementById('tevredenheid-256').innerHTML = batteryData[0].last_battery_voltage; - +function updateBatteryData(batteryData) +{ + if(batteryData[1].device_id == 322) + { + document.getElementById('deviceNumber-322').innerHTML = batteryData[1].device_id; + document.getElementById('voltage-322').innerHTML = batteryData[1].label; + document.getElementById('time-322').innerHTML = batteryData[1].last_seen; + document.getElementById('tevredenheid-322').innerHTML = batteryData[1].last_battery_voltage; + } + if (batteryData[0].device_id == 256) + { + document.getElementById('deviceNumber-256').innerHTML = batteryData[0].device_id; + document.getElementById('voltage-256').innerHTML = batteryData[0].label; + document.getElementById('time-256').innerHTML = batteryData[0].last_seen; + document.getElementById('tevredenheid-256').innerHTML = batteryData[0].last_battery_voltage; + } console.log(batteryData); } \ No newline at end of file