概要
このクイックスタートガイドでは、シンプルなWiFiコントローラー実行ノードを構築し、Qaptly Desktopに接続してWiFiコマンドを実行します。この例はコアのUPPコンセプトを実装例で示しています。前提条件
- Qaptly Desktop バージョン 0.15.0 以上
- Python 3.8+ がインストール済み
- Pythonと JSON の基本的な知識
ステップ 1: 依存関係をインストール
まず、WebSocket ライブラリをインストールします:ステップ 2: 実行ノードを作成
wifi_pilot.py という名前のファイルを作成します:
重要:
<qaptly_desktop_ip> をローカルネットワーク上の Qaptly Desktop を実行しているマシンの実際の IP アドレス(例:192.168.1.100)に置き換えてください。この IP アドレスは、ネットワーク設定で確認するか、ifconfig(macOS/Linux)または ipconfig(Windows)を実行して確認できます。ステップ 3: Qaptly Desktop を起動
- Qaptly Desktop アプリケーションを起動します
- UPP サービスはポート 18765 で自動的に起動します
ステップ 4: 実行ノードを実行
実行ノードスクリプトを実行します:ステップ 5: 接続を承認
Qaptly Desktop にダイアログが表示されます:ステップ 6: 接続をテスト
実行ノードは以下を受け取るはずです:ステップ 7: コマンドを実行
Qaptly からコマンドを実行できるようになりました。実行ノードはコマンドを受け取り、自動的に応答します。 例えば、Qaptly がwifi.scan コマンドを送信すると、以下が表示されます:
次の接続 (キーを使用)
後続の接続では、割り当てられたキーを使用します:キーコンセプト
このサンプルは以下を示しています: ✅ WebSocket 接続 -ws://<qaptly_desktop_ip>:18765/upp に接続
✅ メッセージ形式 - すべてのメッセージは UPP 構造に従う
✅ 登録 - 実行ノード情報と機能を宣言
✅ 認証 - 初回承認 + キーベース認証
✅ コマンド処理 - コマンドの受信と応答
✅ ハートビート - 30秒ごとに接続を保持
✅ JSON Schema - 各機能のパラメータと戻り値を定義
トラブルシューティング
”Connection refused”
- Qaptly Desktop が実行中であることを確認
- ファイアウォールがポート 18765 をブロックしていないか確認
<qaptly_desktop_ip>(localhost) に接続していることを確認
”Registration failed: AUTH_FAILED”
- キーが無効または期限切れかもしれません
- キーなしで接続してみてください (初回フロー)
- キー文字列のタイプミスを確認
ハートビートタイムアウト
- 実行ノードは 30 秒ごとにハートビートを送信する必要があります
- メッセージがない場合、90秒後に接続が閉じられます
次のステップ
これで実行ノードが動作するようになりました:- 実際の WiFi 制御を追加 - シミュレーションを実際のネットワークコマンドに置き換える
- より多くの機能を実装 -
wifi.connect、wifi.disconnectを追加 - イベントを送信 - WiFi 状態の変化を Qaptly に通知
- プロトコルを読む - すべてのメッセージタイプとフローを理解
Protocol Reference
完全なメッセージ仕様
Capabilities Guide
JSON Schema を使用した複雑な機能の定義
Authentication
セキュリティモデルとキー管理
Examples
より完全な実装例