重要な仮想デバイス

Matter デバイス SDK

Matter 仮想デバイスは、Matter ソリューションの開発とテストに便利で、Matter 物理デバイスと同様に、Google Home app (GHA) を使用してコミッショニングし、GHAGoogle Assistant を使用して制御できます。

アプリ デベロッパーなど、仮想 Matter デバイスをテストまたはエミュレートする必要があるが、独自の物理または仮想Matter デバイスを構築するためのリソースがないユーザー向けに、Google は Matter Virtual Device (MVD) を提供しています。MVD は軽量のスタンドアロン Linux デスクトップ ツールで、さまざまな種類の仮想 Matter デバイスをシミュレートし、グラフィカル ユーザー インターフェースを使用して仮想 Matter デバイスの状態を制御および表示します。

物理的な Matter デバイスとは異なり、MVDMatter ファブリックへの接続に 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 を備えています。

表: 仮想 Matter デバイスのツールの比較
MVD VDC MVD-DE(Codelab)
Matter デバイスをエミュレートする
エミュレートされた Matter デバイスを操作する
デプロイ作業が必要
ダウンロード 100 MB 未満 9 GB 20 GB

サポート対象デバイス

現在、MVD は次の Matter デバイスタイプをサポートしています。

表: 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 は 0x80000x801F のみです。

[Virtual Device Configuration] 画面

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

コンピュータでファイアウォールを実行している場合は、ファイアウォールをシャットダウンするか、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 の気に入った点や、ツールのエクスペリエンス改善方法についてご意見がございましたら、フィードバック フォームにご記入ください。

フォームは、ウィンドウの右上にあるフィードバック ボタンまたは下のボタンをクリックして起動できます。

フィードバックの送信