db command storage

This commit is contained in:
derlole
2025-05-06 15:29:53 +00:00
parent 6cc84ec712
commit a5c03d9e41
3 changed files with 51 additions and 3 deletions

BIN
db/commands.db Normal file

Binary file not shown.

View File

@@ -0,0 +1,30 @@
import os
import sqlite3
# Ordner und Pfad definieren
db_folder = "db"
db_filename = "commands.db"
db_path = os.path.join(db_folder, db_filename)
# Ordner erstellen, falls nicht vorhanden
os.makedirs(db_folder, exist_ok=True)
# Verbindung zur SQLite-Datenbank
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
# Tabelle erstellen
cursor.execute("""
CREATE TABLE IF NOT EXISTS commands (
id INTEGER PRIMARY KEY AUTOINCREMENT,
command TEXT NOT NULL,
status TEXT NOT NULL,
command_id INTEGER UNIQUE NOT NULL,
tstamp DATETIME DEFAULT CURRENT_TIMESTAMP
)
""")
conn.commit()
conn.close()
print(f"Datenbank erstellt unter: {db_path}")

View File

@@ -3,8 +3,14 @@ import routes.shared as shared
from flask import Flask, jsonify, request
import paho.mqtt.client as mqtt
import json
import random
import sqlite3
import os
esp = Blueprint('eps', __name__, url_prefix='/unsecure/esp')
DB_PATH = os.path.join(os.path.dirname(__file__), '../db/commands.db')
MQTT_BROKER = "localhost" # oder IP/Domain
MQTT_PORT = 1883
MQTT_TOPIC = "coffee/command"
@@ -26,11 +32,23 @@ def esp_online():
@esp.route('/toggle-machine', methods=['GET'])
def toggle_machine():
randID = random.randint(1000, 9999)
fullCommand = {'command': 'toggle_machine', 'status': 'pending', 'command_id': randID}
conn = sqlite3.connect(DB_PATH)
cursor = conn.cursor()
cursor.execute("""
INSERT INTO commands (command, status, command_id)
VALUES (?, ?, ?)
""", (fullCommand["command"], fullCommand["status"], fullCommand["command_id"]))
conn.commit()
conn.close()
testData = {'test': 'Live-Daten', 'status': 'OK', 'counter': 0}
client = mqtt.Client()
client.connect(MQTT_BROKER, MQTT_PORT, 60)
client.publish(MQTT_TOPIC, json.dumps(testData))
client.publish(MQTT_TOPIC, json.dumps(fullCommand))
client.disconnect()
return jsonify({"status": json.dumps(testData)})
return jsonify({"status": json.dumps(fullCommand)})