メインコンテンツへスキップ

概要

このクイックスタートガイドでは、シンプルな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 を起動

  1. Qaptly Desktop アプリケーションを起動します
  2. 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秒後に接続が閉じられます

次のステップ

これで実行ノードが動作するようになりました:
  1. 実際の WiFi 制御を追加 - シミュレーションを実際のネットワークコマンドに置き換える
  2. より多くの機能を実装 - wifi.connect、wifi.disconnect を追加
  3. イベントを送信 - WiFi 状態の変化を Qaptly に通知
  4. プロトコルを読む - すべてのメッセージタイプとフローを理解

Protocol Reference

完全なメッセージ仕様

Capabilities Guide

JSON Schema を使用した複雑な機能の定義

Authentication

セキュリティモデルとキー管理

Examples

より完全な実装例