import flask from flask import request, jsonify, render_template import os from dotenv import load_dotenv import globs from api_logic import api from google_sheets import send_data_to_google_sheets, start_scheduler # Загрузка переменных окружения load_dotenv() app = flask.Flask(__name__, template_folder="./") app.config['DEBUG'] = True @app.route("/") def index(): return render_template('index.html') @app.route('/online', methods=['GET']) def online(): return render_template('online.html') @app.route('/online_api', methods=['GET']) def online_api(): return jsonify(dey=globs.dey, wek=globs.wek, v_hid=globs.v_hid, v_min=globs.v_min, ph=globs.ph, ec=globs.ec, tS=globs.tS, tA=globs.tA, hDm=globs.hDm, sVen=globs.sVen, rFul=globs.rFul, rLi=globs.rLi, rWat=globs.rWat, rRas=globs.rRas, rPH=globs.rPH, rEC=globs.rEC, rSl=globs.rSl, rLe=globs.rLe, alW=globs.alW ) @app.route('/settings', methods=['GET']) def settings(): return render_template('settings.html') @app.route('/settings_api', methods=['GET']) def settings_api(): return jsonify(ph_eep=globs.ph_eep, ph_on_eep=globs.ph_on_eep, ec_eep=globs.ec_eep, ec_A_eep=globs.ec_A_eep, ec_B_eep=globs.ec_B_eep, ec_C_eep=globs.ec_C_eep, l_ON_h_eep=globs.l_ON_h_eep, l_ON_m_eep=globs.l_ON_m_eep, l_OFF_h_eep=globs.l_OFF_h_eep, l_OFF_m_eep=globs.l_OFF_m_eep, t_Voz_eep=globs.t_Voz_eep ) @app.route('/set_res') def set_res(): globs.eep_set = 0 return jsonify(value_set="reset") @app.route('/pH_set') def set_pH_value(): ph_value = request.args.get('value') globs.ph_set = ph_value globs.eep_set = 1 return "pH value set successfully" @app.route('/ph_on_set') def ph_on_value(): ph_on_value = request.args.get('value') globs.ph_on_set = ph_on_value globs.eep_set = 2 return "EC value set successfully" @app.route('/EC_set') def set_EC_value(): ec_value = request.args.get('value') globs.ec_set = ec_value globs.eep_set = 3 return "EC value set successfully" @app.route('/ec_A_set') def ec_A_setValue(): ec_A_setValue = request.args.get('value') globs.ec_A_set = ec_A_setValue globs.eep_set = 4 return "EC value set successfully" @app.route('/ec_B_set') def ec_B_setValue(): ec_B_setValue = request.args.get('value') globs.ec_B_set = ec_B_setValue globs.eep_set = 5 return "EC value set successfully" @app.route('/ec_C_set') def ec_C_setValue(): ec_C_setValue = request.args.get('value') globs.ec_C_set = ec_C_setValue globs.eep_set = 6 return "EC value set successfully" @app.route('/l_ON_set') def l_ON_set(): globs.l_ON_h_set = request.args.get('l_ON_h_set') globs.l_ON_m_set = request.args.get('l_ON_m_set') globs.eep_set = 7 return "EC value set successfully" @app.route('/l_OFF_set') def l_OFF_set(): globs.l_OFF_h_set = request.args.get('l_OFF_h_set') globs.l_OFF_m_set = request.args.get('l_OFF_m_set') globs.eep_set = 8 return "EC value set successfully" @app.route('/t_Voz_eep_set') def t_Voz_eep_set(): t_Voz_eep_set = request.args.get('value') globs.ec_t_Voz_set = t_Voz_eep_set globs.eep_set = 9 return "EC value set successfully" @app.route("/api", methods=['GET']) def handle_api(): response = api() return response @app.route('/graf_json', methods=['GET']) def graf_json(): return render_template('graf.html') if __name__ == '__main__': send_data_to_google_sheets() # Отправка данных при запуске сервера scheduler = start_scheduler() # Запуск планировщика try: app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 7860)), use_reloader=False) except KeyboardInterrupt: print("Завершение работы сервера.") finally: scheduler.shutdown()