dev #2

Merged
alientim merged 32 commits from dev into main 2025-10-12 17:19:37 +02:00
Showing only changes of commit 09ee8c245e - Show all commits

View File

@@ -122,13 +122,13 @@ def index():
c.execute("SELECT mac, name, is_active FROM devices ORDER BY name ASC") c.execute("SELECT mac, name, is_active FROM devices ORDER BY name ASC")
devices = c.fetchall() devices = c.fetchall()
# Intervall laden # Intervall aus DB laden
c.execute("SELECT value FROM settings WHERE key='interval'") c.execute("SELECT value FROM settings WHERE key='interval'")
row = c.fetchone() row = c.fetchone()
interval = int(row[0]) if row else 5 interval = int(row[0]) if row else 5
conn.close() conn.close()
# Neu: Status und "zuletzt online" ermitteln # Status aus Logdateien ermitteln
log_files = glob.glob("/var/log/rpi-*.log") log_files = glob.glob("/var/log/rpi-*.log")
status_dict = {} status_dict = {}
last_seen_dict = {} last_seen_dict = {}
@@ -140,28 +140,23 @@ def index():
for dev in devices: for dev in devices:
last_status = None last_status = None
last_time = None for line in reversed(lines):
for line in reversed(lines): # von unten nach oben lesen
if f"{dev[1]} ist erreichbar!" in line: if f"{dev[1]} ist erreichbar!" in line:
last_status = "online" last_status = "online"
last_time = line.split(" ")[0] + " " + line.split(" ")[1]
break break
elif f"{dev[1]} ist nicht erreichbar!" in line: elif f"{dev[1]} ist nicht erreichbar!" in line:
last_status = "offline" last_status = "offline"
last_time = line.split(" ")[0] + " " + line.split(" ")[1]
break break
if last_status: if last_status:
status_dict[dev[0]] = last_status status_dict[dev[0]] = last_status
if last_status == "offline": if last_status == "offline":
last_seen_dict[dev[0]] = [f"Zuletzt online: {last_time}", dev[1]] last_seen_dict[dev[0]] = get_last_seen(dev[1])
else: else:
status_dict[dev[0]] = "unbekannt" status_dict[dev[0]] = "unbekannt"
return render_template("index.html", devices=devices, status=status_dict, last_seen=last_seen_dict, interval=interval) return render_template("index.html", devices=devices, status=status_dict, last_seen=last_seen_dict, interval=interval)
@app.route("/settings", methods=["GET", "POST"]) @app.route("/settings", methods=["GET", "POST"])
@login_required @login_required
def settings(): def settings():