ez-unifi について
ez-unifiは、`aiounifi`を使ってUniFiネットワークを管理するコマンドラインツールです。エージェントやネットワーク管理者向けに、デバイス、クライアント、無線ネットワーク、トラフィックポリシーなどの操作を提供します。
主な機能
- 01サイト、システム情報、ネットワーク状態の確認
- 02ネットワークデバイスの調査と制御
- 03スイッチポートとPoEの管理
- 04クライアントとWLANの確認・制御
- 05トラフィックルール、防火壁ポリシー、バウチャーの管理
- 06イベントのストリーミングと生APIリクエスト
活用シーン
- 01UniFiサイトとネットワーク状態の確認
- 02デバイスの再起動・更新とスイッチポート管理
- 03クライアントのブロックやWLAN設定の変更
- 04トラフィックポリシーの確認やホットスポット用バウチャーの作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ araa47/ ez-unifi --skill ez-unifiインストール後、Claude Code で/ez-unifiを入力して読み込まれたか確認します。
同梱ファイルscripts/unifi.py
詳細
ez-unifi
aiounifi ライブラリを活用した、エージェント向けの UniFi Network ツールです。UDM Pro/SE、Dream Machine、Cloud Key Gen2+、セルフホスト型コントローラーに対応しています。
すべてのコマンドは次の形式で実行します: uv run scripts/unifi.py <command> [args]
セットアップ
ステップ 1:専用のローカル管理者アカウントを作成してもらいます
UniFi ネットワークを管理するには、API アクセスが必要です。専用のローカル管理者アカウントを作成してください:
- UniFi コントローラーを開きます(例:https://192.168.1.1)
- Settings → System → Admins & Users に移動します
- Add Admin をクリックします
- ユーザー名を入力します(例:
agent-api)- メールアドレスとパスワードを入力します
- 重要:「Remote Access」を無効にします - ローカル限定にすると MFA の問題を回避できます
- 役割を Super Admin または Site Admin に設定します
- Add をクリックします
次の情報を提供してください:
- コントローラーの IP アドレス(例:
192.168.1.1)- ユーザー名
- パスワード
- UDM Pro/SE/Dream Machine ですか?(はい/いいえ)
ステップ 2:認証情報を .env に保存します
UNIFI_HOST=https://192.168.1.1
UNIFI_USERNAME=agent-api
UNIFI_PASSWORD=the_password
UNIFI_SITE=default
UNIFI_IS_UDM=true
Cloud Key Gen1 またはセルフホスト型コントローラーの場合は、UNIFI_IS_UDM=false に設定してください。
システムとサイト
unifi.py sites # List all sites
unifi.py sysinfo # System information
unifi.py health # Site health status (WAN, WLAN, LAN)
デバイス(AP、スイッチ、ゲートウェイ)
unifi.py devices # List all devices
unifi.py device MAC # Device details
unifi.py restart MAC # Restart device
unifi.py restart MAC --hard # Hard restart (cycles PoE on switches)
unifi.py upgrade MAC # Upgrade device firmware
unifi.py locate MAC # Blink LED to locate
unifi.py unlocate MAC # Stop LED blinking
unifi.py led MAC on|off|default # Set LED status
unifi.py led MAC on --color=#FF0000 --brightness=50 # With color/brightness
スイッチポート
unifi.py ports # List all switch ports
unifi.py port MAC PORT_IDX # Port details
unifi.py port-enable MAC PORT_IDX # Enable switch port
unifi.py port-disable MAC PORT_IDX # Disable switch port
unifi.py poe MAC PORT_IDX MODE # Set PoE mode (auto|off|passthrough|24v)
unifi.py power-cycle MAC PORT_IDX # Power cycle a PoE port
スマート電源(PDU/コンセント)
unifi.py outlets # List all outlets
unifi.py outlet MAC IDX on|off # Control outlet relay
unifi.py outlet-cycle MAC IDX on|off # Enable/disable auto-cycle on internet down
クライアント
unifi.py clients # List active clients
unifi.py clients-all # List all clients (including offline/known)
unifi.py client MAC # Client details
unifi.py block MAC # Block client from network
unifi.py unblock MAC # Unblock client
unifi.py reconnect MAC # Kick/reconnect client
unifi.py forget MAC [MAC2...] # Forget client(s) permanently
WiFi ネットワーク
unifi.py wlans # List wireless networks
unifi.py wlan ID # WLAN details
unifi.py wlan-enable ID # Enable WLAN
unifi.py wlan-disable ID # Disable WLAN
unifi.py wlan-password ID NEWPASS # Change WLAN password
unifi.py wlan-qr ID # Generate WiFi QR code (PNG file)
unifi.py wlan-qr ID -o myqr.png # Custom output filename
ポートフォワーディング
unifi.py port-forwards # List port forwarding rules
unifi.py port-forward ID # Port forward details
トラフィックルール
unifi.py traffic-rules # List traffic rules
unifi.py traffic-rule ID # Traffic rule details
unifi.py traffic-rule-enable ID # Enable traffic rule
unifi.py traffic-rule-disable ID # Disable traffic rule
unifi.py traffic-rule-toggle ID on|off # Toggle traffic rule state
トラフィックルート
unifi.py traffic-routes # List traffic routes
unifi.py traffic-route ID # Traffic route details
unifi.py traffic-route-enable ID # Enable traffic route
unifi.py traffic-route-disable ID # Disable traffic route
ファイアウォール
unifi.py firewall-policies # List firewall policies
unifi.py firewall-policy ID # Firewall policy details
unifi.py firewall-zones # List firewall zones
unifi.py firewall-zone ID # Firewall zone details
DPI(ディープパケットインスペクション)
unifi.py dpi-apps # List DPI restriction apps
unifi.py dpi-app ID # DPI app details
unifi.py dpi-app-enable ID # Enable DPI app restriction
unifi.py dpi-app-disable ID # Disable DPI app restriction
unifi.py dpi-groups # List DPI restriction groups
unifi.py dpi-group ID # DPI group details
ホットスポットバウチャー
unifi.py vouchers # List vouchers
unifi.py voucher-create --duration=60 --quota=1 --note="Guest"
unifi.py voucher-create --duration=1440 --quota=5 --rate-up=5000 --rate-down=10000
unifi.py voucher-delete ID # Delete voucher
バウチャーのオプション:
--duration- 有効期間(分、デフォルト:60)--quota- 使用回数(デフォルト:1)--usage-quota- 使用量の上限(MB)--rate-up- アップロード速度の上限(Kbps)--rate-down- ダウンロード速度の上限(Kbps)--note- メモ/説明
イベント
unifi.py events # Stream events in real-time (Ctrl+C to stop)
生 API アクセス
unifi.py raw GET /stat/health # Raw GET request
unifi.py raw POST /cmd/devmgr '{"cmd":"restart","mac":"aa:bb:cc:dd:ee:ff"}'
unifi.py raw PUT /rest/wlanconf/ID '{"enabled":false}'
出力オプション
一覧表示コマンドには --json フラグを追加すると、JSON 形式で出力できます:
unifi.py devices --json # JSON output
unifi.py clients --json
使用例
# Check network health
uv run scripts/unifi.py health
# List all connected clients
uv run scripts/unifi.py clients
# Block a device
uv run scripts/unifi.py block "aa:bb:cc:dd:ee:ff"
# Restart an access point
uv run scripts/unifi.py restart "11:22:33:44:55:66"
# Disable guest WiFi
uv run scripts/unifi.py wlan-disable "5f8b3d2e1a4c7b9e0d6f8a2c"
# Upgrade device firmware
uv run scripts/unifi.py upgrade "11:22:33:44:55:66"
# Power cycle a PoE port (useful for rebooting PoE devices)
uv run scripts/unifi.py power-cycle "switch_mac" 5
# Create a guest voucher (24 hours, single use)
uv run scripts/unifi.py voucher-create --duration=1440 --quota=1 --note="Guest access"
# Generate WiFi QR code for easy connection
uv run scripts/unifi.py wlan-qr "wlan_id" -o guest_wifi.png
# Control traffic rule
uv run scripts/unifi.py traffic-rule-disable "rule_id"
ID の確認方法
- WLAN ID:
wlansを実行し、ID列を確認します - デバイスの MAC アドレス:
devicesを実行し、MAC列を確認します - クライアントの MAC アドレス:
clientsまたはclients-allを実行し、MAC列を確認します - トラフィックルールの ID:
traffic-rulesを実行し、ID列を確認します - バウチャーの ID:
vouchersを実行し、ID列を確認します
注意事項
- MAC アドレスはどの形式でも指定できます(コロンあり、ハイフンあり、なし)
- 解析しやすいよう、すべての出力は JSON です
- 専用のローカルアカウントを使用すると、クラウド連携アカウントで発生する MFA の問題を回避できます
- レート制限(429 エラー)が発生した場合は、数分待ってから再試行してください
コメント
Markdown 対応