Matter 虚拟设备

诉讼或调查 设备 SDK

Matter 虚拟设备对于开发和测试 Matter 解决方案非常有用,可以使用 Google Home app (GHA) 进行调试,并使用 GHAGoogle Assistant 进行控制,就像实体 Matter 设备一样。

对于需要测试或模拟虚拟 Matter 设备但缺乏用于构建自己的物理虚拟 Matter 设备的应用开发者和其他人,Google 提供了 Matter Virtual Device (MVD)MVD 是一种轻量级独立 Linux 桌面工具,可以模拟不同类型的虚拟 Matter 设备,并提供图形界面来控制和显示虚拟 Matter 设备的状态。

与物理 Matter 设备不同,MVD 不依赖蓝牙® 低功耗 (BLE) 或 Thread® 来加入 Matter 结构。而是使用主机 Linux 机器现有的 Wi-Fi 网络连接进行调试。

与其他工具相比

MVDVirtual Device Controller (VDC) 的不同之处在于,它是一个独立的解决方案,将虚拟设备与用于控制该界面的界面相结合。相比之下,VDC 用于控制单独的虚拟 Matter 设备,例如我们在 Matter Virtual Device Development Environment (MVD-DE) 中构建的设备。

您可能已经学过 MVD-DE Codelab。在此 Codelab 中,您将构建一种类型的虚拟设备 - 智能灯泡。相比之下,MVD 包含几个不同的预构建虚拟设备,并且包含一个用于运行和控制这些设备的集成式界面。

表:虚拟 Matter 设备工具比较
MVD VDC MVD-DE (Codelab)
模拟 Matter 设备
控制模拟 Matter 设备
需要投入精力
下载 小于 100 MB 9 GB 20 GB

支持的设备

目前,MVD 支持以下 Matter 设备类型:

表:Matter设备类型支持 MVD
Matter设备类型 应用集群 Home 生态系统类型
色温灯 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 的进程:

sudo fuser -k 33000/tcp

运行 MVD

从应用文件夹或终端运行 MVD

mvd

配置您的设备

主屏幕会在启动时显示,并允许您配置虚拟设备:

  • 设备类型:选择设备类型(例如灯、开关、传感器等)。
  • 设备名称:为设备指定一个简单易懂的名称。
  • 判别器:用于区分多个可调试设备通告的 12 位编号。(默认值:3840)。
  • Matter 端口Matter通过 IP 网络进行调试和通信的端口。Matter 默认使用 TCP/UDP 端口 5540,但您可以将虚拟设备配置为使用其他端口,前提是没有任何其他服务在使用该端口。
  • 供应商 ID:目前仅支持测试供应商 ID 0xFFF1
  • 商品 ID:目前仅支持测试商品 ID 0x80000x801F

虚拟设备配置屏幕

配置防火墙

如果您的计算机正在运行防火墙,请将其关闭,或允许 Matter 端口上的传入 TCP/UDP 连接。

如需查看当前活跃的 netfilter 防火墙规则,请运行以下命令:

sudo iptables -L -n

注意:如果您使用的是 ufw,可以通过以下方式将其停用:

sudo ufw disable
此外,可以通过以下方式重新启用它:
sudo ufw enable

运行您的设备

设备配置完成后,点击 Create device。创建设备后,系统会显示 Controller 屏幕。根据您选择的设备类型,您可能会看到以下一个或多个控件:

  • 开启/关闭:大多数设备都通用。
  • 级别:例如,灯可以利用用来调节亮度的级别滑块。
  • 颜色:例如,彩灯可能具有这种控件。
  • 占用:占用传感器提供此控制,以模拟有人在家/未占用的状态。

所有虚拟设备都具有以下控件:

  • QRCode:显示用于调试的二维码。
  • 重新启动:重启虚拟设备。设备暂时断开网络连接。
  • 重置:将当前设备恢复出厂设置,并清除所有状态,包括调试、当前控件状态等
  • 删除:销毁设备并返回创建设备屏幕。

虚拟设备控制屏幕

调试设备

设备一经创建,便可供调试。

调试设备时需要满足几个前提条件:

  • 您必须在 Google Home Developer Console 中拥有一个项目。此项目必须包含一个 Matter 集成,该 VID/PID 组合与您在设置虚拟设备时使用的 VID/PID 组合相同。如需了解详情,请参阅项目创建指南

  • 您必须有支持 Matter 的 Google Nest Hub

  • 您必须拥有搭载 Android 8.1 或更高版本且安装了 GHA 的 Android 手机。

  • Android 手机必须与 hub 连接到同一个 Wi-Fi 网络。

  • 主机必须连接到 Wi-Fi 网络。

如需使用 GHA 调试设备,请点击 QRCode 以显示设备的二维码,然后按照配对 Matter 设备中的说明操作,了解如何使用 GHAMatter 设备进行初始配置。您还可以使用 Google Home Sample App for Matter 调试设备。

如需了解 Matter 调试的工作原理,请参阅我们的 Matter Primer

控制设备

调试虚拟设备后,你可以使用 Google Home 应用或 Google 助理通过语音控制设备。 您可以选择以下任一解决办法:

  • 通过 GHAAssistant 控制设备,同时监控虚拟设备上的状态更改,或者
  • 使用 Sample App for Matter 控制设备,同时监控虚拟设备上的状态变化,或者
  • 通过 MVD 本身控制设备状态,同时监控 GHAAssistant 中的状态变化。

使用设备进行测试

如需使用 Assistant 进行测试,我们建议您使用语音模拟器,例如 Google Home Extension for VS CodeGoogle Home Plugin for Android Studio

查看设备详细信息

设备详情屏幕显示详细的设备信息:

  • 名称:为设备指定的好记的名称。
  • 设备类型:选定的设备类型。
  • 判别器:当前的设备判别器。
  • 供应商 ID:当前的设备供应商 ID。
  • 产品 ID:当前的设备产品 ID。
  • RPC 端口:设备与控制器 (GUI) 进行通信的 RPC 端口。
  • Matter 端口:当前设备通过 IP 网络进行通信的端口。
  • Pass Code:通过网络调试设备时所用的 PIN 码。
  • Configuration Folder:虚拟设备存储配置的文件夹。
  • 佣金信息:显示设备所加入的面料以及结构中的设备的节点 ID

查看设备日志

如果您从终端启动了 MVD,日志输出会显示在 stdout 上。您还可以在设备日志标签页上查看设备日志。

停止设备

要停止并销毁设备,请点击删除

终止应用

关闭控制窗口会销毁设备并终止 MVD 应用。如果您是从终端启动,也可以通过在终端中输入 Ctrl-C 来终止应用。

获取帮助

如需获取 MVD 方面的帮助、报告 bug 或请求新功能,请与您的 Google 支持团队联系人联系。

点击窗口右上角的帮助 按钮即可转到此页面。

提交 bug

如果您认为自己在 MVD 中发现了缺陷,可以通过点击窗口右上角的“问题” 按钮提交 bug。

发送反馈

如需提交您对 MVD 的看法,或告诉我们如何改进您使用该工具的体验,请填写反馈表单。

您可以从窗口右上角的反馈 按钮或点击以下按钮来启动表单。

向我们发送反馈