Matter 虛擬裝置

Device SDK

Matter 虛擬裝置可用於開發及測試 Matter 解決方案,而且可以使用 Google Home app (GHA) 啟用,並使用 GHAGoogle Assistant 進行控制,就像實體 Matter 裝置一樣。

如果應用程式開發人員和其他人需要測試或模擬虛擬 Matter 裝置,但缺乏建構自己的實體虛擬 Matter 裝置的資源,Google 提供 Matter Virtual Device (MVD)MVD 是一款輕量型獨立 Linux 或 macOS 桌面工具,可模擬不同類型的虛擬 Matter 裝置,並提供圖形使用者介面,用於控制及顯示虛擬 Matter 裝置的狀態。

MVD 與實體 Matter 裝置不同,不必使用藍牙低功耗 (BLE) 或 Thread® 才能加入 Matter 結構體。而是使用主機 Linux 或 macOS 機器的現有 Wi-Fi 網路連線進行調試。

與其他工具比較

MVDVirtual Device Controller (VDC) 的不同之處在於,MVD 是自給自足的解決方案,結合虛擬裝置與用於控制虛擬裝置的 UI。相反地,VDC 用於控制個別的虛擬 Matter 裝置,例如我們在 Matter Virtual Device Development Environment (MVD-DE) 中建構的裝置。

您可能已經使用過 MVD-DE 程式碼研究室。在本程式碼研究室中,您將建構單一類型的虛擬裝置 - 智慧型燈泡。相反地,MVD 包含多個不同的預先建構虛擬裝置,並提供整合式 UI 來執行及控制這些裝置。

表格:虛擬 Matter 裝置工具比較
MVD VDC MVD-DE (程式碼研究室)
模擬 Matter 裝置
控制模擬的 Matter 裝置
所需的開發作業
下載 小於 100 MB 9 GB 20 GB

支援的裝置

MVD 支援下列 Matter 裝置類型:

支援的 Matter 裝置類型
表格:MVD
Matter 裝置類型 應用程式叢集 住家生態系統類型
基本影片播放器 0x0006
0x0506
0x0509
電視
色溫燈光 0x0300
0x0008
0x0006
Light
接觸式感應器 0x0045
Sensor
可調光燈 0x0008
0x0006
Light
門鎖 0x0101
鎖定
延長型色彩燈 0x0300
0x0008
0x0006
Light
電風扇 0x0202
0x0006
Fan
流量感應器 0x0404
Sensor
一般切換鈕 0x003b
切換鈕
濕度感應器 0x0405
Sensor
光度感應器 0x0400
Sensor
活動情形感應器 0x0406
Sensor
開啟/關閉燈光 0x0008
0x0006
Light
開/關燈具開關 0x0006
切換鈕
開/關插入式裝置 0x0008
0x0006
Outlet
壓力感應器 0x0403
Sensor
0x0006
0x0200
0x0402
0x0403
0x0404
水泵
掃地機器人 0x0054
0x0055
0x0061
吸塵器
房間空調 0x0006
0x0201
0x0202
Ac
煙霧/一氧化碳警報器 0x005C
煙霧
溫度感應器 0x0402
Sensor
溫度控制器 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.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

您可以使用單一指令,終止任何使用 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

設定裝置

啟動後會顯示主畫面,可讓您設定虛擬裝置:

  • 裝置類型:選取裝置類型 (例如燈具、開關、感應器等)。
  • 裝置名稱:為裝置命名,方便使用者辨識。
  • Discriminator:用於區分多個可收取佣金的裝置廣告的 12 位元數字。(預設值:3840)。
  • Matter 通訊埠:用於透過 IP 網路進行 Matter 調試和通訊的通訊埠。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」畫面。視您選取的裝置類型而定,您可能會看到下列一或多個控制項:

  • 開啟/關閉:適用於大多數裝置。
  • 等級:例如燈具可能會提供等級滑桿來調整亮度。
  • 顏色:例如彩色燈具可能會提供這個控制項。
  • 有人在場:有人在場感應器提供此控制項,可模擬有人在場或無人狀態。

