Matter 虚拟设备可用于开发和测试 Matter 解决方案,并且可以使用 Google Home app (GHA) 进行调试,并使用 GHA 和 Google Assistant 进行控制,就像物理 Matter 设备一样。
对于需要测试或模拟虚拟 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 设备类型 | 应用集群 | 首页 生态系统类型 |
|---|---|---|
| 空气净化器 |
0x0202 0x0006 0x0071 |
空气净化器 |
| 空气质量传感器 |
0x005b 0x0402 0x0405 0x040c 0x040d 0x042a 0x042d 0x042e |
传感器 |
| 基本视频播放器 |
0x0006 0x0506 0x0509 |
电视 |
| 色温灯 |
0x0300 0x0008 0x0006 |
Light |
| 接触式传感器 |
0x0045 |
传感器 |
| 可调光灯 |
0x0008 0x0006 |
Light |
| 可调光插接式设备 |
0x0006 0x0008 |
Outlet |
| 洗碗机 |
0x0006 0x0059 0x0056 0x0060 |
洗碗机 |
| 门锁 |
0x0101 |
锁定 |
| 扩展色光 |
0x0300 0x0008 0x0006 |
Light |
| 风扇 |
0x0202 0x0006 |
风扇 |
| 流量传感器 |
0x0404 |
传感器 |
| 通用开关 |
0x003b |
切换 |
| 湿度传感器 |
0x0405 |
传感器 |
| 洗衣机 |
0x0006 0x0051 0x0053 0x0056 0x0060 |
洗衣机 |
| 光传感器 |
0x0400 |
传感器 |
| 在家/外出传感器 |
0x0406 |
传感器 |
| 开灯/关灯 |
0x0008 0x0006 |
Light |
| 开/关灯开关 |
0x0006 |
切换 |
| 开启/关闭插接式单元 |
0x0008 0x0006 |
Outlet |
| 压力传感器 |
0x0403 |
传感器 |
| 泵 |
0x0006 0x0200 0x0402 0x0403 0x0404 |
Pump |
| 扫地机器人 |
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 端口:用于通过 IP 网络进行 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:显示用于调试的二维码。
- 重新启动:重新启动虚拟设备。设备暂时断开了与网络的连接。
- 重置:将当前设备恢复出厂设置并清除所有状态,包括调试、当前控制状态等
- 删除:销毁设备并返回到创建设备界面。
制造商特有的特性
Android Home API 支持制造商专用 (MS) 特征,并提供 Matter 中标准特征以外的其他功能。要测试具有 MS 特性的设备,MVD 允许您与名为 自定义集群 的部分中的特性进行交互(参见上图)。
设置设备
设备在创建后即可进行调试。
启用该设备需要满足以下几个前提条件:
您必须在 Google Home Developer Console 中拥有一个项目。此项目必须包含一个 Matter 集成,该集成的 VID/PID 组合与您在设置虚拟设备时使用的 VID/PID 组合相同。如需了解详情,请参阅项目创建指南。
您必须拥有一部搭载 Android 8.1 或更高版本的 Android 手机,并安装了 GHA。
安卓手机必须与路由器连接到同一个 Wi-Fi 网络。
主机必须连接到 Wi-Fi 网络。
要使用 GHA 调试设备,请点击 QRCode 显示设备的二维码,然后按照 配对 Matter 设备 中的说明进行操作,其中解释了如何使用 GHA 将 Matter 设备加入系统。您也可以使用Google Home Sample App for Matter调试该设备。
请参阅我们的 Matter 启动指南,了解 Matter 调试的工作原理。
控制设备
虚拟设备启用后,您可以使用 Google Home App 或 Google Assistant 通过语音控制该设备。 您可以执行以下任一项操作:
- 通过 GHA 或 Assistant 控制设备,同时监控虚拟设备上的状态变化,或者
- 使用 Sample App for Matter 控制设备,同时监控虚拟设备上的状态变化,或
- 通过 MVD 本身控制设备状态,同时在 GHA 或 Assistant 中监控状态变化。
使用设备进行测试
要使用 Assistant 进行测试,我们建议使用语音模拟器,例如 适用于 VS Code 的 Google Home 扩展程序 或 适用于 Android Studio 的 Google Home 插件。
查看设备详细信息
设备详情界面会显示详细的设备信息:
- 名称:为设备指定的易记名称。
- 设备类型:所选的设备类型。
- 判别器:当前设备判别器。
- 供应商 ID: 当前设备供应商 ID。
- 产品 ID:当前设备产品 ID。
- RPC 端口:设备与控制器 (GUI) 通信所用的 RPC 端口。
- Matter 端口:当前设备通过 IP 网络进行通信时使用的端口。
- 通行码:用于通过网络调试设备的 PIN 码。
- 配置文件夹:虚拟设备存储配置的文件夹。
- 调试信息:显示设备加入的结构以及设备在结构中的节点 ID。
查看设备日志
如果您从终端启动了 MVD,则日志输出将显示在 stdout 上。
您还可以在 设备日志 选项卡上查看设备日志。
停止设备
要停止并销毁设备,请单击 删除。
终止应用程序
关闭控制窗口会销毁设备并终止 MVD 应用程序。如果您是从终端启动的,也可以通过在终端中输入 Ctrl-C 来终止应用程序。
获取帮助
如需获得有关 MVD 的帮助、报告错误或请求新功能,请联系您的 Google 支持联系人。
点击窗口右上角的帮助按钮 ,即可进入此页面。
提交 bug
如果您认为您在 MVD 中发现了缺陷,您可以点击窗口右上角的 Issue 按钮提交错误报告。
发送反馈
要提交您对 MVD 的看法,或者我们如何改进您使用该工具的体验,请填写我们的反馈表。
可以通过窗口右上角的反馈按钮 启动表单,或者点击下面的按钮启动表单。
您还可以通过在使用 MVD 时底部弹出的调查问卷提供反馈。