Asus Router Management
Manage Asus routers via the asusrouter Python library. Works with any router running stock AsusWRT, AsusWRT-Merlin, or Merlin/GNUton firmware that exposes the local AsusWRT web API.
Setup
1. Install dependencies
pip install asusrouter aiohttp
2. Create config file
Copy config.example.yaml to config.yaml and fill in your router details:
cp skills/asus-router/config.example.yaml skills/asus-router/config.yaml
Edit config.yaml with your router's IP, username, and password.
3. Verify connection
python3 skills/asus-router/router.py status
Supported Routers
Any Asus router with the AsusWRT web interface:
- ZenWiFi (XT8, XT12, XD6, etc.) — full AiMesh support
- RT-AX series (RT-AX86U, RT-AX88U, etc.)
- GT-AX gaming series
- ExpertWiFi / Wi-Fi 7 models that expose AsusWRT 5 / 3.0.0.6 APIs
- Merlin firmware variants
- AiMesh nodes (RP-AX56, RP-AX58, etc.)
Commands
All commands use router.py. Activate your venv first if using one.
Quick Status
python3 router.py status # WAN, CPU, RAM, mesh nodes, client count
python3 router.py status --json # Machine-readable output
List Connected Devices
python3 router.py clients # All devices
python3 router.py clients --online # Online only
python3 router.py clients --filter "iphone" # Search by name/IP/MAC
python3 router.py clients --sort speed --limit 10 # Current top talkers
python3 router.py clients --sort signal # Weak/strong Wi-Fi clients
python3 router.py clients --json # JSON output
Who's Home (Presence Detection)
python3 router.py who
Checks for known devices defined in config.yaml to determine who's home.
WAN Details
python3 router.py wan # IP, gateway, DNS, lease, dual-WAN
python3 router.py wan --json
AiMesh Topology
python3 router.py mesh # Which clients connect to which node
python3 router.py mesh --json
Find a Device
python3 router.py find "samsung"
python3 router.py find "192.168.1.100"
python3 router.py find "AA:BB:CC:DD:EE:FF"
Network Latency Check
python3 router.py ping
Firmware / Ports / VPN / Health
python3 router.py firmware # Firmware, system info, release-note data when exposed
python3 router.py ports # Ethernet port/link status
python3 router.py vpn # OpenVPN, WireGuard, VPN client status as JSON
python3 router.py health # Alert-friendly WAN/CPU/RAM/firmware/ports/VPN bundle
python3 router.py raw firmware # Dump any AsusData dataset by name
raw is intentionally included so the skill keeps working as AsusWRT 5 / ExpertWiFi / Guest Network Pro / VLAN-era firmware exposes new datasets through asusrouter before this wrapper has a pretty command for them.
Pings targets defined in config.yaml (default: gateway + Cloudflare + Google).
Reboot Router
python3 router.py reboot --confirm
⚠️ Requires --confirm flag. Causes 2-3 min downtime.
Common Tasks
"Is the internet down?"
status— check WAN link stateping— check latency to external IPswan— check DHCP lease and DNS
"What's using bandwidth?"
clients --online --json — check rx_speed/tx_speed fields
"Who's home?"
who — checks for devices listed in config.yaml under known_devices
"Why is WiFi slow?"
mesh— check client distribution across nodesstatus— check CPU/RAM (high CPU = overloaded)find <device>— check signal strength (rssi)
Configuration
All settings live in config.yaml. See config.example.yaml for the full template.
Key settings:
router.host— Router IP addressrouter.username— Admin usernamerouter.password— Admin passwordrouter.ssl— Use HTTPS (default: false)router.port— Optional web UI/API port, commonly8443for HTTPS local accessknown_devices— Devices for presence detectionping_targets— Custom ping targets for latency checks
For modern routers, prefer HTTPS local access when stable: enable it in AsusWRT under Administration → System → Local Access Config → Authentication Method, then set ssl: true and the configured port.
JSON Output
Add --json to any command for machine-readable output. Useful for cron jobs, heartbeat checks, and alerting.
Integration with Home Assistant
For persistent monitoring, also install ha-asusrouter via HACS:
https://github.com/Vaskivskyi/ha-asusrouter
微信扫一扫