Matter 仮想デバイスは、Matter ソリューションの開発とテストに役立ちます。実機の Matter デバイスと同様に、Google Home app (GHA) を使用して設定し、GHA と Google Assistant を使用して制御できます。
仮想 Matter デバイスをテストまたはエミュレートする必要があるアプリ デベロッパーやその他のユーザーが、独自の物理または仮想 Matter デバイスを構築するためのリソースがない場合は、Matter Virtual Device (MVD) を使用できます。MVD は、さまざまな種類の仮想 Matter デバイスをシミュレートし、仮想 Matter デバイスの状態を制御して表示するためのグラフィカル ユーザー インターフェースを提供する、軽量のスタンドアロンの Linux または macOS デスクトップ ツールです。
物理的な Matter デバイスとは異なり、MVD は Matter ファブリックに参加するために Bluetooth® Low Energy(BLE)や Thread® に依存しません。代わりに、ホストの Linux または macOS マシンの既存の Wi-Fi ネットワーク接続を使用して、構成を行います。
他のツールとの比較
MVD は、仮想デバイスとその制御用の UI を組み合わせた自己完結型のソリューションであるという点で、Virtual Device Controller (VDC) とは異なります。一方、VDC は、Matter Virtual Device Development Environment (MVD-DE) でビルドするデバイスなど、別の仮想 Matter デバイスを制御するために使用されます。
MVD-DE Codelab をすでに使用しているかもしれません。この Codelab では、1 種類の仮想デバイス(スマート電球)を作成します。一方、MVD には、いくつかの異なる事前ビルド済み仮想デバイスが含まれており、それらを実行して制御するための統合 UI が含まれています。
MVD | VDC | MVD-DE(Codelab) | |
---|---|---|---|
Matter デバイスをエミュレートする | |||
エミュレートされた Matter デバイスを操作する | |||
デプロイ作業が必要 | |||
ダウンロード | 100 MB 未満 | 9 GB | 20 GB |
サポートされているデバイス
MVD は、次の Matter デバイスタイプをサポートしています。
Matter デバイスの種類 | アプリケーション クラスタ | ホーム エコシステムのタイプ |
---|---|---|
空気清浄機 |
0x0202 0x0006 0x0071 |
空気清浄機 |
大気質センサー |
0x005b 0x0402 0x0405 0x040c 0x040d 0x042a 0x042d 0x042e |
センサー |
基本的な動画プレーヤー |
0x0006 0x0506 0x0509 |
テレビ |
色温度ライト |
0x0300 0x0008 0x0006 |
ライト |
接触センサー |
0x0045 |
センサー |
調光可能なライト |
0x0008 0x0006 |
ライト |
ドアロック |
0x0101 |
ロック |
拡張色ライト |
0x0300 0x0008 0x0006 |
ライト |
素敵 |
0x0202 0x0006 |
ファン |
流量センサー |
0x0404 |
センサー |
汎用スイッチ |
0x003b |
スイッチ |
湿度センサー |
0x0405 |
センサー |
光センサー |
0x0400 |
センサー |
在室確認センサー |
0x0406 |
センサー |
ライトのオン/オフ |
0x0008 0x0006 |
ライト |
オン/オフ ライトスイッチ |
0x0006 |
スイッチ |
オン/オフ プラグイン ユニット |
0x0008 0x0006 |
コンセント |
圧力センサー |
0x0403 |
センサー |
ポンプ |
0x0006 0x0200 0x0402 0x0403 0x0404 |
ウォーター ポンプ |
ロボット掃除機 |
0x0054 0x0055 0x0061 |
掃除機 |
客室エアコン |
0x0006 0x0201 0x0202 |
Ac |
煙・一酸化炭素警報 |
0x005C |
煙 |
温度センサー |
0x0402 |
センサー |
サーモスタット |
0x0201 |
サーモスタット |
窓装飾用品 |
0x0102 |
ブラインド |
MVD をインストールする
MVD は、Debian(11 以降)、Ubuntu(20.04 以降)、または macOS を実行している 64 ビット x86 プロセッサ マシンで動作します。
Linux
MVD Debian(.deb)パッケージをダウンロードする
ASCII シグネチャ(.asc)ファイルをダウンロードする
次に、dpkg
を実行して MVD Debian(.deb)パッケージをインストールします。
sudo dpkg -i mvd_1.5.0_amd64.deb
macOS
MVD(macOS x86)dmg ファイルをダウンロードする
MVD(ARM64 M1)dmg ファイルをダウンロードする
次に、dmg
ファイルをダブルクリックしてインストール ウィンドウを開きます。
インストールを完了するには、mvd
アイコンを選択して Applications
フォルダにドラッグします。
ポートの使用状況を確認する
MVD のコントローラ モジュールは、TCP ポート 33000 を使用して仮想デバイスに RPC 呼び出しを行うため、このポートがコンピュータ上の別のプロセスですでに使用されている場合は、必ず解放してください。
ポート 33000 を使用しているプロセスがあるかどうかを確認するには:
Linux
sudo fuser -v 33000/tcp
macOS
lsof -i:33000
TCP ポート 33000 を使用しているプロセスは、1 つのコマンドで強制終了できます。
Linux
sudo fuser -k 33000/tcp
macOS
lsof -ti:33000 | xargs kill
MVD を実行する
Linux
Linux では、アプリケーション フォルダまたはターミナルから MVD を実行します。
mvd
macOS
macOS では、Launchpad を使用して MVD を開くか、ターミナルから MVD を実行します。
cd /Applications
open mvd.app
デバイスを設定する
起動するとメイン画面が表示され、仮想デバイスを構成できます。
- デバイスタイプ: デバイスタイプ(Light、Switch、Sensor など)を選択します。
- デバイス名: デバイスにわかりやすい名前を付けます。
- 識別子: コミッション対象の複数のデバイス広告を区別するために使用される 12 ビットの数値。(デフォルト:
3840
)。 - Matter ポート: Matter の構成と IP ネットワークを介した通信用のポート。Matter ではデフォルトで TCP/UDP ポート 5540 を使用しますが、他のサービスが使用していない限り、別のポートを使用するように仮想デバイスを構成できます。
- ベンダー ID: テスト用ベンダー ID
0xFFF1
のみがサポートされています。 - 商品 ID: テスト用商品 ID
0x8000
~0x801F
のみがサポートされています。
ファイアウォールを構成する
Linux
コンピューターでファイアウォールが実行されている場合は、ファイアウォールをシャットダウンするか、Matter ポートで受信 TCP/UDP 接続を許可します。
現在アクティブな netfilter ファイアウォール ルールを表示するには、次のコマンドを実行します。
sudo iptables -L -n
ufw を使用している場合は、次のコマンドで無効にできます。
sudo ufw disable
以下の方法で再度有効にできます。
sudo ufw enable
macOS
macOS でファイアウォールを構成または無効にするには:
- Apple メニューに移動し、[システム設定] を選択します。
- サイドバーのリストで [ネットワーク] をクリックします。
- [ファイアウォール] をクリックします。
- [ファイアウォール] のスイッチを [オフ] に切り替えます。
デバイスを実行する
デバイスが構成されたら、[デバイスを作成] をクリックします。デバイスが作成されると、[コントローラ] 画面が表示されます。選択したデバイスの種類に応じて、次のコントロールが 1 つ以上表示されます。
- オン/オフ: ほとんどのデバイスに共通。
- レベル: たとえば、ライトに明るさを調整するレベル スライダーがある場合。
- 色: たとえば、色付きライトにはこのコントロールがあります。
- 在室状態: 在室センサーでは、在室状態と不在状態をシミュレートするためにこのコントロールを使用します。
すべての仮想デバイスには、次のコントロールがあります。
- QRCode: 設置時に使用した QR コードが表示されます。
- 再起動: 仮想デバイスを再起動します。デバイスがネットワークから短時間切断されます。
- リセット: 現在のデバイスを出荷時の設定にリセットし、設置、現在のコントロールの状態など、すべての状態を消去します。
- 削除: デバイスを破棄し、[デバイスを作成する] 画面に戻ります。
デバイスを設置する
デバイスは作成後すぐに設定できます。
デバイスを設置する際には、いくつかの前提条件があります。
Google Home Developer Console にプロジェクトが必要です。このプロジェクトには、仮想デバイスのセットアップに使用したものと同じ VID/PID の組み合わせを持つ Matter 統合が含まれている必要があります。詳しくは、プロジェクト作成ガイドをご覧ください。
Android 8.1 以降を搭載し、GHA がインストールされている Android スマートフォンが必要です。
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 でテストするには、Google Home Extension for VS Code や Google Home Plugin for Android Studio などの音声シミュレータを使用することをおすすめします。
デバイスの詳細を表示する
[デバイスの詳細] 画面には、デバイスの詳細情報が表示されます。
- 名前: デバイスに付けられたわかりやすい名前。
- Device Type: 選択したデバイスの種類。
- 識別子: 現在のデバイスの識別子。
- ベンダー ID: 現在のデバイス ベンダー ID。
- プロダクト ID: 現在のデバイスのプロダクト ID。
- RPC ポート: デバイスがコントローラ(GUI)と通信する RPC ポート。
- Matter ポート: 現在のデバイスが IP ネットワークを介して通信するために使用するポート。
- パスコード: ネットワーク経由でデバイスを構成するために使用される PIN。
- 構成フォルダ: 仮想デバイスが構成を保存するフォルダ。
- 構成情報: デバイスが参加したファブリックと、ファブリック内のデバイスのノード ID が表示されます。
デバイスのログを表示する
ターミナルから MVD を起動した場合、ログ出力は stdout
に表示されます。デバイスのログは [デバイスのログ] タブでも確認できます。
デバイスを停止する
デバイスを停止して破棄するには、[削除] をクリックします。
アプリを終了する
コントロール ウィンドウを閉じると、デバイスが破棄され、MVD アプリケーションが終了します。ターミナルから起動した場合は、ターミナルで Ctrl-C を入力してアプリケーションを終了することもできます。
ヘルプ
MVD に関するサポート、バグの報告、新機能のリクエストについては、Google サポート担当者にお問い合わせください。
ウィンドウの右上にあるヘルプ
ボタンをクリックすると、このページが表示されます。バグを報告
MVD に欠陥があると思われる場合は、ウィンドウの右上にある問題アイコン をクリックしてバグを報告できます。
フィードバックを送信
MVD の良い点や、このツールの利便性を高めるためのご意見をお寄せください。フィードバック フォームにご記入ください。
フォームは、ウィンドウの右上にあるフィードバック
ボタンから、または下のボタンをクリックして起動できます。