所有虛擬裝置都提供下列控制項:

  • QRCode:顯示用於調試的 QR code。
  • 重新啟動:重新啟動虛擬裝置。裝置會暫時中斷網路連線。
  • Reset:將目前的裝置恢復原廠設定,並清除所有狀態,包括調試、目前的控制項狀態等等
  • 刪除:刪除裝置並返回「建立裝置」畫面。

虛擬裝置控制畫面

委任裝置

裝置建立後即可進行委派作業。

啟用裝置時,必須符合下列幾個先決條件:

  • 您必須在 Google Home Developer Console 中擁有專案。這個專案必須包含 Matter 整合,且 VID/PID 組合必須與設定虛擬裝置時使用的組合相同。詳情請參閱專案建立指南

  • 你必須擁有支援 Matter 的 Google Nest Hub

  • 您必須使用搭載 Android 8.1 以上版本的 Android 手機,並安裝 GHA

  • Android 手機必須連上與中樞連線相同的 Wi-Fi 網路。

  • 主機必須連上 Wi-Fi 網路。

如要使用 GHA 啟用裝置,請點選「QR code」QRCode來顯示裝置的 QR code,然後按照「配對 Matter 裝置」中的說明操作,瞭解如何使用 GHA 啟用 Matter 裝置。您也可以使用 Google Home Sample App for Matter 啟用裝置。

請參閱 Matter 入門指南,瞭解如何啟用 Matter 調試功能。

控制裝置

啟用虛擬裝置後,您可以使用 Google Home 應用程式或 Google 助理語音指令控制裝置。你可以採取下列其中一種做法:

  • 透過 GHAAssistant 控制裝置,同時監控虛擬裝置的狀態變更,或
  • 使用 Sample App for Matter 控制裝置,同時監控虛擬裝置的狀態變更。
  • 透過 MVD 本身控制裝置狀態,同時監控 GHAAssistant 中的狀態變更。

使用裝置進行測試

如要使用 Assistant 進行測試,建議使用語句模擬器,例如 Google Home Extension for VS CodeGoogle Home Plugin for Android Studio

查看裝置詳細資料

「Device detail」畫面會顯示詳細的裝置資訊:

  • 名稱:裝置的簡易名稱。
  • 裝置類型:所選裝置類型。
  • 鑑別器:目前的裝置鑑別器。
  • 供應商 ID:目前的裝置供應商 ID。
  • 產品 ID:目前裝置的產品 ID。
  • RPC 通訊埠:裝置與控制器 (GUI) 通訊的 RPC 通訊埠。
  • Matter 通訊埠:目前裝置用於透過 IP 網路通訊的通訊埠。
  • 密碼:用於透過網路啟用裝置的 PIN 碼。
  • 設定資料夾:虛擬裝置儲存設定的資料夾。
  • 佣金資訊:顯示裝置加入的 Fabric,以及裝置在 Fabric 中的節點 ID。

查看裝置記錄檔

如果您是從終端機啟動 MVD,記錄輸出內容會顯示在 stdout 上。您也可以在「裝置記錄」分頁中查看裝置記錄。

停止裝置

如要停止並銷毀裝置,請按一下「刪除」

終止應用程式

關閉控制視窗會摧毀裝置,並終止 MVD 應用程式。如果您是從終端機啟動應用程式,也可以在終端機中輸入 Ctrl-C 來終止應用程式。

取得說明

如需 MVD 相關協助、回報錯誤或要求新增功能,請與 Google 支援團隊聯絡。

按一下視窗右上角的說明 按鈕,即可前往這個頁面。

回報錯誤

如果您認為 MVD 有瑕疵,可以按一下視窗右上角的「Issue」 按鈕,回報錯誤。

提供意見

如要針對 MVD 的優點或我們可改善的使用體驗提供意見,請填寫意見回饋表單。

您可以透過視窗右上角的「意見」 按鈕,或點選下方按鈕,啟動這份表單。

提供意見回饋