Matter 虚拟设备对于开发和测试很有用 Matter解决方案,可使用 Google Home app (GHA),使用 GHA 和 Google Assistant,与实体 Matter 一样 设备。
面向应用开发者和需要测试或模拟 Matter 台设备,但缺乏构建自己的设备所需的资源 physical 或 虚拟 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 设备,例如 我们在Matter Virtual Device Development Environment (MVD-DE)中构建了这些 API。
您可能已经学习过 MVD-DE Codelab。在本课中, 您将构建一种类型的虚拟设备 - 智能灯泡。在 相比之下,MVD 包含几个不同的预构建版本 以及用于运行和控制这些设备的集成式界面。
MVD | VDC | MVD-DE(Codelab) | |
---|---|---|---|
模拟 Matter 设备 | |||
控制模拟的 Matter 设备 | |||
所需的开发工作量 | |||
下载 | 小于 100 MB | 9 GB | 20 GB |
支持的设备
MVD 支持以下 Matter 设备类型:
Matter设备类型 | 应用集群 | Home 生态系统类型 |
---|---|---|
基本视频播放器 |
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 的 64 位 x86 处理器计算机上运行 (11 或更高版本)、Ubuntu(20.04 或更高版本)或 macOS。
Linux
然后运行 dpkg
以安装 MVD。
Debian (.deb) 软件包:
sudo dpkg -i mvd_1.4.0_amd64.deb
macOS
然后双击 dmg
文件以打开安装
窗口。
如需完成安装,请选择并将 mvd
图标拖动到 Applications
文件夹:
查看端口使用情况
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
配置设备
主屏幕会在启动时显示,供您配置虚拟设备:
- 设备类型:选择设备类型(例如灯、开关、传感器) 等等)。
- 设备名称:为设备指定一个简单易懂的名称。
- 判别器:用于区分多个
给佣设备广告。(默认:
3840
)。 - Matter 端口:Matter 的端口 调试和通信 IP 网络。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 enable
macOS
如需在 macOS 上配置或停用防火墙,请执行以下操作:
- 打开 Apple 菜单,然后选择系统设置。
- 在边栏列表中点击网络。
- 点击防火墙。
- 将防火墙的开关切换到关闭位置。
运行您的设备
配置设备后,点击创建设备。创建设备后,系统会显示控制器屏幕。根据您的设备类型 则可以看到以下一个或多个控件:
- 开启/关闭:大多数设备通用。
- 级别:例如,您可以在灯具一级使用音量滑块进行调整 亮度。
- 颜色:例如,色灯可拥有此控件。
- 占用:占用传感器提供此控件,用于模拟 显示是否处于“被占用”或“未占用”状态
所有虚拟设备都具有以下控件:
- QRCode:显示用于调试的二维码。
- 重新启动:重启虚拟设备。设备会短暂地断开与网络的连接。
- 重置:将当前设备恢复出厂设置,并清除所有状态,包括调试、当前控制状态等
- 删除:销毁设备并返回创建设备屏幕。
调试设备
设备一经创建即可调试。
如需调试设备,需要满足几个前提条件:
您必须在 Google Home Developer Console 中拥有一个项目。此项目必须 包含具有相同 VID/PID 的 Matter 集成 作为您在设置虚拟设备时使用的密钥请参阅 项目创建指南了解详情。
您必须拥有一部搭载 Android 8.1 或更高版本且 已安装“GHA”。
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 进行测试,我们建议使用语音 模拟器,例如 适用于 VS Code 的 Google Home 扩展程序 或适用于 Android Studio 的 Google Home 插件。
查看设备详细信息
设备详细信息屏幕会显示详细的设备信息:
- 名称:为设备指定的易记名称。
- Device Type:所选的设备类型。
- 判别器:当前设备判别器。
- 供应商 ID:当前的设备供应商 ID。
- 商品 ID:当前设备的商品 ID。
- RPC 端口:设备与控制器 (GUI) 通信的 RPC 端口。
- Matter 端口:当前设备用于连接 通过 IP 网络进行通信
- 密码:用于通过网络调试设备的 PIN 码。
- 配置文件夹:虚拟设备存储的文件夹 配置。
- 佣金信息:显示设备加入的 织物,以及 结构中设备的节点 ID。
查看设备日志
如果您从终端启动 MVD,系统会显示日志输出
日期:stdout
。
您也可以在设备日志标签页中查看设备日志。
停止设备
如需停止并销毁设备,请点击删除。
终止应用
关闭控制窗口会销毁设备并终止 MVD 应用。如果您是从终端启动的,则可以 也可以在终端中输入 Ctrl-C 终止应用。
获取帮助
如需有关 MVD 的帮助、报告 bug 或请求新功能,请与您的 Google 支持联系人联系。
点击“帮助”面板中的“帮助
”按钮 即可转到此页面。提交 bug
如果您认为自己在MVD中发现了缺陷,可以 点击“问题” 以提交错误 窗口右上角的“?”按钮。
发送反馈
提交您对 MVD 的哪些方面或如何评价的看法 我们可以改善您使用该工具的体验,请填写我们的反馈表单。
您可以通过窗口右上角的反馈
按钮或点击下方的按钮启动该表单。