JSON 数组与 MQTT 温控接入
本文依据已有操作手册整理为线上操作参考。原文标为预期或未执行的操作,仍须按实际环境验证。
逐项核对本篇指定收发、独立属性、历史和停止恢复;收发后另行检查当前发布同步。
**开始前准备:**具有产品、设备、模型、发布、控制和历史权限;本地应用、单节点FMQ、FMQX网页版可用,本设备连接参数已获取
开始前先了解
本篇使用MQTT与JSON数组,验证温度上报、设定控制、独立状态上报、历史数据和停止恢复。
首次配置图沿用原稿教学,本轮复用保留的产品、设备与会话。连接参数和现有订阅是收发结束后的只读核对,没有重新导入、保存或订阅。
本轮样本在先,当前发布同步补验在后;两段证据分别说明。当前发布后的完整业务复验仍待进行,不能据此宣称这份草稿已全部验收。
FMQX网页版用于演示设备收发与执行回复;实物是否实际动作仍需设备侧确认。
复制模板前先替换这些参数
本篇代码使用普通模板名;截图保留实际历史资源。请先完成以下核对,再保存为UTF-8文件或发送报文。
- JSON数组元素id是属性标识,同一属性始终保持相同;只修改value,不给每条消息更换属性id。
- temperature、setpoint分别是温度与设定温度的模板属性标识;首次生成物模型可沿用,复用已有产品时须替换为该产品真实标识,并同步修改所有报文和initialState键。
- demo-device是设备编号模板。将clientId中的设备编号、每个收发主题中的设备编号和TCP上报的clientId一起替换为平台该设备编号;MQTT身份中的产品号、租户号也须替换为当前设备连接参数。
- 连接文件中的host、port及监听方向须改为当前环境实际地址;127.0.0.1表示运行FMQX的本机。涉及MQTT时同步核对产品号、用户名、订阅主题和responseRoute,密码仅在连接页面安全填写。
- 分组、会话及订阅id是导入文件内部引用;如需改名,groupId必须与对应分组id一致。先核对再导入,不要在保留会话上重复创建同名连接。
- 代码块是按既有无密码资产或原代码改写的客户模板,尚未证明本版模板已成功导入。历史截图、发送时间和业务通过范围仍以各步骤记录为准;不要将模板名当作旧证据中的实际资源名。
一、首次创建与配置示例
已有本篇资源时直接复用,不重复创建。以下八步保留原稿首次配置的截图与边界。
向导用于提取字段的对象样例json
{
"temperature": 20,
"setpoint": 30
}只用于向导生成两个字段;正式设备上报使用下方裸数组。 此处使用可替换的客户模板名;导入或发送前按本节替换清单核对。
1. 首次配置 · 示例:创建数组温控产品
**操作位置:*物联网→设备接入→*接入来源 **操作步骤:**选 新建产品,填写 FastBee_数组温控,进入采集字段。

本图补拍创建入口;没有重复提交创建,后续设备与历史沿用本篇资源。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 接入来源 | 为本篇新建独立产品;复验不重复创建。 必填 · 填写: 新建产品 |
| 产品名称 | 给这类温控设备取简洁业务名。 必填 · 填写: FastBee_数组温控 |
**预期结果(未执行):**历史截图所示:本篇独立产品;复验直接使用产品877,不重复创建。 **风险与恢复:**停止重复指令,核对本设备MQTT参数、正式JSON数组格式、模型标识与订阅,恢复后先上报新状态。
2. 首次配置 · 示例:用JSON对象样例生成字段
**操作位置:*设备接入→采集字段→*从JSON样例生成字段 **操作步骤:**展开样例区域,填写下方对象样例,点击 解析并预览。

补采重现实际对象样例路径,未重复创建产品或设备;正式设备上报改为裸数组。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 向导JSON样例 | 先用对象样例提取两个模型;创建后把数据格式改为JSON数组,正式上报使用裸数组。 必填 · 填写: {"FastBee_temperature":20,"FastBee_setpoint":30} |
**预期结果(未执行):**历史截图所示:补采重现实际对象样例路径,未重复创建产品或设备;正式设备上报改为裸数组。
3. 首次配置 · 示例:核对两个采集字段
**操作位置:*设备接入→*采集字段 **操作步骤:**核对 标识符、整数类型、℃与JSON路径。

两个属性对应FastBee_temperature与FastBee_setpoint;本图为字段表独立补采。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 字段、类型与路径 | 生成温度和设定两个整数属性。 必填 · 填写: FastBee_temperature/FastBee_setpoint;整数;℃ |
**预期结果(未执行):**历史截图所示:两个属性对应FastBee_temperature与FastBee_setpoint;本图为字段表独立补采。
4. 首次配置 · 示例:填写独立设备标识
**操作位置:*设备接入→*添加设备 操作步骤:填写本篇 设备标识 与设备名称,进入接入概况。

设备编号FastBee_ArrayMQTT_Tutorial_01;后续MQTT身份和主题必须对应它。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备标识 | MQTT身份和主题均使用本设备编号。 必填 · 填写: FastBee_ArrayMQTT_Tutorial_01 |
| 设备名称 | 平台和FMQX均使用清晰业务名定位。 必填 · 填写: FastBee_数组温控 |
**预期结果(未执行):**历史截图所示:设备编号FastBee_ArrayMQTT_Tutorial_01;后续MQTT身份和主题必须对应它。
5. 首次配置 · 示例:核对初始接入概况并创建
**操作位置:*设备接入→*接入概况 **操作步骤:**核对 1台设备、2个字段 后完成创建。

