8a648dc637
- Auto-detect cellular vs fiber/Starlink regardless of physical port: aiwanbal modem_type → Eyeride subnet (192.168.10.x) → gateway patterns - Integrate aiwanbal/SmartAiBalancer state as primary data source when available (fresh <120s); fall back to self-collected ping metrics - Add carrier detection: AT&T for fiber gateways, Eyeride for cellular - Add run_speedtest() with speedtest-cli/iperf3/curl download fallback - Extract jitter (mdev) from ping output for richer metrics - Consistent canonical GL format: modem_0001=cellular, wan=ethernet/fiber Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>