diff --git a/Program/Webserver.py b/Program/Webserver.py index 47dfac8..ac40cf4 100644 --- a/Program/Webserver.py +++ b/Program/Webserver.py @@ -79,7 +79,10 @@ def admin(): # Fetch email settings email_settings = fetch_email_settings() - return render_template('admin.html', data=data, sensors=data, email_settings=email_settings) + + #Fetch threshold settings + threshold_settings = fetch_threshold_settings() + return render_template('admin.html', data=data, sensors=data, email_settings=email_settings, threshold_settings=threshold_settings) @app.route('/updateMail', methods=['POST']) def update_mail(): diff --git a/Program/__pycache__/mail.cpython-311.pyc b/Program/__pycache__/mail.cpython-311.pyc index 173d674..de6672d 100644 Binary files a/Program/__pycache__/mail.cpython-311.pyc and b/Program/__pycache__/mail.cpython-311.pyc differ diff --git a/Program/database.py b/Program/database.py index 5fb05f8..8388611 100644 --- a/Program/database.py +++ b/Program/database.py @@ -5,7 +5,6 @@ import plotly.graph_objs as go import pandas as pd -import time from env import * @@ -31,14 +30,16 @@ def create_database(db_name): Bat INT, FOREIGN KEY (Sensor) REFERENCES Sensors(Name))''') - c.execute('''CREATE TABLE IF NOT EXISTS settings ( + c.execute('''CREATE TABLE IF NOT EXISTS alert_settings ( id INTEGER PRIMARY KEY, smtp_id TEXT, smtp_pwd TEXT, smtp_server TEXT, smtp_port INTEGER, - recipient_email TEXT);''') - c.execute("INSERT OR IGNORE INTO settings (smtp_id, smtp_pwd, smtp_server, smtp_port, recipient_email) VALUES (?, ?, ?, ?, ?)", (SMTP_ID, SMTP_PWD, SMTP, SMTP_PORT, RECIPIENT)) + recipient_email TEXT, + MAX_HR INT + MAX_TEMP);''') + c.execute("INSERT OR IGNORE INTO alert_settings (smtp_id, smtp_pwd, smtp_server, smtp_port, recipient_email, MAX_HR, MAX_TEMP) VALUES (?, ?, ?, ?, ?, ?, ?)", (SMTP_ID, SMTP_PWD, SMTP, SMTP_PORT, RECIPIENT, MAX_HR, MAX_TEMP)) @@ -49,11 +50,11 @@ def create_database(db_name): def check_database(db_name): if not path.exists(db_name): - print(f"[{datetime.now()}] Database '{db_name}' not found. Creating...") + print(f"[{datetime.now()}] DB - Database '{db_name}' not found. Creating...") create_database(db_name) - print(f"[{datetime.now()}] Database and tables created successfully.") + print(f"[{datetime.now()}] DB - Database and tables created successfully.") else: - print(f"[{datetime.now()}] Database '{db_name}' found.") + print(f"[{datetime.now()}] DB - Database '{db_name}' found.") # Function to add data to SensorData table @@ -107,7 +108,15 @@ def update_sensor_settings(new_name, old_name): def fetch_email_settings(): conn = sqlite3.connect(DBFILE) c = conn.cursor() - c.execute("SELECT smtp_id, smtp_pwd, smtp_server, smtp_port, recipient_email FROM settings") + c.execute("SELECT smtp_id, smtp_pwd, smtp_server, smtp_port, recipient_email FROM alert_settings") + settings = c.fetchone() + conn.close() + return settings +# Function to fetch MAX HR and MAX temp from the database +def fetch_threshold_settings(): + conn = sqlite3.connect(DBFILE) + c = conn.cursor() + c.execute("SELECT MAX_HR, MAX_TEMP FROM alert_settings") settings = c.fetchone() conn.close() return settings @@ -116,9 +125,19 @@ def fetch_email_settings(): def update_email_settings(smtp_id, smtp_pwd, smtp_server, smtp_port, recipient_email): conn = sqlite3.connect(DBFILE) c = conn.cursor() - c.execute("UPDATE settings SET smtp_id = ?, smtp_pwd = ?, smtp_server = ?, smtp_port = ?, recipient_email = ? ", (smtp_id, smtp_pwd, smtp_server, smtp_port, recipient_email)) + c.execute("UPDATE alert_settings SET smtp_id = ?, smtp_pwd = ?, smtp_server = ?, smtp_port = ?, recipient_email = ? ", (smtp_id, smtp_pwd, smtp_server, smtp_port, recipient_email)) conn.commit() - print(f"[{datetime.now()}] Mail settings updated :") + print(f"[{datetime.now()}] Web - Mail settings updated :") + print_email_settings() + conn.close() + +# Function to update threshold settings in the database +def update_threshold_settings(max_hr, max_temp): + conn = sqlite3.connect(DBFILE) + c = conn.cursor() + c.execute("UPDATE alert_settings SET smtp_id = ?, smtp_pwd = ? ", (smtp_id, smtp_pwd, smtp_server, smtp_port, recipient_email)) + conn.commit() + print(f"[{datetime.now()}] Web - Mail settings updated :") print_email_settings() conn.close() @@ -128,7 +147,7 @@ def print_email_settings(): c = conn.cursor() # Fetch email settings - c.execute("SELECT * FROM settings") + c.execute("SELECT * FROM alert_settings") settings = c.fetchone() # Print settings @@ -172,8 +191,6 @@ def history_graph_temp(): graph_json = fig.to_json() #print(graph_json) return graph_json - - def history_graph_HR(): # Fetch sensor data sensorList = fetch_all_sensor() diff --git a/Program/mail.py b/Program/mail.py index 523aae3..78cbb2a 100644 --- a/Program/mail.py +++ b/Program/mail.py @@ -32,7 +32,7 @@ def email(recipient_email, message, ReachedVal, Sensor, TimeStamp): - The sensor on wich the values are maxed out - the time stamp """ - print(fetch_email_settings()) + #print(fetch_email_settings()) sender_email, password, smtp_server, port, recipient_email = fetch_email_settings() # Create a MIME message @@ -55,11 +55,11 @@ def email(recipient_email, message, ReachedVal, Sensor, TimeStamp): # Send the email server.sendmail(sender_email, recipient_email, msg.as_string()) - print(f" [{datetime.now()}] Email sent successfully!") + print(f"[{datetime.now()}] Mail Alerte System - Email sent successfully!") # Close the connection server.quit() except Exception as e: - print(f"[{datetime.now()}] Failed to send email. Error: {e}") + print(f"[{datetime.now()}] Mail Alerte System - Failed to send email. Error: {e}") finally: None @@ -81,10 +81,10 @@ def check_and_send_email(): if temp > MAX_HR: email(RECIPIENT, MESSAGE_TEMP, temp, sensor, time) elif hr > MAX_TEMP: - email(RECIPIENT, MESSAGE_HR, temp, sensor, time) + email(RECIPIENT, MESSAGE_HR, hr, sensor, time) else: - print("No data found in the database.") + print(f"[{datetime.now()}] Mail - No data found in the database.") # Close database connection conn.close() diff --git a/Program/templates/admin.html b/Program/templates/admin.html index 9a13cb4..a54fb19 100644 --- a/Program/templates/admin.html +++ b/Program/templates/admin.html @@ -129,6 +129,12 @@

+ + +

+ + +