此阶段真实显示JSON/MQTT,尚不是正式JSON数组;创建后继续修改格式。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 接入概况 | 向导初始为JSON/MQTT、一台设备、两个字段;下一步改正式格式。 必填 · 填写: 1台、2字段;初始JSON/MQTT |
**预期结果(未执行):**历史截图所示:此阶段真实显示JSON/MQTT,尚不是正式JSON数组;创建后继续修改格式。
6. 首次配置 · 示例:改为正式JSON数组与MQTT
**操作位置:*产品管理→数组温控→*产品信息 操作步骤:****数据格式选择 JSON 数组,传输协议选 MQTT,保存。

正式协议JSON_ARRAY/MQTT;图片有保存后提示和灰背景,数据格式仍可读。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 数据格式 | 本篇正式格式选择JSON数组,不能保留初始JSON对象格式。 必填 · 填写: JSON 数组 |
| 传输协议 | 产品使用MQTT;FMQX导入文件的底层transport填写TCP。 必填 · 填写: MQTT |
| 联网方式 | 保持本篇实际WIFI设置;不是TCP/UDP传输选择。 必填 · 填写: WIFI |
**预期结果(未执行):**历史截图所示:正式协议JSON_ARRAY/MQTT;图片有保存后提示和灰背景,数据格式仍可读。
7. 首次配置 · 示例:补齐可写设定与历史参数
**操作位置:*产品管理→功能定义→*设定温度 操作步骤:英文名称填Setpoint,取消 只读数据,开启 历史存储,点击修改。

设定16~35℃、步长1;本图旧必填提示尚在,表示补齐后待提交,不能当作保存成功图。最终保存由模型记录与下行验证。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 模型翻译 | 填写必填英文名称再点击修改。 必填 · 填写: Temperature/Setpoint |
| 模型标识 | 必须与数组元素id逐字一致;id不是消息编号。 必填 · 填写: FastBee_temperature/FastBee_setpoint |
| 模型类别 | 读数和可写设定都采用属性。 必填 · 填写: 属性 |
| 只读数据 | 温度勾选,设定取消勾选以提供控制入口。 必填 · 填写: 温度勾选;设定不勾选 |
| 历史存储 | 两个属性都开启,记录后续独立状态上报。 必填 · 填写: 勾选 |
| 图表展示/实时监测 | 温度开启,设定关闭;保存后核对只读联动。 必填 · 填写: 温度开启;设定关闭 |
| 分享权限 | 在本租户内演示,不开放分享。 必填 · 填写: 不勾选 |
| 整数范围、单位与步长 | 温度-40~100℃;设定16~35℃;步长1。 必填 · 填写: 温度-40~100;设定16~35;℃;1 |
| 修改/取消 | 补齐必填后修改保存,取消不提交。 必填 · 填写: 修改 |
**预期结果(未执行):**历史截图所示:设定16~35℃、步长1;本图旧必填提示尚在,表示补齐后待提交,不能当作保存成功图。最终保存由模型记录与下行验证。
8. 首次配置 · 示例:保存只读温度与范围
**操作位置:*产品管理→功能定义→*温度 **操作步骤:**填写Temperature,保持只读和历史,设置 -40~100℃、步长1,修改保存。

温度只读、历史开启、图表和实时监测开启;公式留空。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 模型翻译 | 填写必填英文名称再点击修改。 必填 · 填写: Temperature/Setpoint |
| 只读数据 | 温度勾选,设定取消勾选以提供控制入口。 必填 · 填写: 温度勾选;设定不勾选 |
| 历史存储 | 两个属性都开启,记录后续独立状态上报。 必填 · 填写: 勾选 |
| 图表展示/实时监测 | 温度开启,设定关闭;保存后核对只读联动。 必填 · 填写: 温度开启;设定关闭 |
| 分享权限 | 在本租户内演示,不开放分享。 必填 · 填写: 不勾选 |
| 整数范围、单位与步长 | 温度-40~100℃;设定16~35℃;步长1。 必填 · 填写: 温度-40~100;设定16~35;℃;1 |
| 计算公式 | 本例直接使用整数,不进行公式转换。 选填 · 填写: 留空 |
| 修改/取消 | 补齐必填后修改保存,取消不提交。 必填 · 填写: 修改 |
**预期结果(未执行):**历史截图所示:温度只读、历史开启、图表和实时监测开启;公式留空。
二、复用并核对设备会话
**首次导入配置模板(不含密码)**json
{
"schemaVersion": 3,
"groups": [
{
"id": "tutorial_array_mqtt_group",
"name": "数组教程",
"sortOrder": 54,
"isSystem": false
}
],
"sessions": [
{
"id": "array_mqtt_tutorial",
"groupId": "tutorial_array_mqtt_group",
"name": "数组温控",
"protocol": "MQTT",
"transport": "TCP",
"host": "127.0.0.1",
"port": 1883,
"mqttProtocolVersion": "3.1.1",
"clientId": "S&demo-device&877&1",
"username": "admin",
"autoReconnect": false,
"qos": 1,
"subscriptions": [
{
"id": "platform_downlink",
"topic": "/877/demo-device/function/get",
"qos": 1,
"active": true
},
{
"id": "legacy_default",
"topic": "S&demo-device&877&1/function/get",
"qos": 1,
"active": false
}
],
"jsonDevice": {
"format": "JSON_ARRAY",
"responseRoute": "/877/demo-device/property/post",
"initialState": {
"temperature": 29,
"setpoint": 30
}
}
}
]
}本轮未重新导入;密码由授权人员在设备连接参数中获取并安全填写,不写入手册。 此处使用可替换的客户模板名;导入或发送前按本节替换清单核对。
9. 首次配置 · 示例:导入本篇会话
**操作位置:*FMQX网页版→配置文件→*导入配置 **操作步骤:**首次使用时打开导入入口选择配置文件;已有本篇会话时直接复用。

