feat: background device status check every 240s instead of on page load

- Add online, leds, version, last_check columns to wled_devices table
- Background job checks all WLED devices every 4 minutes
- Initial check on startup
- Devices page reads status from DB (instant page load)
- 'Alle jetzt pruefen' button triggers manual check

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-23 23:03:12 +02:00
co-authored by Claude Opus 4.6
parent a7efb12d5c
commit e88ab3ab08
4 changed files with 88 additions and 63 deletions
+23 -1
View File
@@ -32,7 +32,11 @@ def init_db():
id INTEGER PRIMARY KEY AUTOINCREMENT,
hostname TEXT NOT NULL UNIQUE,
name TEXT DEFAULT '',
segment_count INTEGER NOT NULL DEFAULT 2
segment_count INTEGER NOT NULL DEFAULT 2,
online INTEGER DEFAULT 0,
leds INTEGER DEFAULT 0,
version TEXT DEFAULT '',
last_check TIMESTAMP
);
CREATE TABLE IF NOT EXISTS assignments (
@@ -71,6 +75,24 @@ def init_db():
);
""")
# Migrate: add columns if missing (for existing databases)
try:
conn.execute("ALTER TABLE wled_devices ADD COLUMN online INTEGER DEFAULT 0")
except Exception:
pass
try:
conn.execute("ALTER TABLE wled_devices ADD COLUMN leds INTEGER DEFAULT 0")
except Exception:
pass
try:
conn.execute("ALTER TABLE wled_devices ADD COLUMN version TEXT DEFAULT ''")
except Exception:
pass
try:
conn.execute("ALTER TABLE wled_devices ADD COLUMN last_check TIMESTAMP")
except Exception:
pass
defaults = {
"azure_client_id": "",
"azure_client_secret": "",