プロトコル概要
Unified Pilot Protocol (UPP) は WebSocket 上の JSON メッセージ を使用します。すべてのメッセージは標準構造に従い、プロトコルバージョン管理とメッセージ相関性を備えています。接続詳細
- プロトコル: WebSocket (ws://)
- ホスト:
<qaptly_desktop_ip>(ローカルネットワーク IP) - ポート: 18765
- パス: /upp
- 完全 URL:
ws://<qaptly_desktop_ip>:18765/upp
ネットワーク構成:
<qaptly_desktop_ip> は、ローカルネットワーク上の Qaptly Desktop を実行しているマシンの IP アドレス(例:192.168.1.100、10.0.0.5)を表します。⚠️ 内部ネットワークのみ: UPP はローカルネットワーク展開用に設計されています。WebSocket サーバーを公共インターネットに公開しないでください。プロトコルバージョン
現在のバージョン: 1.0.0 (セマンティックバージョン) すべてのメッセージは互換性チェックのためにprotocolVersion: "1.0.0" を含める 必要があります。
ベースメッセージ構造
すべての UPP メッセージは以下の形式に従います:メッセージタイプ
登録メッセージ
実行ノードは接続直後にこのメッセージを送信します。 方向: Pilot → Qaptly初回接続 (キーなし)
再接続 (キーを使用)
実行ノード情報フィールド
認証フィールド
機能フィールド
登録応答
Qaptly は登録を処理した後、このメッセージを送信します。 方向: Qaptly → Pilot成功 (既知の実行ノード)
承認待ち (新しい実行ノード)
承認済み (キー付き)
失敗
エラーコード
コマンドメッセージ
Qaptly はアクション実行のためにコマンドを送信します。 方向: Qaptly → Pilotフィールド
応答メッセージ
実行ノードは実行結果で応答します。 方向: Pilot → Qaptly成功
失敗
フィールド
イベントメッセージ
実行ノードは購読者にイベントを送信します。 方向: Pilot → Qaptly重要: Qaptly が購読したイベントのみを送信します。購読されていないイベントは無視されます。
購読メッセージ
Qaptly は特定のイベントを購読します。 方向: Qaptly → Pilotイベントを購読
イベントから購読解除
ワイルドカード サポート
- すべてのイベントを購読:
["*"] - ドメインを購読:
["wifi.*"](すべての wifi イベント)
ハートビートメッセージ
接続を保持します。両当事者は 30 秒ごとにこれを送信します。 方向: 双方向ハートビートポリシー
アクション命名規則
アクションは形式を使用します:domain.action
標準ドメイン
カスタムドメイン
カスタムドメインにはベンダープレフィックスを使用します:acme.motor.rotateacme.motor.stopmycompany.led.set_color
接続ライフサイクル

切断
- クリーン切断: WebSocket を正常に閉じる
- タイムアウト: 90秒間メッセージなし
- 猶予期間: 同じキーで再接続するまで 5 分
ベストプラクティス
メッセージ ID
すべてのメッセージ ID に UUID v4 を使用:タイムスタンプ
ISO 8601 形式を ‘Z’ サフィックス (UTC) で使用:エラー処理
常に意味のあるエラーコードとメッセージを含める:イベントフィルタリング
Qaptly が購読したイベントのみを送信:次のステップ
Authentication
セキュリティモデルとキー管理
Capabilities
JSON Schema で機能を定義
Examples
完全な実装例
Quick Start
最初の実行ノードを構築