protocol填写MQTT、transport填写TCP;首次导入后安全填写本设备Password并保存。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 导入配置 | 导入下方不含密码的UTF-8 JSON。 必填 · 填写: 数组教程/数组温控 |
**预期结果(未执行):**历史入口图用于说明位置;本次会话参数在下一步单独核对。 **风险与恢复:**停止重复发送,核对本篇设备身份、数据格式和目标地址;恢复连接后先独立上报当前状态,再决定是否重新控制。
10. 核对当前连接参数
**操作位置:*FMQX网页版→本篇会话→*连接配置 **操作步骤:**打开连接配置,核对名称、地址、端口和设备身份。

本篇保留会话的连接参数
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 连接名称 | 识别本篇保留会话。 必填 · 填写: 按实施方案填写 · 示例:FastBee_数组温控 |
| Host / IP | 填写FMQ的MQTT入口,同机使用127.0.0.1。 必填 · 填写: 按实施方案填写 · 示例:127.0.0.1 |
| Port | 本篇普通MQTT TCP监听端口。 必填 · 填写: 按实施方案填写 · 示例:1883 |
| Client ID | 使用本设备固定连接身份,不随机替换。 必填 · 填写: 按实施方案填写 · 示例:S&FastBee_ArrayMQTT_Tutorial_01&877&1 |
| Username | 从同一设备连接参数获取。 必填 · 填写: 按实施方案填写 · 示例:admin(以本设备参数为准) |
| Password | 首次导入后安全填写本设备密码并保存;不写入配置和手册。 必填 · 填写: 按实施方案填写 · 示例:本设备凭据,不回显 |
| MQTT Version | 本篇已验证3.1.1。 必填 · 填写: 按实施方案填写 · 示例:3.1.1 |
| 自动重连 | 关闭,按教程手动停止和恢复。 必填 · 填写: 按实施方案填写 · 示例:false |
| 会话名称 | 按本篇名称定位,避免串用其他会话。 必填 · 填写: FastBee_数组温控 |
| 地址与端口 | 本轮本机FMQ入口,其他环境由管理员提供。 必填 · 填写: 127.0.0.1:1883 |
| 设备身份 | 必须对应本篇产品及设备。 必填 · 填写: S&FastBee_ArrayMQTT_Tutorial_01&877&1 |
11. 核对现有下行订阅
**操作位置:*FMQX网页版→本篇会话→*订阅面板 操作步骤:展开订阅面板,逐条核对现有主题和QoS。

本篇设备下行订阅主题及QoS
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 下行订阅主题 | 正确下行主题启用。 必填 · 填写: 按实施方案填写 · 示例:/877/FastBee_ArrayMQTT_Tutorial_01/function/get |
| 错误默认主题 | 自动默认项保留但active=false;不把两个取消订阅按钮当作启用证明。 必填 · 填写: 按实施方案填写 · 示例:S&FastBee_ArrayMQTT_Tutorial_01&877&1/function/get;active=false |
| QoS | 上报和订阅配置1,实际下行收到的卡片显示0。 必填 · 填写: 按实施方案填写 · 示例:上报1;下行实收0 |
| 平台下行主题 | 平台控制命令发往此主题。 必填 · 填写: /877/FastBee_ArrayMQTT_Tutorial_01/function/get |
| 旧默认主题 | 不把旧默认主题当作本篇平台下行入口。 必填 · 填写: S&FastBee_ArrayMQTT_Tutorial_01&877&1/function/get;停用 |
| 订阅QoS | 按现有列表核对。 必填 · 填写: 1 |
12. 连接本篇设备会话
**操作位置:*FMQX网页版→*本篇会话标题栏 **操作步骤:**点击连接并等待已连接。

恢复本篇独立设备会话
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 会话 | 仅连接本篇保留会话。 必填 · 填写: FastBee_数组温控 |
三、上报61到70十个样本
首条完整报文json
[
{"id":"temperature","value":61},
{"id":"setpoint","value":30}
]随后只依次修改温度61到70,设定保持30;数组元素id保持不变。 此处使用可替换的客户模板名;导入或发送前按本节替换清单核对。
13. 准备第一条61/30样本
**操作位置:*FMQX网页版→本篇会话→*发送内容 **操作步骤:**在发送框填入本节第一条完整报文。

独立属性上报:61、30
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 首条报文 | 完整JSON不得省略顶层结构或设备身份。 必填 · 填写: [ {"id":"FastBee_temperature","value":61}, {"id":"FastBee_setpoint","value":30} ] |
| 上报主题 | 本设备属性和演示回复的上报入口。 必填 · 填写: /877/FastBee_ArrayMQTT_Tutorial_01/property/post |
14. 发送并核对十个温度样本
**操作位置:*FMQX网页版发送内容;平台设备详情→*运行状态 操作步骤:依次发送温度61到70、设定30的十条样本,完成后查看本篇设备当前值。

