import eventlet eventlet.monkey_patch() # Das sollte ganz oben sein, um sicherzustellen, dass eventlet alles patcht from flask import Flask, render_template from flask_socketio import SocketIO import paho.mqtt.client as mqtt from routes.unsecure_routes import unsecure app = Flask(__name__, static_url_path='/unsecure/static') socketio = SocketIO(app, cors_allowed_origins="*") # MQTT Setup mqtt_client = mqtt.Client(protocol=mqtt.MQTTv5) def on_mqtt_message(client, userdata, msg): payload = msg.payload.decode() print(f"[MQTT] {msg.topic}: {payload}") # Sende die erhaltenen MQTT-Daten über WebSocket an alle verbundenen Clients socketio.emit("esp_update", {"topic": msg.topic, "payload": payload}) mqtt_client.on_message = on_mqtt_message mqtt_client.connect("localhost", 1883) # MQTT-Broker-Adresse mqtt_client.subscribe("lires/esp1/status") mqtt_client.loop_start() @socketio.on("send_to_esp") def handle_send(data): mqtt_client.publish("lires/esp1/control", data) app.register_blueprint(unsecure) if __name__ == '__main__': socketio.run(app, host="0.0.0.0", port=3060)