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