十个温度61至70上报后的实时值
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 当前值 | 来自设备独立属性上报,不能以待发滑块或回复代替。 必填 · 填写: 按实施方案填写 · 示例:32;最终34 |
| 温度顺序 | 设定保持30;数组元素id固定为对应属性标识,仅按序修改温度value。 必填 · 填写: 61、62、63、64、65、66、67、68、69、70 |
| 样本时间 | 上海时间;复验时记录新窗口。 必填 · 填写: 2026-10-15 23:20:24 ~ 2026-10-15 23:20:48 |
当前值只能显示最后状态;十个样本是否完整还要结合后面的实际历史逐行核对。
四、下发32并独立上报
15. 下发目标32
**操作位置:*平台设备详情→运行状态→*设定 操作步骤:将设定目标调整为32,核对浮层后发送一次。

待下发设定32℃
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 待发目标 | 核对浮层,不把当前值当作待发目标。 必填 · 填写: 32 |
16. 核对32命令真实收到
**操作位置:*FMQX网页版→本篇会话→*接收记录 操作步骤:展开32命令,核对目标值、消息id和报文结构。

设备实收设定32
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 真实接收记录 | 核对正确主题、命令id和params数组中的目标值。 必填 · 填写: 按实施方案填写 · 示例:32/34;143字节 |
| 本次命令id | 后续演示回复必须对应同一id。 必填 · 填写: 80d5d43805034ced803b0e869850b99c |
| 目标值 | 以设备接收报文为准。 必填 · 填写: 32 |
17. 核对32演示回复
**操作位置:*FMQX网页版→本篇会话→*发送记录 **操作步骤:**展开同id演示回复,核对成功码、目标值和执行计数。

同编号应答,设定32,累计执行3次
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 演示自动回复 | 核对同id、code200、data、请求摘要及实际执行计数;每次增量1,不证明实物动作。 必填 · 填写: 按实施方案填写 · 示例:32:2→3;34:3→4 |
| 执行计数 | 使用本轮实际基线,不能把累计值当作本次执行次数。 必填 · 填写: 2 → 3 |
| 命令id | 与实收记录相同。 必填 · 填写: 80d5d43805034ced803b0e869850b99c |
独立29/32属性上报json
[
{"id":"temperature","value":29},
{"id":"setpoint","value":32}
]这是新的属性消息,与下行演示回复分别核对。 此处使用可替换的客户模板名;导入或发送前按本节替换清单核对。
18. 独立上报29/32
**操作位置:*FMQX网页版→本篇会话→*发送内容 **操作步骤:**填入本节独立属性报文并发送一次:温度29、设定32。

独立属性上报:29、32
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 独立属性报文 | 使用JSON数组属性上报结构;数组元素id固定为物模型标识,value填写本次实际状态。 必填 · 填写: [ {"id":"FastBee_temperature","value":29}, {"id":"FastBee_setpoint","value":32} ] |
19. 核对平台当前29/32
**操作位置:*平台设备详情→*运行状态 **操作步骤:**刷新并核对本篇设备温度和设定。

独立状态回报后平台当前32℃
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 当前值 | 来自设备独立属性上报,不能以待发滑块或回复代替。 必填 · 填写: 按实施方案填写 · 示例:32;最终34 |
| 当前状态 | 不是待发送滑块目标。 必填 · 填写: 温度29;设定32 |
本轮执行计数由2增至3;累计值不代表本次多次执行。
五、停止恢复后验证34
20. 停止本轮会话
**操作位置:*FMQX网页版→*本篇会话标题栏 **操作步骤:**停止发送并断开本篇会话。

本篇会话已断开,配置和数据保留
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 资源保留 | 结束只停止发送并断开,保留产品、设备、模型、会话和历史。 必填 · 填写: 按实施方案填写 · 示例:最后29/34;已断开 |
21. 恢复同一设备会话
**操作位置:*FMQX网页版→*本篇保留会话 **操作步骤:**重新连接本篇会话,等待已连接。

恢复本篇原身份连接
恢复后,复用上一节相同的29/32属性报文再独立发送一次,再继续下发34。本轮实际完成了这次状态上报;它不是重新执行32命令,因此历史中会出现第二条32。相同格式沿用前文说明,不新增一张重复内容图。
22. 下发恢复后的目标34
**操作位置:*平台设备详情→运行状态→*设定 操作步骤:将目标调整为34,核对浮层后发送一次。

待下发设定34℃
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 待发目标 | 不要把当前值32写成待发目标。 必填 · 填写: 34 |
23. 核对34命令真实收到
**操作位置:*FMQX网页版→本篇会话→*接收记录 **操作步骤:**展开34命令并核对目标值和同次消息id。

设备实收设定34
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 真实接收记录 | 核对正确主题、命令id和params数组中的目标值。 必填 · 填写: 按实施方案填写 · 示例:32/34;143字节 |
| 本次命令id | 后续演示回复使用同一id。 必填 · 填写: e4f07619486c459fb861b987eaabe316 |
24. 核对34演示回复
**操作位置:*FMQX网页版→本篇会话→*发送记录 **操作步骤:**展开同id演示回复,核对成功码、目标值和执行计数。

