Matter 仮想デバイスは、 Matter ソリューションの開発とテストに役立ちます。物理的な Matter デバイスと同様に、 Google Home app (GHA) を使用してコミッショニングし、GHA と Google Assistant を使用して制御できます。
アプリ デベロッパーなど、仮想 Matter デバイスをテストまたはエミュレートする必要があるものの、独自の 物理 デバイスまたは 仮想 Matter デバイスを構築するためのリソースがない場合は、 Google の Matter Virtual Device (MVD) をご利用ください。MVD は、さまざまな タイプの仮想 Matter デバイスをシミュレートする 軽量のスタンドアロン Linux または macOS デスクトップ ツールです。仮想 Matter デバイスの状態を制御して表示するためのグラフィカル ユーザー インターフェースを備えています。
物理的な Matter デバイスとは異なり、MVD は Bluetooth® Low Energy(BLE)や Thread® に依存しません。Matter代わりに、ホスト Linux または macOS マシンの既存の Wi-Fi ネットワーク接続を使用してコミッショニングを行います。
他のツールとの比較
MVD は、仮想デバイスとそれを制御するための UI を組み合わせた自己完結型のソリューションである点が、 Virtual Device Controller (VDC)と異なります。一方、VDC は別の仮想 Matter デバイスを 制御するために使用されます。
MVD には、複数の異なる事前構築済みの 仮想デバイスが含まれており、それらを実行して制御するための統合 UI が用意されています。
サポートされているデバイス
MVD は、次の Matter デバイスタイプをサポートしています。
| Matter デバイスタイプ | アプリケーション クラスタ | ホーム エコシステムのタイプ |
|---|---|---|
| 空気清浄機 |
0x0202 0x0006 0x0071 |
空気清浄機 |
| 空気質センサー |
0x005b 0x0402 0x0405 0x040c 0x040d 0x042a 0x042d 0x042e |
センサー |
| 基本動画プレーヤー |
0x0006 0x0506 0x0509 |
テレビ |
| 色温度ライト |
0x0300 0x0008 0x0006 |
照明 |
| 接触センサー |
0x0045 |
センサー |
| 調光可能なライト |
0x0008 0x0006 |
照明 |
| 調光可能なプラグイン ユニット |
0x0006 0x0008 |
コンセント |
| 食器洗い機 |
0x0006 0x0059 0x0056 0x0060 |
食器洗い機 |
| ドアロック |
0x0101 |
ロック |
| 拡張カラーライト |
0x0300 0x0008 0x0006 |
照明 |
| ファン |
0x0202 0x0006 |
ファン |
| 流量センサー |
0x0404 |
センサー |
| 汎用スイッチ |
0x003b |
スイッチ |
| 湿度センサー |
0x0405 |
センサー |
| 洗濯機 |
0x0006 0x0051 0x0053 0x0056 0x0060 |
洗濯機 |
| 光センサー |
0x0400 |
センサー |
| 在室確認センサー |
0x0406 |
センサー |
| オン/オフ ライト |
0x0008 0x0006 |
照明 |
| オン/オフ ライト スイッチ |
0x0006 |
スイッチ |
| オン/オフ プラグイン ユニット |
0x0008 0x0006 |
コンセント |
| 圧力センサー |
0x0403 |
センサー |
| ポンプ |
0x0006 0x0200 0x0402 0x0403 0x0404 |
ポンプ |
| ロボット掃除機 |
0x0054 0x0055 0x0061 |
掃除機 |
| ルームエアコン |
0x0006 0x0201 0x0202 |
エアコン |
| 煙・一酸化炭素警報 |
0x005C |
一酸化炭素検知器
煙探知器 |
| 温度センサー |
0x0402 |
センサー |
| サーモスタット |
0x0201 |
サーモスタット |
| 窓覆い |
0x0102 |
ブラインド |
MVD をインストールする
MVD は、Debian
(13 Trixie 以降)、Ubuntu(20.04 Noble Numbat 以降)、または macOS を実行している 64 ビット x86 プロセッサ マシンで実行されます。
Linux
MVD Debian(.deb)パッケージをダウンロードする
armored-ASCII 署名(.asc)ファイルをダウンロードする
次に、dpkg を実行して MVD
Debian(.deb)パッケージをインストールします。
sudo dpkg -i mvd_1.7.0_amd64.debmacOS
MVD(macOS x86)dmg ファイルをダウンロードする
MVD(ARM64 M1)dmg ファイルをダウンロードする
次に、dmg ファイルをダブルクリックしてインストール
ウィンドウを開きます。
インストールを完了するには、mvd アイコンを選択して
Applications フォルダにドラッグします。
ポートの使用状況を確認する
MVD のコントローラ モジュールは、TCP ポート 33000 を使用して仮想デバイスに RPC 呼び出しを行います。このポートがパソコン上の別の プロセスですでに使用されている場合は、必ず解放してください。
プロセスがポート 33000 を使用しているかどうかを確認するには:
Linux
sudo fuser -v 33000/tcpmacOS
lsof -i:33000TCP ポート 33000 を使用しているプロセスは、次のコマンドで強制終了できます。
Linux
sudo fuser -k 33000/tcpmacOS
lsof -ti:33000 | xargs killMVD を実行する
Linux
Linux で MVD を実行するには、アプリケーション フォルダまたは ターミナルから実行します。
mvdmacOS
macOS で MVD を開くには、Launchpad を使用するか、ターミナルから MVD を実行します。
cd /Applicationsopen mvd.app
デバイスを設定する
起動するとメイン画面が表示され、仮想デバイスを設定できます。
- デバイスタイプ:デバイスタイプ(照明、スイッチ、センサー など)を選択します。
- デバイス名: デバイスにわかりやすい名前を付けます。
- Discriminator: 複数の
コミッショニング可能なデバイス広告を区別するために使用される 12 ビットの数値。(デフォルト:
3840) - Matter ポート: IP ネットワーク経由での Matter コミッショニングと通信に使用するポート。Matter はデフォルトで TCP/UDP ポート 5540 を使用しますが、 他のサービスで使用されていない限り、別の ポートを使用するように仮想デバイスを構成できます。
- ベンダー ID: テスト ベンダー ID
0xFFF1のみがサポートされています。 - プロダクト ID: テスト プロダクト ID
0x8000~0x801Fのみがサポートされています。
ファイアウォールを構成する
Linux
パソコンでファイアウォールが実行されている場合は、シャットダウンするか、 受信 TCP/UDP 接続を Matter ポートで許可します。
現在アクティブな netfilter ファイアウォール ルールを表示するには、次を実行します。
sudo iptables -L -n`ufw` を使用している場合は、次のコマンドで無効にできます。
sudo ufw disable次のコマンドで再度有効にできます。
sudo ufw enablemacOS
macOS でファイアウォールを構成または無効にするには:
- Apple メニューに移動し、[システム設定] を選択します。
- サイドバー リストで [ネットワーク] をクリックします。
- [ファイアウォール] をクリックします。
- [ファイアウォール] のスイッチを [オフ] の位置に切り替えます。
デバイスを実行する
デバイスを設定したら、[Create device] をクリックします。デバイスが作成されると、[Controller] 画面が表示されます。選択したデバイスのタイプに応じて、次のコントロールが 1 つ以上表示されます。
- On/Off: ほとんどのデバイスに共通です。
- レベル: たとえば、照明には 明るさを調整するレベルスライダーがあります。
- 色: たとえば、カラーライトにはこのコントロールがあります。
- Occupancy: 在室確認センサーには、 在室状態と不在状態をシミュレートするためのこのコントロールがあります。
すべての仮想デバイスには次のコントロールがあります。
- QRCode: コミッショニングに使用する QR コードを表示します。
- Reboot: 仮想デバイスを再起動します。デバイスは一時的にネットワークから切断されます 。
- リセット: 現在のデバイスを初期状態にリセットし、コミッショニング、現在のコントロールの状態など、すべての状態をクリアします。
- [Delete]: デバイスを破棄し、[Create device] 画面に戻ります。
メーカー固有の特性
メーカー固有(MS)の特性 は、Android 用 Home API でサポートされており、追加機能を提供します 標準特性を超えるMatter。MS 特性を持つデバイスをテストするには、MVD を使用して [Custom Clusters] セクションの特性を操作します(上の画像を参照)。
デバイスをコミッショニングする
デバイスは作成されるとすぐにコミッショニング可能になります。
デバイスをコミッショニングするには、次の前提条件があります。
Google Home Developer Console にプロジェクトが必要です。このプロジェクトには、仮想デバイスの設定で使用した VID/PID の組み合わせと同じ組み合わせのMatter統合が含まれている必要があります。詳しくは、 プロジェクト作成ガイドをご覧ください。
Matter をサポートする Google Nest Hub が必要です。
Android 8.1 以降を搭載し、 GHA がインストールされている Android スマートフォンが必要です。
Android スマートフォンは、ハブと同じ Wi-Fi ネットワークに接続されている必要があります。
ホストマシンは Wi-Fi ネットワークに接続されている必要があります。
GHA を使用してデバイスをコミッショニングするには、[QRCode] をクリックしてデバイスの QR コードを表示し、Matter デバイスをペア設定するの手順に沿って Matter デバイスを GHA を使用してオンボーディングします。MatterMatter 用 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 プラグインなどの発話 シミュレータを使用することをおすすめします。
デバイスの詳細を表示する
[Device detail] 画面には、デバイスの詳細情報が表示されます。
- Name: デバイスに付けられたわかりやすい名前。
- Device Type: 選択したデバイスタイプ。
- Discriminator: 現在のデバイスの弁別子。
- ベンダー ID: 現在のデバイスのベンダー ID。
- プロダクト ID: 現在のデバイスのプロダクト ID。
- RPC Port: デバイスがコントローラ(GUI)と通信する RPC ポート。
- Matter ポート: 現在のデバイスが IP ネットワーク経由で通信するために使用するポート。
- Pass Code: ネットワーク経由でデバイスをコミッショニングするために使用する PIN。
- Configuration Folder: 仮想デバイスが 構成を保存するフォルダ。
- Commission Information: デバイスが参加したファブリックと ファブリック内のデバイスのノード ID を表示します。
デバイスのログを表示する
ターミナルから MVD を起動した場合、ログ出力は
stdout に表示されます。
[Device logs] タブでデバイスのログを表示することもできます。
デバイスを停止する
デバイスを停止して破棄するには、[Delete] をクリックします。
アプリを終了する
コントロール ウィンドウを閉じると、デバイスが破棄され、 MVD アプリケーションが終了します。ターミナルから起動した場合は、ターミナルで「Ctrl-C 」と入力してアプリケーションを終了することもできます。
ヘルプ
MVD のヘルプ、バグの報告、または 新機能のリクエストについては、Google サポート担当者にお問い合わせください。
ウィンドウの右上にあるヘルプ アイコン をクリックすると、このページに移動します。
バグを報告する
MVD に欠陥があると思われる場合は、 ウィンドウの右上にある [Issue ] ボタンをクリックしてバグを報告してください。
フィードバックを送信
MVD の気に入っている点や、ツールの改善点についてご意見をお寄せいただくには、フィードバック フォームにご記入ください。
フォームは、ウィンドウの右上にあるフィードバック ボタンをクリックするか、下のボタンをクリックして起動できます。
MVD を使用しているときに下部に表示されるアンケートでフィードバックを提供することもできます。MVD