Matter 虚拟设备适用于开发和测试 Matter 解决方案,可以使用 Google Home app (GHA) 进行调试,并使用 GHA 和 Google Assistant 进行控制,就像实体 Matter 设备一样。
对于需要测试或模拟虚拟 Matter 设备但缺乏构建自己的实体或虚拟 Matter 设备的资源的应用开发者和其他人员,Google 提供了 Matter Virtual Device (MVD)。MVD 是一款轻量级独立 Linux 桌面工具,可模拟不同类型的虚拟 Matter 设备,并提供图形界面来控制和显示虚拟 Matter 设备的状态。
与实体 Matter 设备不同,MVD 不依赖蓝牙® 低功耗 (BLE) 或 Thread® 即可加入 Matter 结构。而是使用主机 Linux 机器的现有 Wi-Fi 网络连接进行调试。
与其他工具相比
MVD 与 Virtual Device Controller (VDC) 的不同之处在于,它是一个独立的解决方案,将虚拟设备与用于控制它的界面相结合。相比之下,VDC 用于控制单独的虚拟 Matter 设备,如我们在 Matter Virtual Device Development Environment (MVD-DE) 中构建的设备。
您可能已经学过 MVD-DE Codelab。在此 Codelab 中,您将构建一种虚拟设备 - 智能灯泡。相比之下,MVD 包含多种不同的预构建虚拟设备,并包含一个用于运行和控制这些设备的集成界面。
MVD | VDC | MVD-DE (Codelab) | |
---|---|---|---|
模拟 Matter 设备 | |||
控制模拟的 Matter 设备 | |||
所需的开发工作量 | |||
下载 | 小于 100 MB | 9 GB | 20 GB |
支持的设备
目前,MVD 支持以下 Matter 设备类型:
Matter设备类型 | 应用集群 | Home 生态系统类型 |
---|---|---|
色温灯 |
0x0300 0x0008 0x0006 |
灯 |
可调光灯 |
0x0008 0x0006 |
灯 |
扩展色光 |
0x0300 0x0008 0x0006 |
灯 |
在家/外出传感器 |
0x0406 |
传感器 |
开/关灯 |
0x0008 0x0006 |
灯 |
开启/关闭插入式装置 |
0x0008 0x0006 |
插座 |
安装 MVD
MVD 可在运行 Debian(11 或更高版本)或 Ubuntu(20.04 或更高版本)的 64 位 x86 处理器计算机上运行。
如需安装该配套应用,请执行以下操作:
然后运行 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
配置设备
主屏幕在启动时显示,您可以配置虚拟设备:
- Device Type:选择设备类型(例如光源、开关、传感器等)。
- 设备名称:为设备指定一个容易理解的名称。
- 判别器:一个 12 位数字,用于区分多个含佣金设备广告。(默认值:
3840
)。 - Matter 端口:用于进行 Matter 调试和通过 IP 网络进行通信的端口。Matter 默认使用 TCP/UDP 端口 5540,但您可以将虚拟设备配置为使用其他端口,只要没有其他服务在使用该端口。
- 供应商 ID:目前仅支持测试供应商 ID
0xFFF1
。 - 产品 ID:目前仅支持测试产品 ID(从
0x8000
到0x801F
)。
配置防火墙
如果您的计算机正在运行防火墙,请将其关闭或允许 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 组合相同。如需了解详情,请参阅项目创建指南。
您必须拥有搭载 Android 8.1 或更高版本且安装了 GHA 的 Android 手机。
Android 手机必须与 hub 连接到同一个 Wi-Fi 网络。
主机必须连接到 Wi-Fi 网络。
如需使用 GHA 调试设备,请点击QRCode以显示设备的二维码,然后按照配对 Matter 设备(其中说明了如何使用 GHA 对 Matter 设备进行初始配置)中的说明操作。您还可以使用 Google Home Sample App for Matter 调试设备。
请参阅我们的 Matter Primer,了解 Matter 调试的工作原理。
控制设备
调试虚拟设备后,您可以使用 Google Home 应用或 Google 助理通过语音控制该设备。您可以选择以下任一解决办法:
- 通过 GHA 或 Assistant 控制设备,同时监控虚拟设备上的状态变化;或者
- 使用 Sample App for Matter 控制设备,同时监控虚拟设备上的状态更改,或者
- 通过 MVD 本身控制设备状态,同时监控 GHA 或 Assistant 中的状态变化。
使用设备进行测试
如需使用 Assistant 进行测试,我们建议您使用语音模拟器,例如 Google Home Extension for VS Code 或 Google Home Plugin for Android Studio。
查看设备详细信息
设备详细信息屏幕会显示详细的设备信息:
- 名称:为设备指定的易记名称。
- 设备类型:所选的设备类型。
- 判别器:当前的设备判别器。
- 供应商 ID:当前的设备供应商 ID。
- 产品 ID:当前的设备产品 ID。
- RPC 端口:设备与控制器 (GUI) 通信的 RPC 端口。
- Matter 端口:当前设备用于通过 IP 网络进行通信的端口。
- 密码:用于通过网络调试设备的 PIN 码。
- 配置文件夹:虚拟设备存储配置的文件夹。
- 佣金信息:显示设备加入的接口以及设备的节点 ID
查看设备日志
如果您从终端启动了 MVD,日志输出会显示在 stdout
上。您还可以在设备日志标签页中查看设备日志。
停止设备
如需停止和销毁设备,请点击删除。
终止应用
关闭控制窗口会销毁设备并终止 MVD 应用。如果您是从终端启动的,还可以在终端中输入 Ctrl-C 来终止应用。
获取帮助
如需有关 MVD 的帮助、报告 bug 或请求新功能,请与您的 Google 支持联系人联系。
点击窗口右上角的帮助
按钮会转到此页面。提交 bug
如果您认为自己在 MVD 中发现了缺陷,可以点击窗口右上角的“问题” 按钮提交 bug。
发送反馈
如果你想告诉我们你喜欢 MVD 的哪些方面,或我们如何能够改进你使用该工具的体验,请填写我们的反馈表单。
您可以通过窗口右上角的反馈
按钮或点击下面的按钮启动该表单。