仮想デバイス コントローラは、仮想 Matter デバイスの状態を制御して表示するグラフィカル ユーザー インターフェースを提供するデスクトップ アプリです。アプリは、仮想デバイスを視覚的に表示し、デバイスでサポートされている Matter クラスタのコントロールも提供します。
アプリは RPC クライアントを使用して仮想デバイスの RPC サーバーと通信し、アクション(電源の切り替え、消灯、明るさ調整)を反映したリクエストを送信し、1 秒に 1 回ポーリングして状態を取得します。
サポートされているデバイス
現在、仮想デバイス コントローラは次の Matter デバイスタイプをサポートしています。
Matter デバイスタイプ | アプリケーション クラスタ | ホーム エコシステムの種類 |
---|---|---|
接触センサー | ブール状態 | Sensor |
調光 | オン/オフ レベル管理 |
浅い睡眠 |
エクステンデッド カラー ライト | オン/オフ レベル コントロール 色の管理 |
浅い睡眠 |
フローセンサー | フロー測定 | Sensor |
湿度センサー | 相対湿度測定 | Sensor |
照度センサー | 照度測定 | Sensor |
在室確認センサー | 在宅確認 | Sensor |
オン/オフライト | オン / オフ | 浅い睡眠 |
コンセント | オン/オフ レベル管理 |
コンセント |
圧力センサー | 圧力測定 | Sensor |
スピーカー | オン/オフ レベル管理 |
スピーカー |
Switch | オン / オフ | Switch |
温度センサー | 温度測定 | Sensor |
仮想デバイス コントローラをセットアップする
仮想デバイス コントローラは、Docker Hub で利用可能な事前構成済みの Docker イメージの一部として提供されます。インストールするには、次のコマンドを実行します。
user@host> docker pull us-docker.pkg.dev/nest-matter/docker-repo/virtual-device-image:latest
このオペレーションが完了するまでに数分かかることがあります。
仮想デバイス コントローラを実行する
Docker コンテナを起動します。
user@host> xhost local:1000 user@host> docker run -it --ipc=host --net=host -e DISPLAY --name matter-container us-docker.pkg.dev/nest-matter/docker-repo/virtual-device-image:latest
コンテナを起動すると、診断出力が表示され、コンテナ構成が正しいことを確認するメッセージが表示されます。最後に、コンテナシェル プロンプトが表示されます。
Environment looks good, you are ready to go!
2 つ目のターミナル セッション インスタンスを作成します。
user@host> docker exec -it matter-container /bin/bash
仮想 Matter デバイスの場合は、デバイスが実行中になったら、仮想デバイス コントローラを起動し、
--s
引数とデバイスで使用する IP ポートを渡します。$ electron main.js --s=localhost:33000
実機の場合は、仮想デバイス コントローラを起動し、
--d
引数に続けてデバイスのシリアルポートを渡します。$ electron main.js --d=/dev/ttyUSB0
引数を指定せずにコントローラを起動すると、デフォルトは localhost のポート 33000 を使用するネットワーク ソケット オプションになります。
コントローラがデバイスに接続できるようになると、デバイスの状態を示す画面が表示されます。
デバイスの QR コードを表示する
仮想デバイス コントローラ アプリを使用して、デバイスのコミッショニング フローで QR コードを取得することもできます。デバイス画像の横にある QR コードアイコンをクリックして、このデバイスの QR コードを表示します。
この QR コードを使用して、デバイスをコミッショニングできます。
仮想デバイス コントローラを停止する
仮想デバイス コントローラを停止するには、コントローラの画面をフォーカスした状態で Ctrl+Q キーを押すか、アプリを起動したターミナル セッションで Control+C キーを押します。
フィードバック
仮想デバイス コントローラの操作性の改善について、ご意見やフィードバックがございましたら、こちらのフィードバック フォームでお知らせください。