カスタム実行ノードとは
カスタム実行ノードは、Qaptly Desktopに接続して追加の自動化機能を提供するサードパーティ拡張機能です。**統一試点協議(UPP)**を使用して、以下を実行する実行ノードを作成できます:- WiFiネットワークの制御(スキャン、接続、切断)
- IoTデバイスの管理(スマートホーム、センサー)
- ハードウェアとのインタラクション(GPIO、シリアルポート)
- リモートデバイスでのカスタムコマンド実行
- リアルタイムイベント通知の送信
ユースケース
ネットワークテスト
Raspberry Piベースの WiFi コントローラーを構築して、異なるネットワーク条件下でのアプリの動作をテストします:- テスト実行中に WiFi ネットワークを切り替え
- ネットワーク切断をシミュレート
- 信号強度とレイテンシを監視
IoT自動化
テストシナリオの一部として IoT デバイスを制御します:- スマートライト、サーモスタット、ドアロック
- 温度、湿度、モーションセンサー
- カスタムハードウェア統合
リモートコマンド実行
リモートデバイスでコマンドを実行します:- 組込みシステムでスクリプトを実行
- テスト機器を制御
- テストインフラストラクチャを管理
動作仕組み

ネットワーク展開:
<qaptly_desktop_ip> は、Qaptly Desktop を実行しているマシンのローカルネットワーク IP アドレス(例:192.168.1.100)です。⚠️ セキュリティ: UPP は内部ネットワーク使用専用に設計されています。公共インターネットに公開しないでください。主要機能
自己記述型
実行ノードは JSON Schema を使用して独自の機能を宣言します。Qaptly は、実行ノードがサポートするアクションを動的に発見します。デフォルトで安全
- 初回接続にはユーザー承認が必要
- 認証用の事前共有キー
- 内部ネットワーク展開(公共インターネットに公開されない)
リアルタイムイベント
実行ノードは状態変更を Qaptly に通知するイベントを送信できます:wifi.connected- WiFi 接続確立sensor.temperature_changed- 温度読み取り更新- ユースケースに固有のカスタムイベント
言語非依存
以下をサポートする任意の言語で実行ノードを実装:- WebSocket クライアント
- JSON シリアライゼーション
- プラットフォーム(Python、Node.js、Go、Rust、C++ など)
アーキテクチャ
UPP は Qaptly の内部実行ノード(Android、iOS、macOS 自動化)から独立しています。カスタム実行ノードは:- ✅ 独立して実行
- ✅ WebSocket 経由で接続
- ✅ 独自の機能を宣言
- ✅ 内部実行ノードに干渉しない
プロトコルの基本
メッセージ形式
すべてのメッセージは UTF-8 エンコーディング付きの JSON を使用:接続フロー
- 接続 - 実行ノードが WebSocket 経由で接続
- 登録 - 実行ノード情報と機能を送信
- 認証 - ユーザーが承認(初回)またはキーが検証(再接続)
- 実行 - Qaptly がコマンドを送信、実行ノードが応答
- イベント - 実行ノードがリアルタイムイベントを送信(オプション)
- ハートビート - 接続を維持(30秒ごと)
はじめに
最初のカスタム実行ノードを構築する準備はできていますか?クイックスタート
15分でシンプルな WiFi コントローラーを構築
プロトコルリファレンス
完全なプロトコル仕様
認証
セキュリティとキー管理
例
完全に機能する実装例
要件
カスタム実行ノードを開発するには、以下が必要です:- 開発環境: WebSocket をサポートする任意の言語
- Qaptly Desktop: バージョン 0.15.0 以降
- 対象デバイス(オプション): Raspberry Pi、Arduino、またはネットワーク接続デバイス
次のステップ
- クイックスタートガイドに従って、最初の実行ノードを構築
- プロトコルリファレンスを読んで詳細な仕様を確認
- 例をチェックして、完全な実装を確認