重要な仮想デバイス

Matter デバイス SDK

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

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

物理的な Matter デバイスとは異なり、MVDMatter ファブリックに参加するために Bluetooth® Low Energy(BLE)や Thread® に依存しません。代わりに、ホスト Linux または macOS マシンの既存の Wi-Fi ネットワーク接続を使用してコミッショニングを行います。

他のツールとの比較

MVDVirtual Device Controller (VDC) と異なる点は、仮想デバイスとそれを制御する UI を組み合わせた自己完結型のソリューションです。一方、VDC は、Matter Virtual Device Development Environment (MVD-DE) でビルドするデバイスなど、個別の仮想 Matter デバイスを制御するために使用されます。

MVD-DE Codelab をすでに操作しているかもしれません。この Codelab では、1 種類の仮想デバイス(スマート電球)を作成します。一方、MVD にはいくつかの異なるビルド済み仮想デバイスが含まれ、それらのデバイスを実行および制御するための統合 UI が含まれています。

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

サポートされているデバイス

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

表: MVD でサポートされている Matter デバイスタイプ
Matter デバイスタイプ アプリケーション クラスタ 家庭用エコシステムのタイプ
基本の動画プレーヤー 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
Smoke
煙・一酸化炭素警報 0x005C
Smoke
温度センサー 0x0402
センサー
サーモスタット 0x0201
サーモスタット
窓ガラス 0x0102
ブラインド

MVD をインストールする

MVD は、Debian(11 以降)、Ubuntu(20.04 以降)、macOS を実行している 64 ビット x86 プロセッサ マシンで動作します。

Linux

MVD Debian(.deb)パッケージをダウンロードする

armored-ASCII 署名(.asc)ファイルをダウンロードする

次に、dpkg を実行して MVD Debian(.deb)パッケージをインストールします。

sudo dpkg -i mvd_1.4.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

1 つのコマンドで、TCP ポート 33000 を使用する任意のプロセスを強制終了できます。

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

デバイスを設定する

起動時にメイン画面が表示され、ここで仮想デバイスを構成できます。

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

仮想デバイスの構成画面

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

Linux

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

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

sudo iptables -L -n

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

sudo ufw disable

再度有効化するには、次のコマンドを使用します。

sudo ufw enable

macOS

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

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

デバイスを実行する

デバイスを構成したら、[デバイスを作成] をクリックします。デバイスが作成されると、[Controller] 画面が表示されます。選択したデバイスの種類に応じて、以下のコントロールが 1 つ以上表示されます。

  • オン/オフ: 大部分のデバイスに共通です。
  • レベル: たとえば、ライトに明るさを調整するためのレベル スライダーを設定できます。
  • : たとえば、カラーライトにこのコントロールを設定できます。
  • 在宅確認: 在室確認センサーでは、このコントロールにより、有人または無人の状態をシミュレートします。

すべての仮想デバイスには次のコントロールがあります。

  • QRCode: コミッショニングに使用される QR コードを表示します。
  • 再起動: 仮想デバイスを再起動します。デバイスがネットワークから一時的に切断されます。
  • Reset: 現在のデバイスを出荷時の設定にリセットし、試運転、現在のコントロール状態など、すべての状態をクリアします。
  • 削除: デバイスを破棄し、[デバイスの作成] 画面に戻ります。

仮想デバイス コントロール画面

デバイスをコミッショニング

デバイスは作成後すぐにコミッションの対象となります。

デバイスをコミッショニングするには、次の前提条件を満たす必要があります。

  • Google Home Developer Console にプロジェクトが必要です。このプロジェクトには、仮想デバイスの設定に使用したものと同じ VID/PID の組み合わせを持つ Matter 統合を含める必要があります。詳しくは、プロジェクト作成ガイドをご覧ください。

  • Matter に対応している Google Nest Hub が必要です。

  • 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 プラグインなどの発話シミュレータを使用することをおすすめします。

デバイスの詳細を表示する

[デバイスの詳細] 画面には、詳細なデバイス情報が表示されます。

  • Name: デバイスに付けられたわかりやすい名前。
  • Device Type: 選択したデバイスの種類。
  • Discriminator: 現在のデバイス識別子。
  • ベンダー ID: 現在のデバイス ベンダー ID。
  • プロダクト ID: 現在のデバイスのプロダクト ID。
  • RPC ポート: デバイスがコントローラ(GUI)と通信する RPC ポート。
  • Matter ポート: 現在のデバイスが IP ネットワーク経由で通信するために使用するポート。
  • パスコード: ネットワーク経由でデバイスをコミッショニングする際に使用する PIN。
  • 構成フォルダ: 仮想デバイスが構成を保存するフォルダ。
  • Commission Information: デバイスが参加したファブリックと、ファブリック内のデバイスのノード ID が表示されます。

デバイスのログを表示する

ターミナルから MVD を起動した場合、ログ出力は stdout に表示されます。[デバイスのログ] タブでもデバイスのログを確認できます。

デバイスを停止する

デバイスを停止して破棄するには、[削除] をクリックします。

アプリを終了する

コントロール ウィンドウを閉じると、デバイスが破棄され、MVD アプリが終了します。ターミナルから起動した場合は、ターミナルで Ctrl+C キーを押してアプリを終了することもできます。

ヘルプを参照する

MVD のサポート、バグの報告、新機能のリクエストについては、Google サポートの担当者にお問い合わせください。

ウィンドウの右上にあるヘルプボタン をクリックすると、このページが表示されます。

バグを報告

MVD に不具合を見つけた場合は、ウィンドウの右上にある [問題] ボタンをクリックしてバグを報告してください。

フィードバックの送信

MVD の気に入った点やツールの使い勝手に関する改善案などがありましたら、フィードバック フォームにご記入ください。

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

フィードバックの送信