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