From 660ae4a448f8539888d8e71bbd5d89a27d4adc86 Mon Sep 17 00:00:00 2001 From: jeanGaston Date: Sat, 4 May 2024 15:17:55 +0200 Subject: [PATCH] updates --- Program/Webserver.py | 5 ++- Program/__pycache__/mail.cpython-311.pyc | Bin 4509 -> 4632 bytes Program/database.py | 43 ++++++++++++++++------- Program/mail.py | 10 +++--- Program/templates/admin.html | 6 ++++ 5 files changed, 45 insertions(+), 19 deletions(-) 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 173d6748c1e4670b8458764a8aa7acab7cf106ea..de6672dde5abfaeaf9aa4729635ddc850777930b 100644 GIT binary patch delta 502 zcmbQMJVS+dIWI340}z;)nWfcj~ie34m$k#lkbi=;YNEl(X!9!Cn8E@v!fs9=s{ zC}&LJ3T9AdfblfBHy>cJVf6XM7+s|wtKgfMnWNyClUh`gst{aRT#}lrpsV1T3lc3( z%_~tTE=^8OEiO(g&B>`$tTMr_VY3ojEF0-*7l|+=63Dv{77il$A}?}8 zUEzqjfPsDh!3SoLQIr33#53JtoNUM|HMxrOFQf0|3NC9^_8OKN)@7^=46A_{0vH+c zR7xaaJO+jorpXa3>f+3EnU^sF)d4X~T@Awm{>g$Y!ju1Vi7~QF7UMP%C=vupR;fdS zLswz454Sv{z~mh6GWH^7pj45}D={u5fr=;PBea$UBDx01ADRn*aa+ delta 400 zcmbQCGFO>*IWI340}xnM8mHN8}<`$ z{KXhuB_F%lgDsYkv48V2c1Ff}+o={)Y$n=GvAe)$3qcn-?5=RwUEr{Lz`@tg-NoI> z+r!%dgg@?bi+o^UWOZXiChv0aUf^??sxd`pqTUoeAQOlV2tw$K9IjV5TrXgtA3*Sd z8D!Fr$?BYOOq&=dZ{U}jypZ!Rqs8R;T-K92xWttCOC&*|0s$#Z%NQ9LRs%5vFf!CI zEa07dkW*=LJU2Td^W=1H6Q(M;$*Z~L8Tlrk<}RD;&6C4;Xz~soFGhpOEWGXtA}h)^ nlw9Poxx!;}fyd^@S2hMtz6*SM7diB=aOhv)(BE9cJBI}TceQtR 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 @@

+ + +

+ + +