fix: keep MAC, version, LEDs in DB when device goes offline
This commit is contained in:
parent
02ab0d0139
commit
5294e8ef50
15
app.py
15
app.py
@ -349,15 +349,14 @@ async def check_single_device(device_id: int):
|
|||||||
if dev:
|
if dev:
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
info = get_wled_info(dev["hostname"])
|
info = get_wled_info(dev["hostname"])
|
||||||
|
if info.get("online"):
|
||||||
conn.execute("""
|
conn.execute("""
|
||||||
UPDATE wled_devices SET online=?, leds=?, version=?, mac=?, last_check=? WHERE id=?
|
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))
|
||||||
1 if info.get("online") else 0,
|
else:
|
||||||
info.get("leds", 0) if info.get("online") else 0,
|
conn.execute("""
|
||||||
info.get("version", "") if info.get("online") else "",
|
UPDATE wled_devices SET online=0, last_check=? WHERE id=?
|
||||||
info.get("mac", "") if info.get("online") else "",
|
""", (datetime.now(), device_id))
|
||||||
datetime.now(), device_id,
|
|
||||||
))
|
|
||||||
conn.commit()
|
conn.commit()
|
||||||
conn.close()
|
conn.close()
|
||||||
return RedirectResponse("/devices", status_code=303)
|
return RedirectResponse("/devices", status_code=303)
|
||||||
|
|||||||
14
scheduler.py
14
scheduler.py
@ -208,18 +208,22 @@ def check_devices():
|
|||||||
devices = conn.execute("SELECT id, hostname FROM wled_devices").fetchall()
|
devices = conn.execute("SELECT id, hostname FROM wled_devices").fetchall()
|
||||||
for dev in devices:
|
for dev in devices:
|
||||||
info = get_wled_info(dev["hostname"])
|
info = get_wled_info(dev["hostname"])
|
||||||
|
if info.get("online"):
|
||||||
conn.execute("""
|
conn.execute("""
|
||||||
UPDATE wled_devices
|
UPDATE wled_devices
|
||||||
SET online=?, leds=?, version=?, mac=?, last_check=?
|
SET online=1, leds=?, version=?, mac=?, last_check=?
|
||||||
WHERE id=?
|
WHERE id=?
|
||||||
""", (
|
""", (
|
||||||
1 if info.get("online") else 0,
|
info.get("leds", 0),
|
||||||
info.get("leds", 0) if info.get("online") else 0,
|
info.get("version", ""),
|
||||||
info.get("version", "") if info.get("online") else "",
|
info.get("mac", ""),
|
||||||
info.get("mac", "") if info.get("online") else "",
|
|
||||||
datetime.now(),
|
datetime.now(),
|
||||||
dev["id"],
|
dev["id"],
|
||||||
))
|
))
|
||||||
|
else:
|
||||||
|
conn.execute("""
|
||||||
|
UPDATE wled_devices SET online=0, last_check=? WHERE id=?
|
||||||
|
""", (datetime.now(), dev["id"]))
|
||||||
conn.commit()
|
conn.commit()
|
||||||
logger.info("Device-Check: %d Geraete geprueft", len(devices))
|
logger.info("Device-Check: %d Geraete geprueft", len(devices))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user