同编号应答,设定34,累计执行4次
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 演示自动回复 | 核对同id、code200、data、请求摘要及实际执行计数;每次增量1,不证明实物动作。 必填 · 填写: 按实施方案填写 · 示例:32:2→3;34:3→4 |
| 执行计数 | 使用本轮实际基线,不能把累计值当作本次执行次数。 必填 · 填写: 3 → 4 |
| 命令id | 与实收记录相同。 必填 · 填写: e4f07619486c459fb861b987eaabe316 |
独立29/34属性上报json
[
{"id":"temperature","value":29},
{"id":"setpoint","value":34}
]用新属性消息上报最终状态。 此处使用可替换的客户模板名;导入或发送前按本节替换清单核对。
25. 独立上报29/34
**操作位置:*FMQX网页版→本篇会话→*发送内容 **操作步骤:**填入本节独立属性报文并发送一次:温度29、设定34。

独立属性上报:29、34
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 独立属性报文 | 使用JSON数组属性上报结构;数组元素id固定为物模型标识,value填写本次实际状态。 必填 · 填写: [ {"id":"FastBee_temperature","value":29}, {"id":"FastBee_setpoint","value":34} ] |
26. 核对平台当前29/34
**操作位置:*平台设备详情→*运行状态 **操作步骤:**刷新并核对本篇设备温度和设定。

独立状态回报后平台当前34℃
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 当前值 | 来自设备独立属性上报,不能以待发滑块或回复代替。 必填 · 填写: 按实施方案填写 · 示例:32;最终34 |
| 当前状态 | 不是待发送滑块目标。 必填 · 填写: 温度29;设定34 |
本轮34执行计数由3增至4,本次只增加1。
六、查询并刷新历史数据
温度窗口:2026-10-15 23:20:24 ~ 2026-10-15 23:20:48。设定窗口:2026-10-15 23:20:54 ~ 2026-10-15 23:21:18。以下均为上海时间。
27. 设置温度完整查询时间
**操作位置:*数据中心→历史数据→*日期与起止时间 **操作步骤:**打开日期面板,填写温度完整起止时间并确认。

完整日期与起止时间:2026-10-15 23:20:24至2026-10-15 23:20:48
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 时间范围 | 填写本轮实际完整日期时间:温度2026-10-15 23:20:24 ~ 2026-10-15 23:20:48;设定2026-10-15 23:20:54 ~ 2026-10-15 23:21:18;其他复验须改用该次实际窗口。 必填 · 填写: 按实施方案填写 · 示例:温度2026-10-15 23:20:24 ~ 2026-10-15 23:20:48;设定2026-10-15 23:20:54 ~ 2026-10-15 23:21:18 |
| 完整起止时间 | 再次复验应使用该次实际发送窗口。 必填 · 填写: 2026-10-15 23:20:24 ~ 2026-10-15 23:20:48 |
28. 选择本设备与温度字段
**操作位置:*数据中心→历史数据→*筛选条件 **操作步骤:**选择FastBee_数组温控的温度字段并查询。

核对本篇设备、属性和时间范围后查询
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备与属性 | 选择本篇数组温控和温度或设定温度。 必填 · 填写: 按实施方案填写 · 示例:FastBee_数组温控/温度、设定温度 |
| 设备与字段 | 设备身份与本篇会话一致。 必填 · 填写: FastBee_数组温控;温度 |
29. 刷新温度查询
**操作位置:*数据中心→历史数据→*刷新 **操作步骤:**点击刷新并等待加载完成;若筛选条件被清空,恢复同一设备、字段及完整窗口后重查。

刷新并重新查询本篇历史
30. 核对温度历史结果
**操作位置:*数据中心→历史数据→*结果表格 **操作步骤:**读取刷新后的温度历史结果并逐行核对。

刷新后核对本篇实际历史记录
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备与属性 | 选择本篇数组温控和温度或设定温度。 必填 · 填写: 按实施方案填写 · 示例:FastBee_数组温控/温度、设定温度 |
| 结果顺序 | 以本轮窗口内的实际表格为准。 必填 · 填写: 61、62、63、64、65、66、67、68、69、70 |
31. 设置设定完整查询时间
**操作位置:*数据中心→历史数据→*日期与起止时间 **操作步骤:**打开日期面板,填写设定完整起止时间并确认。

完整日期与起止时间:2026-10-15 23:20:54至2026-10-15 23:21:18
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 时间范围 | 填写本轮实际完整日期时间:温度2026-10-15 23:20:24 ~ 2026-10-15 23:20:48;设定2026-10-15 23:20:54 ~ 2026-10-15 23:21:18;其他复验须改用该次实际窗口。 必填 · 填写: 按实施方案填写 · 示例:温度2026-10-15 23:20:24 ~ 2026-10-15 23:20:48;设定2026-10-15 23:20:54 ~ 2026-10-15 23:21:18 |
| 完整起止时间 | 再次复验应使用该次实际发送窗口。 必填 · 填写: 2026-10-15 23:20:54 ~ 2026-10-15 23:21:18 |
32. 选择本设备与设定字段
**操作位置:*数据中心→历史数据→*筛选条件 **操作步骤:**选择FastBee_数组温控的设定字段并查询。

