Spaces:
Sleeping
Sleeping
| from flask import Flask, render_template, request, jsonify, Response | |
| from flask_bootstrap import Bootstrap | |
| from flask_sqlalchemy import SQLAlchemy | |
| from datetime import datetime | |
| import json | |
| import plotly | |
| import requests | |
| from device_core import Camera, Sensor | |
| from models import init_db, Device | |
| from device_routes import SENSORS, CAMERAS, LIGHTING_DATA | |
| from config import Config | |
| from flask import Flask, render_template, jsonify | |
| from device_blueprints import sensor_blueprint, camera_blueprint | |
| import gradio as gr | |
| app = Flask(__name__) | |
| app.config.from_object(Config) | |
| Bootstrap(app) | |
| init_db(app) | |
| # from main import app, db, Device | |
| # app.app_context().push() | |
| # db.create_all() | |
| app.register_blueprint(sensor_blueprint, url_prefix='/sensors') | |
| app.register_blueprint(camera_blueprint, url_prefix='/cameras') | |
| # --------------------------------------------------------------------------------------------- | |
| def home(): | |
| # Filter sensors based on their types | |
| thermo = [sensor for sensor in SENSORS if sensor.id.startswith('t')] | |
| ele = [sensor for sensor in SENSORS if sensor.id.startswith('e')] | |
| # Render the index template with the plot data and sensor lists | |
| return render_template('index.html', thermo=thermo, ele=ele, cameras=CAMERAS) | |
| def receive_data(): | |
| global LIGHTING_DATA | |
| print(LIGHTING_DATA) | |
| try: | |
| if request.method == 'POST': | |
| address_value = request.json.get('address') | |
| intensity_value = request.json.get('value') | |
| if intensity_value is None: | |
| return jsonify({"error": "Value not provided"}), 400 | |
| if address_value is None: | |
| return jsonify({"error": "Address not provided"}), 400 | |
| address_value = int(address_value) | |
| LIGHTING_DATA[address_value] = intensity_value | |
| response = requests.post(f"http://127.0.0.1:1880/", json={"daliData_flask":[address_value, intensity_value]}, timeout=1) | |
| response.raise_for_status() | |
| return jsonify({"address": address_value, "value": intensity_value}), 200 | |
| elif request.method == 'GET': | |
| address_value = request.args.get('address') | |
| if not address_value: | |
| return jsonify({"error": "Address not provided"}), 400 | |
| address_value = int(address_value) | |
| intensity_value = LIGHTING_DATA.get(address_value, 0) | |
| return jsonify({"address": address_value, "value": intensity_value}), 200 | |
| except requests.RequestException as e: | |
| print("debug") | |
| return jsonify({"error": str(e)}), 500 | |
| if __name__ == '__main__': | |
| app.run(host="0.0.0.0", port=7860) | |