Files
gimmiCoffee/server.py
2025-04-16 16:47:25 +00:00

36 lines
1.1 KiB
Python

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)