核对本篇设备、属性和时间范围后查询
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备与属性 | 选择本篇数组温控和温度或设定温度。 必填 · 填写: 按实施方案填写 · 示例:FastBee_数组温控/温度、设定温度 |
| 设备与字段 | 设备身份与本篇会话一致。 必填 · 填写: FastBee_数组温控;设定 |
33. 刷新设定查询
**操作位置:*数据中心→历史数据→*刷新 **操作步骤:**点击刷新并等待加载完成;若筛选条件被清空,恢复同一设备、字段及完整窗口后重查。

刷新并重新查询本篇历史
34. 核对设定历史结果
**操作位置:*数据中心→历史数据→*结果表格 **操作步骤:**读取刷新后的设定历史结果并逐行核对。

刷新后核对本篇实际历史记录
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备与属性 | 选择本篇数组温控和温度或设定温度。 必填 · 填写: 按实施方案填写 · 示例:FastBee_数组温控/温度、设定温度 |
| 结果顺序 | 以本轮窗口内的实际表格为准。 必填 · 填写: 32、32、34 |
设定历史三条依次是首次32控制后的状态、恢复后的32状态、34控制后的状态。三条都是独立属性历史;演示回复不能代替它们。
七、结束并保留本篇资源
35. 结束收发并保留资源
**操作位置:*FMQX网页版→*本篇会话 **操作步骤:**结束发送并断开会话。

本篇会话已断开,配置和数据保留
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 资源保留 | 结束只停止发送并断开,保留产品、设备、模型、会话和历史。 必填 · 填写: 按实施方案填写 · 示例:最后29/34;已断开 |
再次复验记录新的发送时间,数组元素id仍使用固定属性标识,按实际执行次数基线判断每次增量,不重复沿用旧结论。
八、收发后的发布同步补验
以下四步发生在上述收发之后,用于核对当前发布、页面自动更新、节点应用与手动刷新。新快照后的设备收发和历史闭环尚待重新验证。
36. 收发后补验:确认发布产品
**操作位置:*产品管理→本篇产品→*发布确认 **操作步骤:**确认当前产品后点击确定发布。

原截图保留本篇产品名称、ID和完整发布确认框。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 当前产品 | 只操作本篇独立产品。 必填 · 填写: FastBee_数组温控;877 |
37. 观察同步摘要自动更新
**操作位置:*产品详情→产品摘要→*接入配置同步 **操作步骤:**保持当前页面,等待同步摘要更新。

本篇产品接入配置已生效
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 接入配置同步 | 本轮收发后的当前发布回执;不能作为前面十样本的快照来源。 必填 · 填写: 按实施方案填写 · 示例:APPLIED;成功1、失败0;快照1986 |
38. 展开当前节点应用回执
**操作位置:*产品详情→*同步详情 **操作步骤:**打开同步详情,核对本篇产品身份、节点结果和生效时间。

本篇产品与接入节点应用回执
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 接入配置同步 | 本轮收发后的当前发布回执;不能作为前面十样本的快照来源。 必填 · 填写: 按实施方案填写 · 示例:APPLIED;成功1、失败0;快照1986 |
| 当前快照 | 只证明这次发布同步;不把之前收发归入这个快照。 必填 · 填写: 1986 |
39. 手动刷新当前同步状态
**操作位置:*产品详情→同步详情→*刷新状态 操作步骤:点击刷新状态,等待本次检查完成。

