Matter 仮想デバイスは、Matter ソリューションの開発とテストに便利で、Matter 物理デバイスと同様に、Google Home app (GHA) を使用してコミッショニングし、GHA と Google Assistant を使用して制御できます。
アプリ デベロッパーなど、仮想 Matter デバイスをテストまたはエミュレートする必要があるが、独自の物理または仮想の Matter デバイスを構築するためのリソースがないユーザー向けに、Google は Matter Virtual Device (MVD) を提供しています。MVD は軽量のスタンドアロン Linux デスクトップ ツールで、さまざまな種類の仮想 Matter デバイスをシミュレートし、グラフィカル ユーザー インターフェースを使用して仮想 Matter デバイスの状態を制御および表示します。
物理的な Matter デバイスとは異なり、MVD は Matter ファブリックへの接続に Bluetooth® Low Energy(BLE)や Thread® を使用しません。代わりに、ホスト Linux マシンの既存の Wi-Fi ネットワーク接続がコミッショニングに使用されます。
他のツールとの比較
MVD は、仮想デバイスとそれを制御する UI を組み合わせた自己完結型のソリューションであるという点で、Virtual Device Controller (VDC) と異なります。これに対して、VDC は、Matter Virtual Device Development Environment (MVD-DE) でビルドしたデバイスなど、個別の仮想 Matter デバイスを制御するために使用されます。
MVD-DE Codelab をすでに学習したことがあるかもしれません。この Codelab では、単一のタイプの仮想デバイス(スマート電球)を作成します。これに対して、MVD にはビルド済みのさまざまな仮想デバイスが含まれており、それらを実行して制御するための統合 UI を備えています。
MVD | VDC | MVD-DE(Codelab) | |
---|---|---|---|
Matter デバイスをエミュレートする | |||
エミュレートされた Matter デバイスを操作する | |||
デプロイ作業が必要 | |||
ダウンロード | 100 MB 未満 | 9 GB | 20 GB |
サポート対象デバイス
現在、MVD は次の Matter デバイスタイプをサポートしています。
Matter デバイスタイプ | アプリケーション クラスタ | ホーム エコシステムの種類 |
---|---|---|
色温度ライト |
0x0300 0x0008 0x0006 |
ライト |
調光可能ライト |
0x0008 0x0006 |
ライト |
拡張カラーライト |
0x0300 0x0008 0x0006 |
ライト |
在宅確認センサー |
0x0406 |
センサー |
オン/オフライト |
0x0008 0x0006 |
ライト |
オン/オフ プラグイン ユニット |
0x0008 0x0006 |
コンセント |
MVD をインストールする
MVD は、Debian(11 以降)または Ubuntu(20.04 以降)が動作する 64 ビット x86 プロセッサ マシンで動作します。
インストール手順は次のとおりです。
MVD Debian(.deb)パッケージをダウンロードする
Armored-ASCII 署名(.asc)ファイルをダウンロード
次に、dpkg
を実行して MVD Debian(.deb)パッケージをインストールします。
sudo dpkg -i mvd_1.1.0_amd64.deb
ポートの使用状況を確認する
MVD のコントローラ モジュールは、TCP ポート 33000 を使用して仮想デバイスに対して RPC 呼び出しを行います。このポートが、コンピュータ上の別のプロセスですでに使用されている場合は、必ず解放してください。
プロセスがポート 33000 を使用しているかどうかを確認するには:
sudo fuser -v 33000/tcp
TCP ポート 33000 を使用するプロセスを 1 つのコマンドで強制終了できます。
sudo fuser -k 33000/tcp
MVD を実行する
アプリケーション フォルダまたはターミナルから MVD を実行します。
mvd
デバイスの設定
起動時にメイン画面が表示され、仮想デバイスを構成できます。
- Device Type: デバイスの種類(ライト、スイッチ、センサーなど)を選択します。
- デバイス名: デバイスにわかりやすい名前を付けます。
- 弁別子: 複数のコミッション可能なデバイス アドバタイズメントを区別するために使用される 12 ビットの数値。(デフォルトは
3840
)。 - Matter ポート: Matter のコミッショニングと IP ネットワークを介した通信用のポート。Matter はデフォルトで TCP/UDP ポート 5540 を使用しますが、他のサービスが使用されていない場合に限り、別のポートを使用するように仮想デバイスを構成できます。
- ベンダー ID: 現在サポートされているのはテスト ベンダー ID
0xFFF1
のみです。 - プロダクト ID: 現在サポートされているプロダクト ID は
0x8000
~0x801F
のみです。
ファイアウォールを構成する
コンピュータでファイアウォールを実行している場合は、ファイアウォールをシャットダウンするか、Matter ポートでの受信 TCP/UDP 接続を許可します。
現在アクティブな netfilter ファイアウォール ルールを表示するには、
sudo iptables -L -n
を実行します。
注: ufw
を使用している場合は、次のコマンドで無効にできます。
sudo ufw disable
また、
sudo ufw enable
で再度有効にできます。
デバイスを実行する
デバイスを設定したら、[デバイスを作成] をクリックします。デバイスが作成されると、[Controller] 画面が表示されます。選択したデバイスの種類に応じて、以下のコントロールが 1 つ以上表示されます。
- オン/オフ: 大多数のデバイスに共通です。
- レベル: たとえば、ライトに明るさを調整するためのレベル スライダーがあります。
- 色: たとえば、カラーライトの場合はこのコントロールを含めることができます。
- 占有率: 占有センサーは、在室状況をシミュレートするために、このコントロールを提供します。
すべての仮想デバイスでは、次のコントロールがあります。
- QRCode: コミッショニングに使用される QR コードを表示します。
- 再起動: 仮想デバイスを再起動します。デバイスがネットワークから一時的に切断されます。
- リセット: 現在のデバイスを出荷時の設定にリセットし、コミッショニング、現在の制御の状態など、すべての状態を消去します。
- 削除: デバイスを破棄して [デバイスの作成] 画面に戻ります。
デバイスをコミッショニングする
デバイスは、作成された後すぐにコミッショニングできます。
デバイスのコミッショニングには、いくつかの前提条件があります。
Google Home Developer Console にプロジェクトが必要です。このプロジェクトには、仮想デバイスのセットアップに使用したものと同じ VID/PID の組み合わせを持つ Matter 統合が含まれている必要があります。詳しくは、プロジェクト作成ガイドをご覧ください。
Matter 対応の Google Nest Hub が必要です。
Android 8.1 以降を搭載した Android スマートフォン(GHA がインストールされている必要があります)が必要です。
Android スマートフォンが、ハブと同じ Wi-Fi ネットワークに接続されている必要があります。
ホストマシンは Wi-Fi ネットワークに接続する必要があります。
GHA を使用してデバイスをコミッショニングするには、[QRCode] をクリックしてデバイスの QR コードを表示します。GHA を使用して Matter デバイスをオンボーディングする方法を説明している Matter デバイスをペア設定するの手順に沿って操作します。Google Home Sample App for Matter を使用してデバイスをコミッショニングすることもできます。
Matter コミッショニングの仕組みについては、Matter Primer をご覧ください。
デバイスを操作する
仮想デバイスをコミッショニングすると、Google Home アプリまたは Google アシスタントを音声で使用して、デバイスを制御できます。次のいずれかの方法でご対応ください。
- 仮想デバイスの状態変化をモニタリングしながら、GHA または Assistant を介してデバイスを制御する。
- 仮想デバイスの状態変化をモニタリングしながら、Sample App for Matter を使用してデバイスを制御する。
- GHA または Assistant で状態変化をモニタリングしながら、MVD 自体を介してデバイスの状態を制御します。
デバイスでテストする
Assistant でテストするには、VS Code 用 Google Home 拡張機能や Android Studio 用 Google Home プラグインなどの発話シミュレータを使用することをおすすめします。
デバイスの詳細を表示する
[デバイスの詳細] 画面には、詳細なデバイス情報が表示されます。
- 名前: デバイスに付けられたわかりやすい名前。
- Device Type(デバイスの種類): 選択したデバイスの種類。
- 弁別子: 現在のデバイスの弁別子。
- ベンダー ID: 現在のデバイスのベンダー ID。
- プロダクト ID: 現在のデバイスのプロダクト ID。
- RPC ポート: デバイスがコントローラ(GUI)と通信する RPC ポート。
- Matter ポート: 現在のデバイスが IP ネットワーク経由で通信するために使用するポート。
- Pass Code(パスコード): ネットワーク経由でデバイスをコミッショニングする際に使用する PIN。
- Configuration Folder: 仮想デバイスが構成を保存するフォルダ。
- Commission Information: デバイスが参加したファブリックと、ファブリック内のデバイスのノード ID が表示されます。
デバイスのログを表示する
ターミナルから MVD を起動した場合、ログ出力は stdout
に表示されます。[デバイスのログ] タブでもデバイスのログを確認できます。
デバイスを停止する
デバイスを停止して破棄するには、[削除] をクリックします。
アプリを終了する
コントロール ウィンドウを閉じると、デバイスは破棄され、MVD アプリは終了します。ターミナルから起動した場合は、ターミナルで Ctrl+C キーを押してアプリケーションを終了することもできます。
ヘルプを参照する
MVD のサポート、バグの報告、新機能のリクエストについては、Google サポートの担当者にお問い合わせください。
ウィンドウの右上にあるヘルプ
ボタンをクリックすると、このページが表示されます。バグを報告する
MVD に不具合が見つかった場合は、ウィンドウの右上にある [問題] ボタンをクリックしてバグを報告できます。
フィードバックを送信
MVD の気に入った点や、ツールのエクスペリエンス改善方法についてご意見がございましたら、フィードバック フォームにご記入ください。
フォームは、ウィンドウの右上にあるフィードバック
ボタンまたは下のボタンをクリックして起動できます。