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
煙霧
溫度感應器 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 選單,然後選擇「系統設定」
  2. 按一下側欄清單中的「聯播網」
  3. 按一下「防火牆」
  4. 將「防火牆」的切換鈕撥到「關閉」

執行裝置

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

  • 開啟/關閉:適用於多數裝置。
  • 等級:舉例來說,燈具可以使用音量滑桿調整亮度。
  • 顏色:例如,彩色燈可以有這個控制項。
  • 可住人數:活動情形感應器提供這個控制項,可模擬已有人使用或無人使用的狀態。

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

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

虛擬裝置控制畫面

調試裝置

裝置建立後即可接受佣金。

調校裝置的先決條件如下:

  • 您必須在「Google Home Developer Console」中擁有專案。這項專案必須包含 Matter 整合項目,其中 VID/PID 組合與您在設定虛擬裝置時使用的 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 擴充功能Android Studio 適用的 Google Home 外掛程式

查看裝置詳細資料

「Device details」(裝置詳細資料) 畫面會顯示裝置詳細資訊:

  • 名稱:指派給裝置的好記名稱。
  • 裝置類型:所選的裝置類型。
  • 鑑別器:目前的裝置鑑別器。
  • 供應商 ID:目前的裝置供應商 ID。
  • 產品 ID:目前裝置的產品 ID。
  • RPC 通訊埠:裝置與控制器 (GUI) 通訊的 RPC 通訊埠。
  • Matter Port:目前裝置透過 IP 網路進行通訊的通訊埠。
  • 通行碼:透過網路調校裝置時所用的 PIN 碼。
  • 「Configuration Folder」:虛擬裝置儲存設定的資料夾。
  • Commission Information:顯示裝置加入的布料,以及布料中裝置的節點 ID。

查看裝置記錄

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

停止裝置

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

終止應用程式

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

取得協助

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

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

回報錯誤

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

提供意見

如要提供您對 MVD 的想法,或希望改善這項工具的使用體驗,請填寫意見回饋表單。

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

歡迎提供寶貴意見