Skip to content

设备模拟器 ​

设备模拟器按所选设备的身份、原生模型和模拟行为,通过浏览器连接 MQTT,上报状态、响应动作并发送测试事件,无需等待真实硬件。它与 SDK 使用相同接入协议,经 IoT 平台接入时,上报也进入对应设备链路。使用已获准测试的设备记录;记录没有永久的“模拟设备”或“真实设备”分类。

验证设备数据链路 ​

设备模拟器适合在这些阶段使用:

  • 创建设备智能体后,快速确认命令、属性和事件是否符合预期。
  • 硬件原型还没有准备好,但需要先验证对话控制和状态展示。
  • 接入 SDK 或 MQTT 前,先检查设备规格里的字段、参数和事件设计。
  • 演示或联调时,需要一台能立即上线、能被控制的测试设备。

模拟器不会访问真实传感器或执行器,也不会验证固件、驱动、网络和系统权限。

准备与连接 ​

  1. 完成设备建模,确认状态、动作、事件和模拟行为。
  2. 选择已有测试设备,或通过当前平台提供的入口创建测试记录。
  3. 确认该设备没有其他客户端使用同一 MQTT 身份。
  4. 在状态面板点击 模拟连接,等待在线状态和上报状态出现。

浏览器会用该设备 ID 连接 MQTT,并开始上报初始状态和数据。设备会保留原来的名称和 ID,不会再创建单独的模拟设备记录或 sim- ID。

浏览器需要可以访问的 MQTT WebSocket 地址及有效设备凭证。具体配置见准备 MQTT Broker。当前接入方式没有提供模拟连接时,使用对应平台的测试设备或 SDK 验证。

真实设备在线或设备处于异常状态时,模拟连接不可用。先断开真实客户端,再刷新设备状态。同一标签页中,每个设备智能体仅保留一个模拟会话;同一设备已在其他标签页模拟时,先在那里断开。

状态与行为 ​

模拟器从当前模型与已有有效状态准备初始值。缺失或无效字段使用有效的模型默认值、枚举值,或符合字段类型和约束的取值;这些数值只用于模拟,不代表真实传感器读数。模型变化后,模拟器保留仍兼容的状态,移除已删除字段,并为新增或不兼容字段重新准备初始值。

连接成功后,浏览器模拟会话会持续保持 MQTT 连接,并定期上报当前状态。状态面板中的当前数据会随上报内容更新。

如果设备规格中包含 online 或 connected 字段,浏览器会话在线时会在本地状态中把它们设为 true。断开会话会把设备生命周期标记为离线,但不一定重写最后一次上报的属性快照;这些字段会在下一个客户端上报状态时刷新。

AI 建模会为模型准备浏览器行为模拟,用于描述动作与状态之间的关联。例如设置目标温度后更新目标字段,切换模式后更新模式字段。

连接前,在创建或编辑设备智能体的 模拟行为 预览中核对动作效果,见确认模拟行为。验证时按预览区分:

模拟行为操作后检查
更新状态对应上报字段是否收到声明的参数、固定值或显式枚举映射值
不改状态动作是否返回结果,原有状态是否保持不变
未声明根据当前接入方式查看返回结果;需要模拟状态变化时,先补充设备建模说明并确认生成行为

保持已连接浏览器模拟器的设备处于选中状态,在对话区输入控制指令,例如:

text
把目标温度设置为 24 度,并切换到自动模式。

Agent 按设备能力生成操作,模拟器按当前协议校验并处理。检查对话中的动作和参数,再核对 上报状态 是否符合预览效果。参数或映射结果不符合模型时,操作失败,不应用该状态变化。

动作没有声明模拟行为时,按接入方式处理:

接入方式未声明动作的处理
由 Device Agent 直接管理的设备返回不支持该动作的结果
EMQX Fleets只有每个参数都与可写属性同名且符合其约束时,才更新状态;否则返回不支持
ThingsNeural确认服务请求,不改变上报状态

自定义动作需要在模型和模拟行为中声明准确名称与效果。模拟器不会根据动作名称猜测效果,不模拟随时间变化的物理过程,也不会自动产生阈值事件。

模型变化后,重新确认模拟行为,再验证相关动作。模拟成功验证交互链路,硬件执行仍需设备端验证。

手动上报事件 ​

保持当前设备的浏览器模拟连接在线,再点击 模拟上报:

  1. 选择模型中已定义的事件。
  2. 按事件数据要求填写 Payload,也可以使用自动生成入口准备数据。
  3. 检查字段和类型,点击 上报事件。没有数据字段的事件使用 {}。
  4. 在 最近上报事件 查看事件内容;有对应工作流时,检查其执行历史。

Payload 只使用当前事件声明的字段。事件不会自动写入当前数据。需要改变当前数据时,再通过对话或 MQTT 上报新的状态。真实 SDK 或 MQTT 客户端仍应直接上报自己的事件,不需要使用浏览器入口。

验证自动化 ​

模型和交互验证通过后,可以创建一个简单工作流,用模拟事件验证触发条件和处理动作。再使用定时任务验证到点执行。

事件没有触发工作流时,先检查事件名、条件字段、工作流是否启用以及所选设备范围。模拟器无法验证真实固件、硬件驱动或设备网络,应在切换真实设备后重复关键验证。

断开并切换真实设备 ​

点击 断开 后,模拟会话结束,设备记录仍保留。关闭或刷新页面也会结束当前浏览器会话。

使用 SDK 或真实 MQTT 客户端接入同一设备前,先断开模拟器,再配置并显式启动设备端程序。再次模拟前,也先断开真实客户端,避免共用 MQTT 身份造成相互断开或数据混淆。结束任一连接只会释放设备身份,不会自动启动另一端。

项目浏览器模拟器真实设备
运行位置当前浏览器硬件、网关或业务服务
状态来源模型默认值、已有状态和模拟行为传感器、执行器或平台实际数据
动作处理按当前接入方式的模拟行为执行执行设备端或平台真实逻辑
适合用途PoC、演示、调试设备规格生产接入、真实联调和上线

后续接入见SDK 接入、MQTT 接入或IoT 平台集成。