fix: reduce log noise and guard against non-dict SNMP devices

- SNMP scheduler: skip non-dict entries in devices list (prevents AttributeError)
- UPS scheduler: downgrade NutError from exception to warning (expected when NUT not running)
- UniFi scheduler: downgrade login/poll failures from exception to warning (expected when controller unreachable)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-23 17:38:24 -04:00
parent 9e34d8d739
commit d9886e8680
3 changed files with 86 additions and 8 deletions
+6 -6
View File
@@ -49,8 +49,8 @@ async def _do_poll(app: "Quart") -> None:
)
try:
await _client.login()
except Exception:
logger.exception("UniFi initial login failed")
except Exception as exc:
logger.warning("UniFi initial login failed: %s", exc)
_client = None
return
@@ -58,8 +58,8 @@ async def _do_poll(app: "Quart") -> None:
health = await _client.get_health()
clients = await _client.get_active_clients()
devices = await _client.get_devices()
except Exception:
logger.exception("UniFi poll failed — will retry next tick")
except Exception as exc:
logger.warning("UniFi poll failed — will retry next tick: %s", exc)
_client = None # force re-auth on next tick
return
@@ -185,8 +185,8 @@ async def _do_poll(app: "Quart") -> None:
# ── Expanded data (best-effort, failures don't abort core poll) ───────────
try:
await _do_expanded(app, scraped_at)
except Exception:
logger.exception("UniFi expanded poll failed")
except Exception as exc:
logger.warning("UniFi expanded poll failed: %s", exc)
async def _do_expanded(app: "Quart", scraped_at: datetime) -> None: