diff --git a/api/all.json b/api/all.json index 302234b..584543c 100644 --- a/api/all.json +++ b/api/all.json @@ -26,5 +26,313 @@ "humidity": "33.23%", "air_pollution": false, "time": "01/02/22" + }, + "22:21:30": { + "temperature": "26.07C", + "pressure": "953.17hPa", + "humidity": "33.67%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:24:42": { + "temperature": "26.20C", + "pressure": "953.12hPa", + "humidity": "33.93%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:26:27": { + "temperature": "26.18C", + "pressure": "953.11hPa", + "humidity": "34.19%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:27:44": { + "temperature": "26.24C", + "pressure": "953.05hPa", + "humidity": "34.07%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:28:10": { + "temperature": "26.22C", + "pressure": "953.06hPa", + "humidity": "34.16%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:29:16": { + "temperature": "26.25C", + "pressure": "953.10hPa", + "humidity": "34.27%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:30:02": { + "temperature": "26.24C", + "pressure": "953.10hPa", + "humidity": "34.28%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:30:59": { + "temperature": "26.26C", + "pressure": "953.14hPa", + "humidity": "34.68%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:34:52": { + "temperature": "26.25C", + "pressure": "953.17hPa", + "humidity": "34.40%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:17:28": { + "temperature": "26.14C", + "pressure": "953.12hPa", + "humidity": "34.81%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:39:56": { + "temperature": "26.23C", + "pressure": "953.08hPa", + "humidity": "34.97%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:42:23": { + "temperature": "26.24C", + "pressure": "953.10hPa", + "humidity": "34.89%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:43:45": { + "temperature": "26.16C", + "pressure": "953.07hPa", + "humidity": "35.37%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:44:59": { + "temperature": "26.24C", + "pressure": "953.01hPa", + "humidity": "35.27%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:45:38": { + "temperature": "26.21C", + "pressure": "952.99hPa", + "humidity": "35.36%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:45:54": { + "temperature": "26.20C", + "pressure": "953.01hPa", + "humidity": "35.22%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:47:05": { + "temperature": "26.18C", + "pressure": "952.85hPa", + "humidity": "35.44%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:47:25": { + "temperature": "26.14C", + "pressure": "952.83hPa", + "humidity": "35.38%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:50:17": { + "temperature": "26.06C", + "pressure": "952.77hPa", + "humidity": "35.76%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:51:01": { + "temperature": "26.12C", + "pressure": "952.77hPa", + "humidity": "35.77%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:17:25": { + "temperature": "26.09C", + "pressure": "952.79hPa", + "humidity": "36.00%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:53:52": { + "temperature": "26.10C", + "pressure": "952.76hPa", + "humidity": "35.94%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:56:31": { + "temperature": "26.09C", + "pressure": "952.74hPa", + "humidity": "35.91%", + "air_pollution": false, + "time": "01/03/22" + }, + "22:57:19": { + "temperature": "26.15C", + "pressure": "952.94hPa", + "humidity": "36.03%", + "air_pollution": false, + "time": "01/03/22" + }, + "23:03:05": { + "temperature": "26.25C", + "pressure": "952.85hPa", + "humidity": "35.84%", + "air_pollution": false, + "time": "01/03/22" + }, + "23:05:28": { + "temperature": "26.26C", + "pressure": "952.82hPa", + "humidity": "35.85%", + "air_pollution": false, + "time": "01/03/22" + }, + "23:06:05": { + "temperature": "25.75C", + "pressure": "952.98hPa", + "humidity": "33.05%", + "air_pollution": false, + "time": "01/03/22" + }, + "23:39:00": { + "temperature": "25.93C", + "pressure": "952.91hPa", + "humidity": "32.69%", + "air_pollution": false, + "time": "01/03/22" + }, + "23:39:33": { + "temperature": "25.97C", + "pressure": "952.92hPa", + "humidity": "32.74%", + "air_pollution": false, + "time": "01/03/22" + }, + "23:39:50": { + "temperature": "26.03C", + "pressure": "952.91hPa", + "humidity": "32.82%", + "air_pollution": false, + "time": "01/03/22" + }, + "23:44:42": { + "temperature": "25.99C", + "pressure": "952.93hPa", + "humidity": "33.10%", + "air_pollution": false, + "time": "01/03/22" + }, + "23:45:39": { + "temperature": "25.99C", + "pressure": "952.85hPa", + "humidity": "33.77%", + "air_pollution": false, + "time": "01/03/22" + }, + "23:47:43": { + "temperature": "26.00C", + "pressure": "952.82hPa", + "humidity": "33.70%", + "air_pollution": false, + "time": "01/03/22" + }, + "23:49:18": { + "temperature": "26.08C", + "pressure": "952.76hPa", + "humidity": "34.56%", + "air_pollution": false, + "time": "01/03/22" + }, + "23:54:37": { + "temperature": "26.20C", + "pressure": "952.92hPa", + "humidity": "34.15%", + "air_pollution": false, + "time": "01/03/22" + }, + "23:58:26": { + "temperature": "26.20C", + "pressure": "952.88hPa", + "humidity": "34.52%", + "air_pollution": false, + "time": "01/03/22" + }, + "00:01:46": { + "temperature": "25.66C", + "pressure": "952.87hPa", + "humidity": "28.34%", + "air_pollution": false, + "time": "01/04/22" + }, + "00:01:47": { + "temperature": "25.62C", + "pressure": "952.86hPa", + "humidity": "28.26%", + "air_pollution": false, + "time": "01/04/22" + }, + "00:01:48": { + "temperature": "25.64C", + "pressure": "952.88hPa", + "humidity": "28.22%", + "air_pollution": false, + "time": "01/04/22" + }, + "00:01:49": { + "temperature": "25.63C", + "pressure": "952.87hPa", + "humidity": "28.22%", + "air_pollution": false, + "time": "01/04/22" + }, + "00:01:51": { + "temperature": "25.62C", + "pressure": "952.88hPa", + "humidity": "28.20%", + "air_pollution": false, + "time": "01/04/22" + }, + "00:01:52": { + "temperature": "25.64C", + "pressure": "952.85hPa", + "humidity": "28.22%", + "air_pollution": false, + "time": "01/04/22" + }, + "00:01:53": { + "temperature": "25.61C", + "pressure": "952.86hPa", + "humidity": "28.25%", + "air_pollution": false, + "time": "01/04/22" + }, + "00:04:22_01/04/22": { + "temperature": "25.32C", + "pressure": "952.88hPa", + "humidity": "25.90%", + "air_pollution": false, + "time": "00:04:22" } } \ No newline at end of file diff --git a/main.py b/main.py index 1f59012..2c3bd77 100644 --- a/main.py +++ b/main.py @@ -1,8 +1,12 @@ -from flask import Flask, render_template, jsonify +from flask import Flask, render_template, jsonify, redirect, abort, request import RPi.GPIO as gpio from time import sleep import subprocess import json +import saver + +# Change this if you change the dir +HOME_DIR = "/home/pi/PWSS/" # MQ-135 gas sensor def stinker(): @@ -22,7 +26,7 @@ def stinker(): # BME280 Humidity, Temperature, Pressure sensor def htp(): - string = subprocess.check_output(["./home/pi/PWSS/HTP"]).decode(encoding='UTF-8',errors='strict') + string = subprocess.check_output([f"{HOME_DIR}/HTP"]).decode(encoding='UTF-8',errors='strict') string = string.split("temperature:")[1] temperature = string.split(" pressure:")[0].replace("*C", "C") string = string.split(" pressure:")[1] @@ -49,17 +53,28 @@ def home(): @app.route("/api/all") def all_data(): - with open("api/all.json","r") as f: + with open(f"{HOME_DIR}/api/all.json","r") as f: data = json.load(f) return jsonify(data) @app.route("/api/daily") def daily_data(): - with open("api/daily.json","r") as f: + with open(f"{HOME_DIR}/api/daily.json","r") as f: data = json.load(f) return jsonify(data) +@app.route("/api/save", methods = ['GET', 'POST']) +def save_data(): + if request.method == "POST": + print("will it save?") + saver.manual() + print("saved main") + return redirect("/") + else: + return redirect("/api/all") + + if __name__=="__main__": app.run(host='0.0.0.0') \ No newline at end of file diff --git a/saver.py b/saver.py new file mode 100644 index 0000000..6f25f79 --- /dev/null +++ b/saver.py @@ -0,0 +1,35 @@ +from main import stinker, htp, HOME_DIR +from datetime import datetime +import pytz, json + +tz = pytz.timezone('Europe/Sofia') + + +def get(): + data = htp() + data["air_pollution"] = stinker() + data["time"] = datetime.now(tz).strftime("%H:%M:%S") + return data + +def daily(): + data = get() + with open("{HOME_DIR}/api/daily.json", "r+") as f: + f_data = json.load(f) + f_data[date] = data + f.seek(0) + json.dump(f_data, f, indent=4) + f.close() + + +def manual(): + data = get() + + with open(f"{HOME_DIR}/api/all.json", "r+") as f: + f_data = json.load(f) + f_data[f'{datetime.now(tz).strftime("%H:%M:%S")}&{datetime.now(tz).strftime("%x")}'] = data + f.seek(0) + json.dump(f_data, f, indent=4) + + print("Saved") + + diff --git a/templates/index.html b/templates/index.html index 983b0ba..cdb4658 100644 --- a/templates/index.html +++ b/templates/index.html @@ -16,6 +16,9 @@