From 58f9d3b451b61fb179fb1b7924f3b1d71d449362 Mon Sep 17 00:00:00 2001 From: derlole <122916573+derlole@users.noreply.github.com> Date: Thu, 17 Apr 2025 05:15:10 +0000 Subject: [PATCH] current run socketIO --- routes/unsecure_routes.py | 6 +-- server.py | 85 ++++++++++++++++++++++++++++----------- templates/test.html | 7 +++- 3 files changed, 70 insertions(+), 28 deletions(-) diff --git a/routes/unsecure_routes.py b/routes/unsecure_routes.py index 4b2ce5d..2a9c990 100644 --- a/routes/unsecure_routes.py +++ b/routes/unsecure_routes.py @@ -25,6 +25,6 @@ def fetch_command(): pending_command = None return jsonify({'befehl': cmd}) return jsonify({'befehl': None}) -# @unsecure.route('/test') -# def test(): -# return render_template('test.html') +@unsecure.route('/test') +def test(): + return render_template('test.html') diff --git a/server.py b/server.py index e247111..605b07b 100644 --- a/server.py +++ b/server.py @@ -1,35 +1,74 @@ -import eventlet -eventlet.monkey_patch() # Das sollte ganz oben sein, um sicherzustellen, dass eventlet alles patcht +# import eventlet +# eventlet.monkey_patch() # Das sollte ganz oben sein, um sicherzustellen, dass eventlet alles patcht -from flask import Flask, render_template +# 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) + +from flask import Flask 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="*") +app.config['SECRET_KEY'] = 'super-secret-key' # beliebig ändern +socketio = SocketIO(app, cors_allowed_origins="*", async_mode='threading') -# 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) +# Blueprint registrieren app.register_blueprint(unsecure) +# Simuliere regelmäßige Daten-Updates +import threading +import time + +def send_data(): + counter = 0 + while True: + print(f"Sending data: {counter}") + data = { + 'test': 'Live-Daten', + 'status': 'OK', + 'counter': counter + } + socketio.emit('update_data', data) + counter += 1 + time.sleep(2) # alle 2 Sekunden neue Daten + +# Hintergrund-Thread starten +thread = threading.Thread(target=send_data) +thread.daemon = True +thread.start() + if __name__ == '__main__': - socketio.run(app, host="0.0.0.0", port=3060) + socketio.run(app, host='0.0.0.0', port=5000) diff --git a/templates/test.html b/templates/test.html index bdf887d..c91825a 100644 --- a/templates/test.html +++ b/templates/test.html @@ -11,15 +11,18 @@

Status:

Counter:

+ + + +