From 8acb6bfaf120111b792954d0a452b49b8f683f5d Mon Sep 17 00:00:00 2001 From: jeanGaston Date: Sun, 5 May 2024 21:27:17 +0200 Subject: [PATCH] updates --- Install.sh | 107 +++++++++++++++++++++------------ Program/Webserver.py | 9 +-- Program/datascraper.py | 3 +- Program/templates/history.html | 6 +- Program/templates/index.html | 2 +- 5 files changed, 79 insertions(+), 48 deletions(-) diff --git a/Install.sh b/Install.sh index b0da7de..88ba99e 100755 --- a/Install.sh +++ b/Install.sh @@ -1,56 +1,89 @@ #!/bin/bash -# Install Python3 and pip -sudo apt update -sudo apt install -y python3 python3-pip python3-flask python3-schedule python3-plotly python3-pandas -# Install required Python modules -pip3 install bluepy --break-system-packages -# Create env.py file -echo -n "Enter database file name (default: data.db): " -read db_file -db_file=${db_file:-data.db} -echo -e "DBFILE = '$db_file'" >> Program/env.py +# Install and enable SSH +install_ssh() { + echo "Installing SSH..." + sudo apt update + sudo apt install -y openssh-server + sudo systemctl start ssh + sudo systemctl enable ssh + echo "SSH installed and enabled." +} + +# Install and enable ProFTPD +install_ftp() { + echo "Installing ProFTPD..." + sudo apt update + sudo apt install -y proftpd + sudo systemctl start proftpd + sudo systemctl enable proftpd + echo "ProFTPD installed and enabled." +} + + +# Install Python3 and modules +install_python(){ + sudo apt update + sudo apt install -y python3 python3-pip python3-flask python3-schedule python3-plotly python3-pandas + pip3 install bluepy --break-system-packages +} +# Create env.py file and add values +env_py() { + echo -n "Enter database file name (default: data.db): " + read db_file + db_file=${db_file:-data.db} + echo -e "DBFILE = '$db_file'" >> Program/env.py -echo -n "Enter smtp server address : " -read smtp -echo -e "SMTP = '$smtp'" >> Program/env.py + echo -n "Enter smtp server address : " + read smtp + echo -e "SMTP = '$smtp'" >> Program/env.py -echo -n "Enter smtp port (default 25) : " -read smtp_port -smtp_port=${smtp_portx:-25} -echo -e "SMTP_PORT = $smtp_port" >> Program/env.py + echo -n "Enter smtp port (default 25) : " + read smtp_port + smtp_port=${smtp_portx:-25} + echo -e "SMTP_PORT = $smtp_port" >> Program/env.py -echo -n "Enter sender email address, used as smtp id : " -read smtp_id -echo -e "SMTP_ID = '$smtp_id'" >> Program/env.py + echo -n "Enter sender email address, used as smtp id : " + read smtp_id + echo -e "SMTP_ID = '$smtp_id'" >> Program/env.py -echo -n "Enter sender password, used as smtp password : " -read smtp_pwd -echo -e "SMTP_PWD = '$smtp_pwd'" >> Program/env.py + echo -n "Enter sender password, used as smtp password : " + read smtp_pwd + echo -e "SMTP_PWD = '$smtp_pwd'" >> Program/env.py -echo -n "Enter recipient email address : " -read recipient -echo -e "RECIPIENT = '$recipient'" >> Program/env.py + echo -n "Enter recipient email address : " + read recipient + echo -e "RECIPIENT = '$recipient'" >> Program/env.py -echo -n "Enter Humidity rate alert threshold without percent symbol (default 70): " -read hr_max -hr_max=${hr_max:-70} -echo -e "MAX_HR= $hr_max" >> Program/env.py + echo -n "Enter Humidity rate alert threshold without percent symbol (default 70): " + read hr_max + hr_max=${hr_max:-70} + echo -e "MAX_HR= $hr_max" >> Program/env.py -echo -n "Enter temperature alert threshold without °c symbole (default 30) : " -read temp_max -temp_max=${temp_max:-30} -echo -e "MAX_TEMP= $temp_max" >> Program/env.py + echo -n "Enter temperature alert threshold without °c symbole (default 30) : " + read temp_max + temp_max=${temp_max:-30} + echo -e "MAX_TEMP= $temp_max" >> Program/env.py + + echo -e "SENSORS = {'d6:c6:c7:39:a2:e8': 'DEMO3', 'd6:1c:bf:b7:76:62': 'DEMO1', 'd7:ef:13:27:15:29': 'DEMO2'}" >> Program/env.py + } -echo -e "SENSORS = {'d6:c6:c7:39:a2:e8': 'DEMO3', 'd6:1c:bf:b7:76:62': 'DEMO1', 'd7:ef:13:27:15:29': 'DEMO2'}" >> Program/env.py # Execute main.py -cd Program -python3 main.py +exec(){ + cd Program + python3 main.py +} + +install_ssh +install_ssh +install_python +env_py +exec diff --git a/Program/Webserver.py b/Program/Webserver.py index b5bac0e..57a477d 100644 --- a/Program/Webserver.py +++ b/Program/Webserver.py @@ -58,17 +58,14 @@ def dashboard(): def history(): data = fetch_all_sensor() disp_data = [] - + sensors_name = [] for mac, name in data: disp_data += [fetch_data_by_sensor(name)] + sensors_name.append[name] - """ S1 = fetch_data_by_sensor("DEMO1") - S2 = fetch_data_by_sensor("DEMO2") - S3 = fetch_data_by_sensor("DEMO3") """ - - return render_template('history.html', S1=disp_data[0], S2=disp_data[1], S3=disp_data[2]) + return render_template('history.html', S1=disp_data[0], S2=disp_data[1], S3=disp_data[2], sensor=sensors_name) @app.route('/adm', methods=['GET']) def admin(): diff --git a/Program/datascraper.py b/Program/datascraper.py index 48d5024..8ca8a54 100644 --- a/Program/datascraper.py +++ b/Program/datascraper.py @@ -13,13 +13,14 @@ def BltDataScrap(): #print("Begin device scan") devices = scanner.scan(timeout=3.0) for device in devices: - if device.addr in SENSORS : + if device.addr in sensor_dict : #print( #f"Device found {device.addr} ({device.addrType}), " #f"RSSI={device.rssi} dB" #) for adtype, description, value in device.getScanData(): if adtype == 22: + #print(value) temp = int(value[24:28], 16) / 100 HR = int(value[28:32], 16) / 100 Bat = int(value[20:22], 16) diff --git a/Program/templates/history.html b/Program/templates/history.html index 6b01f51..6706588 100644 --- a/Program/templates/history.html +++ b/Program/templates/history.html @@ -60,7 +60,7 @@ tr:hover { Admin

Database Contents

-

Sensor 1

+

{{ sensor[0] }}

@@ -81,7 +81,7 @@ tr:hover { {% endfor %}
Id
-

Sensor 2

+

{{ sensor[1] }}

@@ -102,7 +102,7 @@ tr:hover { {% endfor %}
Id
-

Sensor 3

+

{{ sensor[2] }}

diff --git a/Program/templates/index.html b/Program/templates/index.html index 0d6374e..1b2b524 100644 --- a/Program/templates/index.html +++ b/Program/templates/index.html @@ -98,7 +98,7 @@ Plotly.newPlot('graph_hr', HR_graphData.data, HR_graphData.layout);
Id