Matter 仮想デバイスは、Matter ソリューションの開発とテストに有用であり、Google Home app (GHA) を使用してコミッショニングでき、物理的な Matter デバイスと同様に GHA と Google Assistant を使用して制御できます。
仮想 Matter デバイスをテストまたはエミュレートする必要があるが、独自の物理デバイスまたは仮想 Matter デバイスを構築するためのリソースがないアプリ デベロッパー向けに、Matter Virtual Device (MVD) が用意されています。MVD は軽量のスタンドアロン Linux デスクトップ ツールで、さまざまな種類の仮想 Matter デバイスをシミュレートし、仮想 Matter デバイスの状態を制御して表示するグラフィカル ユーザー インターフェースを提供します。
物理的な Matter デバイスとは異なり、MVD は Bluetooth® Low Energy(BLE)または Thread® に依存して Matter ファブリックに参加しません。代わりに、ホスト Linux マシンの既存の Wi-Fi ネットワーク接続をコミッショニングに使用します。
他のツールとの比較
MVD が Virtual Device Controller (VDC) と異なる点は、自己完結型のソリューションであり、仮想デバイスとそれを管理するための UI が組み合わされている点です。これに対し、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)パッケージをダウンロードする
armered-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 を使用する任意のプロセスを強制終了できます。
sudo fuser -k 33000/tcp
MVD の実行
application フォルダまたはターミナルから MVD を実行します。
mvd
デバイスを設定する
メイン画面は起動時に表示され、仮想デバイスを構成できます。
- Device Type: デバイスタイプ(照明、スイッチ、センサーなど)を選択します。
- デバイス名: デバイスにわかりやすい名前を付けます。
- Discriminator: コミッショナル デバイス アドバタイズを複数識別するために使用される 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
で再度有効にできます。
デバイスを実行する
デバイスを設定したら、[Create device] をクリックします。デバイスが作成されると、[Controller] 画面が表示されます。選択したデバイスの種類に応じて、次の 1 つ以上のコントロールが表示されます。
- オン/オフ: 大部分のデバイスに共通です。
- レベル: たとえば、ライトに明るさ調整のレベル スライダーがあることがあります。
- 色: たとえば、カラーライトにこのコントロールがあります。
- 在宅確認: 在室確認センサーは、これを使用して在宅/不在の状態をシミュレートします。
すべての仮想デバイスには以下のコントロールがあります。
- QRCode: コミッショニングに使用する QR コードを表示します。
- Restart: 仮想デバイスを再起動します。デバイスがネットワークから一時的に切断されている。
- Reset: 現在のデバイスを初期状態にリセットし、コミッショニング、現在の制御状態などを含むすべての状態をクリアします。
- 削除: デバイスを破棄し、[デバイスの作成] 画面に戻ります。
デバイスのコミッション
デバイスは作成後すぐにコミッショニングできます。
デバイスのコミッショニングの前提条件は次のとおりです。
Google Home Developer Console にプロジェクトが必要です。このプロジェクトには、仮想デバイスのセットアップに使用したものと同じ VID/PID の組み合わせを持つ Matter 統合が含まれている必要があります。詳しくは、プロジェクト作成ガイドをご覧ください。
Android 8.1 以降を搭載した Android スマートフォン、GHA がインストールされている必要があります。
Android スマートフォンがハブと同じ Wi-Fi ネットワークに接続されている必要があります。
ホストマシンが Wi-Fi ネットワークに接続されている必要があります。
GHA を使用してデバイスをコミックするには、[QRCode] をクリックしてデバイスの QR コードを表示し、Matter デバイスをペア設定するの手順に沿って、GHA を使用して Matter デバイスをオンボーディングします。Google Home Sample App for Matter を使用してデバイスをコミッショニングすることもできます。
Matter コミッショニングの仕組みについては、Matter 入門をご覧ください。
デバイスを操作する
仮想デバイスのコミッショニング後は、Google Home アプリまたは Google アシスタントを音声で使用してデバイスを操作できるようになります。次のいずれかの方法でご対応ください。
- 仮想デバイスでの状態の変化をモニタリングしながら、GHA または Assistant を使用してデバイスを制御する。
- 仮想デバイスでの状態の変化をモニタリングしながら、Sample App for Matter を使用してデバイスを操作する。
- GHA または Assistant の状態変化をモニタリングしながら、MVD 自体を介してデバイスの状態を制御します。
デバイスでテストする
Assistant でテストするには、VS Code 用 Google Home 拡張機能や Android Studio 用 Google Home プラグインなどの発話シミュレータを使用することをおすすめします。
デバイスの詳細を確認する
[デバイスの詳細] 画面には、デバイスの詳細情報が表示されます。
- 名前: デバイスにわかりやすい名前。
- デバイスタイプ: 選択したデバイスタイプ。
- Discriminator: 現在のデバイスの識別子です。
- ベンダー ID: 現在のデバイスのベンダー ID。
- プロダクト ID: 現在のデバイスのプロダクト ID。
- RPC ポート: デバイスがコントローラ(GUI)と通信する RPC ポート。
- Matter ポート: 現在のデバイスが IP ネットワークを介した通信に使用するポート。
- パスコード: ネットワークを通じてデバイスをコミッショニングするために使用する PIN。
- Configuration Folder: 仮想デバイスが構成を保存するフォルダ。
- コミッション情報: デバイスが参加したファブリックとファブリック内のデバイスのノード ID を示します。
デバイスのログを表示する
ターミナルから MVD を起動すると、ログ出力が stdout
に表示されます。[デバイスのログ] タブでデバイスのログを確認することもできます。
デバイスを停止する
デバイスを停止して破棄するには、[Delete] をクリックします。
アプリを終了する
コントロール ウィンドウを閉じると、デバイスが破棄され、MVD アプリが終了します。ターミナルから起動した場合は、ターミナルで Ctrl+C を押してアプリケーションを終了することもできます。
サポートが必要な場合
MVD のサポート、バグ報告、新機能のリクエストについては、Google のサポートにお問い合わせください。
ウィンドウの右上にあるヘルプ
ボタンをクリックすると、このページが表示されます。バグを報告する
MVD に不具合が見つかったと思われる場合は、ウィンドウの右上にある [問題 ] ボタンをクリックして、バグを報告できます。
フィードバックを送信
フィードバック フォームにご記入いただき、MVD についてのご意見や、ツールの改善についてのご意見やご感想をお寄せください。
フォームを開くには、ウィンドウの右上にあるフィードバック
ボタンを使用するか、下のボタンをクリックします。