返回 Skill 列表
extension
分类: 安全与合规无需 API Key

Asus Router

监控并管理运行 AsusWRT/AsusWRT‑Merlin 固件的华硕路由器,支持状态检查、客户端/流量排行列表、存在检测、AiMesh 拓扑...

person作者: rtaylorgrahamhubclawhub

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?"

  1. status — check WAN link state
  2. ping — check latency to external IPs
  3. wan — 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?"

  1. mesh — check client distribution across nodes
  2. status — check CPU/RAM (high CPU = overloaded)
  3. 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 address
  • router.username — Admin username
  • router.password — Admin password
  • router.ssl — Use HTTPS (default: false)
  • router.port — Optional web UI/API port, commonly 8443 for HTTPS local access
  • known_devices — Devices for presence detection
  • ping_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