诉讼或调查虚拟设备

设备 SDK

Matter 虚拟设备对于开发和测试很有用 Matter解决方案,可使用 Google Home app (GHA),使用 GHAGoogle 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 包含几个不同的预构建版本 以及用于运行和控制这些设备的集成式界面。

表格:虚拟 Matter 设备工具对比
MVD VDC MVD-DE(Codelab)
模拟 Matter 设备
控制模拟的 Matter 设备
所需的开发工作量
下载 小于 100 MB 9 GB 20 GB

支持的设备

MVD 支持以下 Matter 设备类型:

表格: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

下载 MVD Debian (.deb) 软件包

下载经过装甲处理的 ASCII 签名 (.asc) 文件

然后运行 dpkg 以安装 MVD。 Debian (.deb) 软件包:

sudo dpkg -i mvd_1.4.0_amd64.deb

macOS

下载 MVD (macOS x86) dmg 文件

下载 MVD (ARM64 M1) dmg 文件

然后双击 dmg 文件以打开安装 窗口。

如需完成安装,请选择并将 mvd 图标拖动到 Applications 文件夹:

macOS 安装

查看端口使用情况

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 0x80000x801F

虚拟设备配置
屏幕

配置防火墙

Linux

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

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

sudo iptables -L -n

如果您使用的是 `ufw`,则可使用以下命令将其停用:

sudo ufw disable

您可以通过以下方式重新启用:

sudo ufw enable

macOS

如需在 macOS 上配置或停用防火墙,请执行以下操作:

  1. 打开 Apple 菜单,然后选择系统设置
  2. 在边栏列表中点击网络
  3. 点击防火墙
  4. 防火墙的开关切换到关闭位置。

运行您的设备

配置设备后,点击创建设备。创建设备后,系统会显示控制器屏幕。根据您的设备类型 则可以看到以下一个或多个控件:

  • 开启/关闭:大多数设备通用。
  • 级别:例如,您可以在灯具一级使用音量滑块进行调整 亮度。
  • 颜色:例如,色灯可拥有此控件。
  • 占用:占用传感器提供此控件,用于模拟 显示是否处于“被占用”或“未占用”状态

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

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

虚拟设备控制
屏幕

调试设备

设备一经创建即可调试。

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

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

  • 您必须拥有支持此功能的 Google Nest Hub 诉讼或调查

  • 您必须拥有一部搭载 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 助理 语音。 您可以选择以下任一解决办法:

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

使用设备进行测试

如需使用 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 的哪些方面或如何评价的看法 我们可以改善您使用该工具的体验,请填写我们的反馈表单。

您可以通过窗口右上角的反馈 按钮或点击下方的按钮启动该表单。

向我们发送反馈