diff --git a/app.py b/app.py index aeb2a76..86aaaf7 100644 --- a/app.py +++ b/app.py @@ -349,15 +349,14 @@ async def check_single_device(device_id: int): if dev: from datetime import datetime info = get_wled_info(dev["hostname"]) - conn.execute(""" - UPDATE wled_devices SET online=?, leds=?, version=?, mac=?, last_check=? WHERE id=? - """, ( - 1 if info.get("online") else 0, - info.get("leds", 0) if info.get("online") else 0, - info.get("version", "") if info.get("online") else "", - info.get("mac", "") if info.get("online") else "", - datetime.now(), device_id, - )) + if info.get("online"): + conn.execute(""" + UPDATE wled_devices SET online=1, leds=?, version=?, mac=?, last_check=? WHERE id=? + """, (info.get("leds", 0), info.get("version", ""), info.get("mac", ""), datetime.now(), device_id)) + else: + conn.execute(""" + UPDATE wled_devices SET online=0, last_check=? WHERE id=? + """, (datetime.now(), device_id)) conn.commit() conn.close() return RedirectResponse("/devices", status_code=303) diff --git a/scheduler.py b/scheduler.py index 6e47ef1..7176267 100644 --- a/scheduler.py +++ b/scheduler.py @@ -208,18 +208,22 @@ def check_devices(): devices = conn.execute("SELECT id, hostname FROM wled_devices").fetchall() for dev in devices: info = get_wled_info(dev["hostname"]) - conn.execute(""" - UPDATE wled_devices - SET online=?, leds=?, version=?, mac=?, last_check=? - WHERE id=? - """, ( - 1 if info.get("online") else 0, - info.get("leds", 0) if info.get("online") else 0, - info.get("version", "") if info.get("online") else "", - info.get("mac", "") if info.get("online") else "", - datetime.now(), - dev["id"], - )) + if info.get("online"): + conn.execute(""" + UPDATE wled_devices + SET online=1, leds=?, version=?, mac=?, last_check=? + WHERE id=? + """, ( + info.get("leds", 0), + info.get("version", ""), + info.get("mac", ""), + datetime.now(), + dev["id"], + )) + else: + conn.execute(""" + UPDATE wled_devices SET online=0, last_check=? WHERE id=? + """, (datetime.now(), dev["id"])) conn.commit() logger.info("Device-Check: %d Geraete geprueft", len(devices)) except Exception as e: