backend rework- full test 1

This commit is contained in:
derlole
2025-05-07 11:08:43 +00:00
parent f7d9a640ee
commit 76bfa50995
19 changed files with 397 additions and 127 deletions

23
modules/persistence.py Normal file
View File

@@ -0,0 +1,23 @@
import os
import json
from datetime import datetime
BASE_PATH = os.path.join(os.path.dirname(__file__), "..", "persistence")
BASE_PATH = os.path.abspath(BASE_PATH)
def save_dict(name, data):
path = os.path.join(BASE_PATH, f"{name}.json")
os.makedirs(BASE_PATH, exist_ok=True)
with open(path, "w") as f:
json.dump(data, f, default=str, indent=2)
def load_dict(name):
path = os.path.join(BASE_PATH, f"{name}.json")
if os.path.exists(path):
with open(path, "r") as f:
return json.load(f)
return {} # fallback falls Datei fehlt
# no persistence but global variable important for tracking the esp-connection over runtime
esp_conn_infos = {"ip_global": None, "ip_local": None, "last_seen": None, "connection_valid": False}

16
modules/socketio.py Normal file
View File

@@ -0,0 +1,16 @@
# extensions.py
from flask_socketio import SocketIO
from modules.persistence import esp_conn_infos,load_dict, save_dict
socketio = SocketIO(cors_allowed_origins="*", async_mode='threading')
def resend_static_data():
water = load_dict("water")
beans = load_dict("beans")
machine = load_dict("machine")
socketio.emit('static_data', {
'water': water,
'beans': beans,
'machine': machine,
'esp_conn_infos': esp_conn_infos
})