from flask import Flask, jsonify, render_template, request from esp32_sim import esp32 from pico_sim import PicoSimulator app = Flask(__name__) pico = PicoSimulator(esp32) @app.route("/") def index(): return render_template("index.html") @app.route("/status") def status(): return jsonify(pico.get_status()) @app.route("/battery") def battery(): return jsonify(pico.get_status()["battery"]) @app.route("/temps") def temps(): return jsonify(pico.get_status()["temps"]) @app.route("/relays") def relays(): return jsonify(pico.get_status()["relays"]) @app.route("/relay/", methods=["POST"]) def set_relay(name): data = request.get_json(force=True) response = pico.set_relay(name, data.get("state", False)) if not response["success"]: return jsonify(response), 404 return jsonify(response) @app.route("/network") def network(): return jsonify(pico.get_status()["network"]) @app.route("/network/wifi", methods=["POST"]) def enable_wifi(): data = request.get_json(force=True) minutes = int(data.get("minutes", 10)) return jsonify(pico.enable_wifi(minutes)) @app.route("/vehicle/ignition", methods=["POST"]) def toggle_ignition(): return jsonify(pico.toggle_ignition()) @app.route("/sensor//fault", methods=["POST"]) def toggle_sensor_fault(name): response = pico.toggle_sensor_fault(name) if not response["success"]: return jsonify(response), 404 return jsonify(response) if __name__ == "__main__": app.run(host="0.0.0.0", port=5000, debug=True)