Matter 虛擬裝置

Matter Device SDK

Matter 虛擬裝置適合用於開發及測試 Matter 解決方案,可使用 Google Home app (GHA) 強制執行,並使用 GHAGoogle Assistant 加以控管,就像實體 Matter 裝置一樣。

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

與實體 Matter 裝置不同,MVD 不會仰賴 Bluetooth® 低功耗 (BLE) 或 Thread® 來加入 Matter 架構。而是使用主機 Linux 或 macOS 機器現有的 Wi-Fi 網路連線進行調用。

與其他工具相比

MVDVirtual Device Controller (VDC) 的不同之處在於,它是獨立解決方案,將虛擬裝置與可控制它的 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 裝置類型:

表格: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
煙霧
煙霧警報器 0x005C
煙霧
溫度感應器 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

您可以使用單一指令終止使用 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」:選取裝置類型 (例如淺色、切換、感應器等)。
  • 裝置名稱:為裝置取好記的名稱。
  • 鑑別器: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 選單並選擇「System Settings」
  2. 按一下側欄清單中的「網路」
  3. 按一下「防火牆」
  4. 將「防火牆」的切換鈕設為「關閉」

執行裝置

裝置設定完成後,按一下「Create device」。建立裝置後,系統會顯示「Controller」畫面。視您選取的裝置類型而定,您可能會看到下列一或多個控制項:

  • 開啟/關閉:適用於大多數裝置。
  • Level:舉例來說,燈具可以設定亮度滑桿來調整亮度。
  • 顏色:舉例來說,色光可以有這個控制項。
  • 可住人數:活動情形感應器提供這項控制項,可模擬有人在家或無人在家的狀態。

所有虛擬裝置都具備下列控制項:

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

虛擬裝置控制畫面

調試裝置

裝置一經建立即可佣金。

以下是啟動裝置測試的幾項先決條件:

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

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

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

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

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

如要使用 GHA 對裝置執行佣金,請按一下「QRCode」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 進行測試,建議您使用語音模擬器,例如 VS Code 適用的 Google Home ExtensionAndroid Studio 專用的 Google Home 外掛程式

查看裝置詳細資料

「裝置詳細資料」畫面會顯示裝置詳細資訊:

  • 名稱:為裝置指定的易記名稱。
  • 裝置類型:選取的裝置類型。
  • 鑑別器:目前的裝置鑑別器。
  • 供應商 ID:目前的裝置供應商 ID。
  • 產品 ID:目前的裝置產品 ID。
  • RPC 通訊埠:裝置與控制器 (GUI) 通訊的 RPC 通訊埠。
  • Matter 通訊埠:目前裝置透過 IP 網路進行通訊時所用的通訊埠。
  • 密碼:透過網路調用裝置的 PIN 碼。
  • Configuration Folder (設定資料夾):虛擬裝置儲存設定的資料夾。
  • Commission Information:顯示裝置連接的架構,以及織布中裝置的節點 ID。

查看裝置記錄

如果您已從終端機啟動 MVD,記錄輸出就會顯示在 stdout 上。此外,您也可以前往「裝置記錄」分頁查看裝置記錄。

停止裝置

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

終止應用程式

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

取得協助

如需 MVD 相關協助、回報錯誤或提出新功能建議,請洽詢您的 Google 支援聯絡人。

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

回報錯誤

如果您認為在 MVD 中發現瑕疵,可以按一下視窗右上角的「問題 」按鈕回報錯誤。

提供意見

歡迎填寫意見回饋表單,分享您喜歡 MVD 的哪些功能,或可以如何改善這項工具使用體驗。

如要開啟表單,請點選視窗右上角的意見回饋 按鈕,或點選下方的按鈕。

提供意見回饋