Matter 仮想デバイス

Matter ; Home API

Matter 仮想デバイスは、 Matter ソリューションの開発とテストに役立ちます。物理的な Matter デバイスと同様に、 Google Home app (GHA) を使用してコミッショニングし、GHAGoogle 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 デバイス タイプ MVD
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.deb

macOS

MVD(macOS x86)dmg ファイルをダウンロードする

MVD(ARM64 M1)dmg ファイルをダウンロードする

次に、dmg ファイルをダブルクリックしてインストール ウィンドウを開きます。

インストールを完了するには、mvd アイコンを選択して Applications フォルダにドラッグします。

macOS のインストール

ポートの使用状況を確認する

MVD のコントローラ モジュールは、TCP ポート 33000 を使用して仮想デバイスに RPC 呼び出しを行います。このポートがパソコン上の別の プロセスですでに使用されている場合は、必ず解放してください。

プロセスがポート 33000 を使用しているかどうかを確認するには:

Linux

sudo fuser -v 33000/tcp

macOS

lsof -i:33000

TCP ポート 33000 を使用しているプロセスは、次のコマンドで強制終了できます。

Linux

sudo fuser -k 33000/tcp

macOS

lsof -ti:33000 | xargs kill

MVD を実行する

Linux

Linux で MVD を実行するには、アプリケーション フォルダまたは ターミナルから実行します。

mvd

macOS

macOS で MVD を開くには、Launchpad を使用するか、ターミナルから MVD を実行します。

cd /Applications
open mvd.app

デバイスを設定する

起動するとメイン画面が表示され、仮想デバイスを設定できます。

  • デバイスタイプ:デバイスタイプ(照明、スイッチ、センサー など)を選択します。
  • デバイス名: デバイスにわかりやすい名前を付けます。
  • Discriminator: 複数の コミッショニング可能なデバイス広告を区別するために使用される 12 ビットの数値。(デフォルト: 3840
  • Matter ポート: IP ネットワーク経由での Matter コミッショニングと通信に使用するポート。Matter はデフォルトで TCP/UDP ポート 5540 を使用しますが、 他のサービスで使用されていない限り、別の ポートを使用するように仮想デバイスを構成できます。
  • ベンダー ID: テスト ベンダー ID 0xFFF1 のみがサポートされています。
  • プロダクト ID: テスト プロダクト ID 0x80000x801F のみがサポートされています。

仮想デバイスの設定画面

ファイアウォールを構成する

Linux

パソコンでファイアウォールが実行されている場合は、シャットダウンするか、 受信 TCP/UDP 接続を Matter ポートで許可します。

現在アクティブな netfilter ファイアウォール ルールを表示するには、次を実行します。

sudo iptables -L -n

`ufw` を使用している場合は、次のコマンドで無効にできます。

sudo ufw disable

次のコマンドで再度有効にできます。

sudo ufw enable

macOS

macOS でファイアウォールを構成または無効にするには:

  1.  Apple メニューに移動し、[システム設定] を選択します。
  2. サイドバー リストで [ネットワーク] をクリックします。
  3. [ファイアウォール] をクリックします。
  4. [ファイアウォール] のスイッチを [オフ] の位置に切り替えます。

デバイスを実行する

デバイスを設定したら、[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