Matter 虚拟设备非常适合开发和测试 Matter 解决方案,并且可以像实体 Matter 设备一样,使用 Google Home app (GHA) 进行调试,并使用 GHA 和 Google Assistant 进行控制。
对于需要测试或模拟虚拟 Matter设备但缺乏资源来构建自己的 实体或 虚拟 Matter设备的应用开发者和其他人员, Google 提供了Matter Virtual Device (MVD)。MVD 是一款 轻量级独立 Linux 或 macOS 桌面工具,可模拟不同 类型的虚拟 Matter 设备,并提供图形 用户界面来控制和显示虚拟 Matter 设备的状态。
与实体 Matter 设备不同,MVD 不依赖于蓝牙®低功耗 (BLE) 或 Thread® 来加入 Matter 结构。相反,它使用主机 Linux 或 macOS 机器的现有 Wi-Fi 网络连接进行调试。
与其他工具的比较
MVD 与 Virtual Device Controller (VDC) 的不同之处在于,它 是一个独立的解决方案,将虚拟设备与用于 控制它的界面相结合。相比之下,VDC 用于 控制单独的虚拟 Matter 设备。
MVD 包含多个不同的预构建 虚拟设备,并包含用于运行和控制这些设备的集成界面。
支持的设备
MVD 支持以下 Matter 设备类型:
| Matter 设备类型 | 应用集群 | Home 生态系统类型 |
|---|---|---|
| 空气净化器 |
0x0202 0x0006 0x0071 |
空气净化器 |
| 空气质量传感器 |
0x005b 0x0402 0x0405 0x040c 0x040d 0x042a 0x042d 0x042e |
传感器 |
| 基本视频播放器 |
0x0006 0x0506 0x0509 |
电视 |
| 色温光线 |
0x0300 0x0008 0x0006 |
光线 |
| 接触传感器 |
0x0045 |
传感器 |
| 可调光灯 |
0x0008 0x0006 |
光线 |
| 可调光插电式设备 |
0x0006 0x0008 |
插座 |
| 洗碗机 |
0x0006 0x0059 0x0056 0x0060 |
洗碗机 |
| 门锁 |
0x0101 |
锁定 |
| 扩展色光 |
0x0300 0x0008 0x0006 |
光线 |
| 风扇 |
0x0202 0x0006 |
风扇 |
| 流量传感器 |
0x0404 |
传感器 |
| 通用开关 |
0x003b |
开关 |
| 湿度传感器 |
0x0405 |
传感器 |
| 洗衣机 |
0x0006 0x0051 0x0053 0x0056 0x0060 |
洗衣机 |
| 光传感器 |
0x0400 |
传感器 |
| 在家/外出传感器 |
0x0406 |
传感器 |
| 开/关灯 |
0x0008 0x0006 |
光线 |
| 开/关灯开关 |
0x0006 |
开关 |
| 开/关插电式设备 |
0x0008 0x0006 |
插座 |
| 压力传感器 |
0x0403 |
传感器 |
| 泵 |
0x0006 0x0200 0x0402 0x0403 0x0404 |
泵 |
| 扫地机器人 |
0x0054 0x0055 0x0061 |
吸尘器 |
| 室内空调 |
0x0006 0x0201 0x0202 |
空调 |
| 烟雾和一氧化碳警报器 |
0x005C |
一氧化碳检测器
烟雾检测器 |
| 温度传感器 |
0x0402 |
传感器 |
| 温控器 |
0x0201 |
温控器 |
| 窗帘 |
0x0102 |
百叶窗 |
安装 MVD
MVD 可在运行 Debian
(13 Trixie 或更高版本)、Ubuntu(20.04 Noble Numbat 或更高版本)或 macOS 的 64 位 x86 处理器机器上运行。
Linux
然后运行 dpkg 以安装 MVD
Debian (.deb) 软件包:
sudo dpkg -i mvd_1.7.0_amd64.debmacOS
然后双击 dmg 文件以打开安装
窗口。
如需完成安装,请选择 mvd 图标并将其拖动到
Applications 文件夹:
检查端口使用情况
MVD 中的控制器模块使用 TCP 端口 33000 向虚拟设备发出 RPC 调用,因此,如果您的计算机上的另一个 进程已在使用此端口,请务必释放该端口。
如需查看是否有任何进程正在使用端口 33000,请执行以下操作:
Linux
sudo fuser -v 33000/tcpmacOS
lsof -i:33000您可以使用单个命令终止任何使用 TCP 端口 33000 的进程:
Linux
sudo fuser -k 33000/tcpmacOS
lsof -ti:33000 | xargs kill运行 MVD
Linux
在 Linux 上,您可以从应用文件夹或从 终端运行 MVD:
mvdmacOS
在 macOS 上,您可以使用 Launchpad 打开 MVD,也可以从终端运行 MVD:
cd /Applicationsopen mvd.app
配置设备
启动后,系统会显示主屏幕,您可以在其中配置虚拟设备:
- 设备类型:选择设备类型(例如灯、开关、传感器 等)。
- 设备名称:为设备指定一个用户友好的名称。
- 判别器:一个 12 位数字,用于区分多个
可调试的设备广告。(默认值:
3840)。 - Matter 端口:用于通过 Matter 调试和通信的端口。Matter 默认使用 TCP/UDP 端口 5540,但 您可以将虚拟设备配置为使用其他 端口,前提是其他服务未使用该端口。
- 供应商 ID:仅支持测试供应商 ID
0xFFF1。 - 商品 ID:仅支持测试商品 ID
0x8000到0x801F支持。
配置防火墙
Linux
如果您的计算机中运行了防火墙,请将其关闭,或允许 在 Matter 端口上建立传入 TCP/UDP 连接。
如需查看当前活跃的 netfilter 防火墙规则,请运行:
sudo iptables -L -n如果您使用的是 `ufw`,则可以使用以下命令将其停用:
sudo ufw disable您可以使用以下命令重新启用它:
sudo ufw enablemacOS
如需在 macOS 上配置或停用防火墙,请执行以下操作:
- 前往 Apple 菜单,然后选择系统设置 。
- 在边栏列表点击网络 。
- 点击防火墙 。
- 将防火墙 的开关切换到关闭 位置。
运行设备
配置设备后,点击创建设备 。创建设备后,系统会显示控制器 屏幕。根据您选择的设备类型,您可能会看到以下一个或多个控件:
- 开/关:大多数设备都有此控件。
- 级别:例如,灯可能有一个级别滑块来调节亮度。
- 颜色:例如,彩色灯可能有此控件。
- 在家/外出:在家/外出传感器提供此控件,用于模拟 在家或外出状态。
所有虚拟设备都有以下控件:
- QRCode:显示用于调试的二维码。
- 重启:重启虚拟设备。设备会暂时断开与网络的连接。
- 重置:将当前设备恢复出厂设置,并清除所有状态,包括调试、当前控件状态等
- 删除 :销毁设备并返回到创建设备 屏幕。
特定于制造商的特征
特定于制造商 (MS) 的特征 由 Android 版 Home API 支持,并提供 Matter 标准特征之外的其他功能 Matter。如需测试具有 MS 特征的设备 ,MVD MVD 可让您与 名为 自定义集群 的部分中的特征进行互动(请参见上图)。
调试设备
设备创建后即可调试。
调试设备需要满足以下几个前提条件:
您必须在 Google Home Developer Console 中拥有一个项目。此项目必须 包含一个 Matter 集成,该集成具有与您在设置虚拟设备时使用的 VID/PID 组合相同的 VID/PID 组合。如需了解详情,请参阅 项目创建指南。
您必须拥有支持 Matter 的 Google Nest Hub
您必须拥有运行 Android 8.1 或更高版本的 Android 手机,并且安装了 GHA。
Android 手机必须与 hub 连接到同一 Wi-Fi 网络。
宿主机必须连接到 Wi-Fi 网络。
如需使用 GHA 调试设备,请点击 QRCode 以显示设备的二维码,然后按照 配对 Matter 设备 中的说明操作,其中介绍了如何使用 GHA 调试 Matter 设备。您还可以使用 Google Home Sample App for Matter调试设备。
如需了解 Matter 调试的工作原理,请参阅我们的 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 的喜爱之处或如何 改进工具使用体验的想法,请填写我们的反馈表单。
您可以点击窗口右上角的反馈 按钮或点击下面的按钮来启动表单。
您还可以在使用时通过底部弹出的问卷提供反馈。MVD