手动刷新当前节点应用回执
字段与参数参考
设备接入向导
| 字段 / 控件 | 填写说明 |
|---|---|
| 接入来源 | 为本篇新建独立产品;复验不重复创建。 必填 · 填写: 新建产品已有产品:使用已有型号;使用已有型号。新建产品:创建本篇独立型号;创建本篇独立型号。复制产品:复制现有配置;复制现有配置。使用模板:从模板开始;从模板开始。 |
| 产品名称 | 给这类温控设备取简洁业务名。 必填 · 填写: FastBee_数组温控 |
| 向导JSON样例 | 先用对象样例提取两个模型;创建后把数据格式改为JSON数组,正式上报使用裸数组。 必填 · 填写: {"FastBee_temperature":20,"FastBee_setpoint":30} |
| 字段、类型与路径 | 生成温度和设定两个整数属性。 必填 · 填写: FastBee_temperature/FastBee_setpoint;整数;℃ |
| 设备标识 | MQTT身份和主题均使用本设备编号。 必填 · 填写: FastBee_ArrayMQTT_Tutorial_01 |
| 设备名称 | 平台和FMQX均使用清晰业务名定位。 必填 · 填写: FastBee_数组温控 |
| 接入概况 | 向导初始为JSON/MQTT、一台设备、两个字段;下一步改正式格式。 必填 · 填写: 1台、2字段;初始JSON/MQTT |
协议与发布生效
| 字段 / 控件 | 填写说明 |
|---|---|
| 数据格式 | 本篇正式格式选择JSON数组,不能保留初始JSON对象格式。 必填 · 填写: JSON 数组修改后须发布。Alink JSON:Alink结构,另篇验证;Alink结构,另篇验证。JSON:向导初始对象格式,不是本篇正式格式;向导初始对象格式,不是本篇正式格式。7E:注册与心跳补充场景,本篇不选;注册与心跳补充场景,本篇不选。JSON 数组:本篇已验证的裸数组id/value格式;本篇已验证的裸数组id/value格式。OPC UA:OPC UA连接场景,本篇不选;OPC UA连接场景,本篇不选。IEC 60870-5-104:IEC104行业协议,本篇不选;IEC104行业协议,本篇不选。IEC 60870-5-103:IEC103行业协议,本篇不选;IEC103行业协议,本篇不选。JT808 2013:车辆终端协议,本篇不选;车辆终端协议,本篇不选。DL/T645 1997:1997电表协议,本篇不选;1997电表协议,本篇不选。DL/T645 2007:2007电表协议,本篇不选;2007电表协议,本篇不选。Modbus TCP:TCP寄存器场景,本篇不选;TCP寄存器场景,本篇不选。Modbus RTU:RTU透传场景,本篇不选;RTU透传场景,本篇不选。Modbus TCP over RTU:TCP-over-RTU场景,本篇不选;TCP-over-RTU场景,本篇不选。Modbus JSON HP:其他专用配置,本篇不选;其他专用配置,本篇不选。JSON 网关:网关设备配置,本篇不选;网关设备配置,本篇不选。 |
| 传输协议 | 产品使用MQTT;FMQX导入文件的底层transport填写TCP。 必填 · 填写: MQTT修改后须发布。MQTT:本篇通过MQTT身份和主题收发;本篇通过MQTT身份和主题收发。TCP:独立TCP教程,不用MQTT主题;独立TCP教程,不用MQTT主题。UDP:独立UDP教程,每数据报携带身份;独立UDP教程,每数据报携带身份。 |
| 联网方式 | 保持本篇实际WIFI设置;不是TCP/UDP传输选择。 必填 · 填写: WIFI修改后须发布。WIFI:本篇保存的联网方式;本篇保存的联网方式。蜂窝(2G/3G/4G/5G):按实物蜂窝接入选择,本篇不选;按实物蜂窝接入选择,本篇不选。以太网:按实物有线联网选择,本篇不选;按实物有线联网选择,本篇不选。其他:无法归入现有联网方式时按实际选择,本篇不选;无法归入现有联网方式时按实际选择,本篇不选。NB-IoT:按实物窄带蜂窝接入选择,本篇不选;按实物窄带蜂窝接入选择,本篇不选。 |
| 发布产品 | 修改已发布产品前取消发布;保存后重新发布。 修改后须发布。 |
| 接入配置同步 | 本轮收发后的当前发布回执;不能作为前面十样本的快照来源。 必填 · 填写: APPLIED;成功1、失败0;快照1986修改后须发布。 |
| 刷新状态 | 重新读取当前同步摘要与节点回执,更新检查时间。 修改后须发布。 |
功能定义
| 字段 / 控件 | 填写说明 |
|---|---|
| 模型翻译 | 填写必填英文名称再点击修改。 必填 · 填写: Temperature/Setpoint修改后须发布。 |
| 模型标识 | 必须与数组元素id逐字一致;id不是消息编号。 必填 · 填写: FastBee_temperature/FastBee_setpoint修改后须发布。 |
| 模型类别 | 读数和可写设定都采用属性。 必填 · 填写: 属性修改后须发布。属性:保存读数和设定;保存读数和设定。功能:本篇未采用;本篇未采用。事件:本篇未采用;本篇未采用。 |
| 只读数据 | 温度勾选,设定取消勾选以提供控制入口。 必填 · 填写: 温度勾选;设定不勾选修改后须发布。勾选:只展示上报读数;只展示上报读数。不勾选:允许按权限下发设定;允许按权限下发设定。 |
| 历史存储 | 两个属性都开启,记录后续独立状态上报。 必填 · 填写: 勾选修改后须发布。勾选:保存后续历史;保存后续历史。不勾选:无法按本篇核对后续历史;无法按本篇核对后续历史。 |
| 图表展示/实时监测 | 温度开启,设定关闭;保存后核对只读联动。 必填 · 填写: 温度开启;设定关闭修改后须发布。勾选:温度采用的显示;温度采用的显示。不勾选:设定采用的显示;设定采用的显示。 |
| 分享权限 | 在本租户内演示,不开放分享。 必填 · 填写: 不勾选修改后须发布。勾选:按租户策略决定分享;按租户策略决定分享。不勾选:保持本篇范围;保持本篇范围。 |
| 整数范围、单位与步长 | 温度-40~100℃;设定16~35℃;步长1。 必填 · 填写: 温度-40~100;设定16~35;℃;1修改后须发布。 |
| 计算公式 | 本例直接使用整数,不进行公式转换。 选填 · 填写: 留空修改后须发布。 |
| 修改/取消 | 补齐必填后修改保存,取消不提交。 修改后须发布。 |
FMQX网页版MQTT连接
| 字段 / 控件 | 填写说明 |
|---|---|
| 导入配置 | 导入下方不含密码的UTF-8 JSON。 修改后须重连。 |
| MQTT/TCP连接 | protocol为MQTT,transport为TCP;首次把transport写MQTT会被导入拒绝。 必填 · 填写: protocol=MQTT;transport=TCP修改后须重连。 |
| 连接名称 | 识别本篇保留会话。 必填 · 填写: FastBee_数组温控修改后须重连。 |
| Host / IP | 填写FMQ的MQTT入口,同机使用127.0.0.1。 必填 · 填写: 127.0.0.1修改后须重连。 |
| Port | 本篇普通MQTT TCP监听端口。 必填 · 填写: 1883修改后须重连。 |
| Client ID | 使用本设备固定连接身份,不随机替换。 必填 · 填写: S&FastBee_ArrayMQTT_Tutorial_01&877&1修改后须重连。 |
| Username | 从同一设备连接参数获取。 必填 · 填写: admin(以本设备参数为准)修改后须重连。 |
| Password | 首次导入后安全填写本设备密码并保存;不写入配置和手册。 必填 · 填写: 本设备凭据,不回显修改后须重连。 |
| MQTT Version | 本篇已验证3.1.1。 必填 · 填写: 3.1.1修改后须重连。3.1:本篇未验证;本篇未验证。3.1.1:本篇已验证;本篇已验证。5.0:本篇未验证;本篇未验证。 |
| 自动重连 | 关闭,按教程手动停止和恢复。 必填 · 填写: false修改后须重连。false:手工连接和恢复;手工连接和恢复。true:自动恢复需另行验证;自动恢复需另行验证。 |
| JSON演示设备 | 格式JSON_ARRAY;初始29/30,回复路由为本设备property/post。 必填 · 填写: JSON_ARRAY;温度29、设定30修改后须重连。 |
| 连接/断开 | 确认真实状态再收发;保留会话不删除。 修改后须重连。 |
数组上报、订阅与回复
| 字段 / 控件 | 填写说明 |
|---|---|
| 下行订阅主题 | 正确下行主题启用。 必填 · 填写: /877/FastBee_ArrayMQTT_Tutorial_01/function/get修改后须重连。 |
| 错误默认主题 | 自动默认项保留但active=false;不把两个取消订阅按钮当作启用证明。 必填 · 填写: S&FastBee_ArrayMQTT_Tutorial_01&877&1/function/get;active=false修改后须重连。 |
| 上报与演示回复主题 | 数组属性与演示回复对象均发布到本设备上报主题。 必填 · 填写: /877/FastBee_ArrayMQTT_Tutorial_01/property/post修改后须重连。 |
| QoS | 上报和订阅配置1,实际下行收到的卡片显示0。 必填 · 填写: 上报1;下行实收0修改后须重连。0:本篇实际下行显示值;本篇实际下行显示值。1:本篇上报及订阅配置;本篇上报及订阅配置。2:本篇未验证;本篇未验证。 |
| 数组元素id | 固定物模型标识,不是可随意更换的消息编号。 必填 · 填写: FastBee_temperature/FastBee_setpoint修改后须重连。 |
| 数组元素value | 当前十样本温度61~70、初始设定30;后续独立状态按对应步骤填写。 必填 · 填写: 温度61~70;设定30/32/34修改后须重连。 |
| 发布消息/发送 | 完整UTF-8 JSON,准备后每条发送一次并逐条核对。 修改后须重连。 |
| 真实接收记录 | 核对正确主题、命令id和params数组中的目标值。 必填 · 填写: 32/34;143字节修改后须重连。 |
| 演示自动回复 | 核对同id、code200、data、请求摘要及实际执行计数;每次增量1,不证明实物动作。 必填 · 填写: 32:2→3;34:3→4修改后须重连。 |
设备运行状态
| 字段 / 控件 | 填写说明 |
|---|---|
| 设定滑块/发送 | 在模型16~35℃范围内选择目标后发送。 |
| 当前值 | 来自设备独立属性上报,不能以待发滑块或回复代替。 必填 · 填写: 32;最终34 |
历史数据
| 字段 / 控件 | 填写说明 |
|---|---|
| 设备与属性 | 选择本篇数组温控和温度或设定温度。 必填 · 填写: FastBee_数组温控/温度、设定温度 |
| 时间范围 | 填写本轮实际完整日期时间:温度2026-10-15 23:20:24 ~ 2026-10-15 23:20:48;设定2026-10-15 23:20:54 ~ 2026-10-15 23:21:18;其他复验须改用该次实际窗口。 必填 · 填写: 温度2026-10-15 23:20:24 ~ 2026-10-15 23:20:48;设定2026-10-15 23:20:54 ~ 2026-10-15 23:21:18 |
| 高级筛选/查询/刷新 | 选择字段查询;刷新后重选相同条件,等加载结束。 |
停止与恢复
| 字段 / 控件 | 填写说明 |
|---|---|
| 资源保留 | 结束只停止发送并断开,保留产品、设备、模型、会话和历史。 必填 · 填写: 最后29/34;已断开 |
遇到问题时先查哪里
| 看到什么现象 | 可能原因 | 先检查哪里 | 如何恢复 |
|---|---|---|---|
| 连接失败 | 设备身份、端点或授权参数不匹配 | 先核对本篇会话的名称、地址、端口和平台设备身份 | 修正授权配置后重新连接;本轮未做连接故障注入验证 |
| 平台已提交但设备没有实收 | 下行路由或设备连接不匹配 | 核对本设备function/get订阅、主题和当前连接 | 停止重复控制,先定位路由,再用新命令复验 |
| 回复成功但当前值没有更新 | 演示回复与属性状态是两个不同消息 | 核对独立属性上报及该设备的当前值 | 先独立上报实际状态,不把待发目标当作当前值 |
| 历史条数不符 | 设备、字段或查询时间不对应本轮 | 展开完整日期面板,恢复同一设备与字段后刷新 | 按实际窗口逐行核对;不要用旧数据凑足样本 |
| 同步状态需要再确认 | 当前查看时间早于新回执 | 核对当前产品及快照,点击刷新状态 | 读取失败时稍后重试;本轮浏览器未注入该故障,仅组件测试覆盖恢复路径 |

