JSON 与 UDP 无线温控接入
本文依据已有操作手册整理为线上操作参考。原文标为预期或未执行的操作,仍须按实际环境验证。本篇为补充参考,存在适用限制,原手册中的缺项状态继续保留。
每条数据报带身份上报、下行返回、状态重新上报、历史与停止恢复。
**开始前准备:**具备产品、设备、物模型、发布、控制和历史权限;本地应用、单节点FMQ及FMQX网页版可用,UDP参数与设备编号已确认
开始前先了解
本篇使用一台无线温控设备,完成JSON/UDP上报、平台设定下发、设备回复、独立状态重新上报、历史刷新以及停止后的恢复。适合能够向指定UDP入口发送完整JSON数据报并在源端口接收返回指令的设备。
蜂信物联(FastBee)负责产品、设备、控制和历史;FMQ是设备接入服务;FMQX网页版在本文扮演演示设备。FMQX的JSON演示状态机接受设定并自动回复,随后状态由操作员在发送框人工重新上报,不代表真实物理温控器动作或自动持续采样。
账号需具备产品、设备、物模型编辑、发布、控制和历史查询权限。准备设备编号、两个字段定义、UDP接入地址端口及允许的设定范围;使用独立产品和会话。
功能关系示意
方向说明;不是运行截图。
先分清UDP两端地址
本例FMQ监听UDP 8889;FMQX本地监听0.0.0.0:15021并向127.0.0.1:8889发送。0.0.0.0表示本机网卡监听范围,不能当作远端目标;127.0.0.1只适用于设备工具与FMQ在同一台电脑。跨机器时用管理员提供的可达接入地址。
每个UDP数据报独立承载完整JSON,每条顶层clientId等于平台设备编号,id对每次新消息保持唯一。UDP不按TCP字节流处理,不需要本文之外的TCP注册帧、分片拼包或粘包处理。网络可能丢包或乱序,应以平台实际值及历史核对结果。
接入服务使用最近一次含身份数据报的源IP和源端口作为下行返回地址。断开、重启或网络地址变化后先发新身份数据报,再下发指令;FMQX显示已连接仅说明本地收发已准备好。
一、创建产品、字段与设备
1. 从新建产品开始
**操作位置:*物联网→设备接入→*从哪里开始 操作步骤:选择 新建产品,填写产品名称 FastBee_无线温控。已有本篇资源复验时直接复用。

使用独立产品与设备,便于保留数据和隔离本篇操作。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 接入来源 | 为本篇创建独立型号;已有资源复验时直接复用。 必填 · 填写: 新建产品 |
| 产品名称 | 给这类无线温控设备取清晰业务名。 必填 · 填写: FastBee_无线温控 |
2. 用JSON样例生成字段草稿
**操作位置:*设备接入向导→*产品与协议 **操作步骤:**粘贴下方完整 JSON样例,继续预览字段。

样例只用于提取两个属性;设备实际上报时还须带方法、设备身份和独立消息编号。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| JSON样例 | 从设备实际报文取两个属性;向导先提取字段草稿。 必填 · 填写: {"FastBee_temperature":20,"FastBee_setpoint":30} |
向导用于生成字段的JSON样例json
{
"FastBee_temperature": 20,
"FastBee_setpoint": 30
}此样例只提取属性;实际UDP上报使用后面的完整数据报。
3. 核对两个属性及JSON路径
**操作位置:*设备接入向导→*采集字段 操作步骤:核对 温度 和 设定温度 为整数,路径对应各自字段。

此阶段单位尚未补齐;后续功能定义设置摄氏度、读写和历史。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 字段与JSON路径 | 两属性分别对应温度和设定温度,标识须与params中的键一致。 必填 · 填写: $.FastBee_temperature;$.FastBee_setpoint |
| 数据类型 | 本篇两字段均为整数;单位与读写在功能定义补齐。 必填 · 填写: 整数 |
4. 填写独立设备编号
**操作位置:*设备接入向导→*添加设备 操作步骤:填写设备名称与 设备标识,编号为 FastBee_UDP_Tutorial_01。

此编号需要逐字写入每条UDP数据报的clientId,不是FMQX临时会话编号。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备标识 | 每个UDP报文clientId与此编号完全一致,区分大小写。 必填 · 填写: FastBee_UDP_Tutorial_01 |
| 设备名称 | 在列表定位当前演示设备。 必填 · 填写: FastBee_无线温控 |
5. 核对基础产品与设备
**操作位置:*设备接入向导→*接入确认 **操作步骤:**核对本篇产品、1台设备 和 2个采集字段 后完成基础创建。

图中向导概况仍为初始JSON/MQTT,下一步改为JSON/UDP;本图不表示UDP已经生效。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 接入概况 | 本截图为向导初始JSON/MQTT概况;下一节改为JSON/UDP。 必填 · 填写: 1台设备,2个采集字段 |
| 设备标识 | 每个UDP报文clientId与此编号完全一致,区分大小写。 必填 · 填写: FastBee_UDP_Tutorial_01 |
二、改为JSON与UDP并配置属性
6. 将产品明确改为JSON与UDP
**操作位置:*产品管理→无线温控→*协议设置 操作步骤:将接入协议设为 UDP,数据格式JSON,传输方式 UDP,保存。

本篇最终为JSON/UDP、WIFI、授权码关闭;不要沿用向导初始MQTT传输。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 接入协议 | 本篇最终选择UDP。 必填 · 填写: UDP |
| 数据格式 | 本篇使用普通JSON对象,不使用JSON Array或Alink。 必填 · 填写: JSON |
| 传输方式 | 最终必须为UDP,不能沿用向导的MQTT。 必填 · 填写: UDP |
| 联网方式 | 本篇业务设备以WIFI标识联网方式。 必填 · 填写: WIFI |
| 授权码 | 本篇演示关闭;不要把其他产品的授权信息复制过来。 必填 · 填写: 关闭 |
7. 把设定温度配置为可写并保留历史
**操作位置:*产品管理→无线温控→功能定义→*设定温度 **操作步骤:**取消 只读数据,开启 历史存储,设置整数范围 16~35 和摄氏度后保存。

设定温度可写、历史开启、图表展示与实时监测关闭、步长1;保存后重新打开核对。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 模型翻译 | 填写清晰英文名称,完成必填项再保存。 必填 · 填写: Temperature/Setpoint |
| 模型标识 | 上报属性键与模型标识逐字相同。 必填 · 填写: FastBee_temperature/FastBee_setpoint |
| 模型类别 | 读数和可写设定均采用属性。 必填 · 填写: 属性 |
| 只读数据 | 温度只读;设定温度取消只读以提供控制入口。 必填 · 填写: 温度勾选,设定不勾选 |
| 历史存储 | 两个字段都开启,后续上报才可查询历史。 必填 · 填写: 勾选 |
| 图表展示/实时监测 | 温度开启,设定关闭;修改展示开关后重新核对只读状态。 必填 · 填写: 温度开启,设定关闭 |
| 分享权限 | 按租户权限使用,本篇不开放分享。 必填 · 填写: 不勾选 |
| 整数范围与步长 | 温度-40~100,设定16~35,步长均为1。 必填 · 填写: 温度-40~100;设定16~35;步长1 |
| 单位 | 两属性使用摄氏度。 必填 · 填写: ℃ |
8. 把温度配置为只读并保留历史
**操作位置:*产品管理→无线温控→功能定义→*温度 **操作步骤:**保持 只读数据,开启历史存储,设置整数范围 -40~100 和单位 ℃。

温度只读、图表展示与实时监测开启、历史开启、步长1。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 模型标识 | 上报属性键与模型标识逐字相同。 必填 · 填写: FastBee_temperature/FastBee_setpoint |
| 只读数据 | 温度只读;设定温度取消只读以提供控制入口。 必填 · 填写: 温度勾选,设定不勾选 |
| 历史存储 | 两个字段都开启,后续上报才可查询历史。 必填 · 填写: 勾选 |
| 图表展示/实时监测 | 温度开启,设定关闭;修改展示开关后重新核对只读状态。 必填 · 填写: 温度开启,设定关闭 |
| 整数范围与步长 | 温度-40~100,设定16~35,步长均为1。 必填 · 填写: 温度-40~100;设定16~35;步长1 |
| 单位 | 两属性使用摄氏度。 必填 · 填写: ℃ |
9. 重新打开对应设备核对身份
**操作位置:*设备管理→无线温控→*编辑 **操作步骤:**打开本篇设备,先核对 设备名称,再检查所属产品与设备编号。
产品传输由MQTT改为UDP后,必须确认正在处理同一台设备;本图显示实际设备名称。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备名称与所属产品 | 打开本篇设备,确认名称及编号,避免重存其他设备。 必填 · 填写: FastBee_无线温控 |
| 设备标识 | 每个UDP报文clientId与此编号完全一致,区分大小写。 必填 · 填写: FastBee_UDP_Tutorial_01 |
10. 重新保存设备并确认成功
**操作位置:*设备管理→无线温控→*编辑 **操作步骤:**完成检查后点击 修改,看到 修改成功 再关闭提示。

本篇观察到设备重新保存后UDP下行恢复;仍需发布生效、身份数据报及设备实收验证。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 修改/保存 | 产品由MQTT改为UDP后,重新保存对应设备并确认修改成功。 必填 · 填写: 修改成功 |
11. 确认发布已保存的配置
**操作位置:*产品管理→无线温控→*发布更新 **操作步骤:**确认草稿参数已保存,点击 发布更新,在提示框点击 确定。

发布提示成功后继续查看接入节点回执,不能单凭提示判断设备已经接入。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 发布产品 | 保存配置后发布,编辑已发布产品时先取消发布。 必填 · 填写: 确认发布 |
12. 发布后确认接入配置实际生效
**操作位置:*产品管理→无线温控→*接入配置同步 **操作步骤:**发布已保存配置,展开同步结果,确认 APPLIED 且 失败原因 为空。

同一产品配置补采发布后,当前接入节点APPLIED,失败0;原验收上下行及历史证据另行保留。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 接入配置同步结果 | 确认接入节点已应用本次配置;不能只看保存成功。 必填 · 填写: APPLIED,失败0 |
| 发布产品 | 保存配置后发布,编辑已发布产品时先取消发布。 必填 · 填写: 确认发布 |
温度是只读整数,范围-40~100℃;设定温度是可写整数,范围16~35℃,步长1;两者都开启历史存储。修改完成先保存,已发布产品需先取消发布才能编辑,然后重新发布并确认接入配置同步为APPLIED。
本篇实测先在向导创建基础JSON字段,再把产品传输改为UDP。首次下行曾仍走旧传输,重新保存对应设备后UDP实收成功;因此按本节重新保存设备,再发布、核对生效与设备实收。重存是已观察到的恢复操作,不能代替实际验证。
本次发布已在接入节点应用,失败数0。同步结果和后面的真实上报、设备实收共同验证接入,不能只看保存或发布提示。
三、配置FMQX网页版
在FMQX网页版导入下方UTF-8 JSON到UDP教程分组;已有本篇会话复验时直接复用,避免同名会话。自动重连关闭,广播关闭。导入菜单动作截图待补,下面采用真实连接配置图。
FMQX网页版完整UDP配置json
{
"schemaVersion": 3,
"groups": [
{
"id": "FastBee_tutorial_udp_group",
"name": "FastBee_UDP教程",
"sortOrder": 52,
"isSystem": false
}
],
"sessions": [
{
"id": "FastBee_tutorial_udp_01",
"groupId": "FastBee_tutorial_udp_group",
"name": "FastBee_无线温控",
"protocol": "UDP",
"transport": "UDP",
"host": "127.0.0.1",
"port": 8889,
"udpLocalPort": 15021,
"udpTargetAddress": "127.0.0.1",
"udpTargetPort": 8889,
"clientId": "FastBee_UDP_Tutorial_01",
"autoReconnect": false,
"jsonDevice": {
"format": "JSON",
"responseRoute": "",
"initialState": {
"FastBee_temperature": 29,
"FastBee_setpoint": 30
}
}
}
]
}另存为UTF-8 JSON后导入;实际会话由FMQX创建,导入配置标识不是运行会话编号。
13. 打开FMQX导入菜单
**操作位置:*FMQX网页版→*更多操作 **操作步骤:**点击 更多操作,选择 导入配置,导入本篇连接配置。

从真实菜单导入本篇UDP会话;已有会话复验时直接复用,不重复导入。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 导入配置 | 在FMQX网页版导入本篇UTF-8配置到UDP教程分组。 必填 · 填写: 无线温控UDP会话 |
14. 在FMQX核对UDP两端地址
**操作位置:*FMQX网页版→UDP教程→无线温控→*连接配置 操作步骤:导入下方配置,核对本地端口 15021、远端地址127.0.0.1和远端端口 8889。

本地监听0.0.0.0:15021,远端目标127.0.0.1:8889,广播关闭、超时5000毫秒;只在同机演示使用127.0.0.1。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 连接名称 | 识别本篇保留会话。 必填 · 填写: FastBee_无线温控 |
| 本地监听地址 | FMQX所在机器接收返回数据报的网卡地址。 必填 · 填写: 0.0.0.0 |
| 本地端口 | 设备工具接收下行的UDP源端口;本机须未被占用。 必填 · 填写: 15021 |
| 远端目标地址 | 填写FMQ UDP入口的可达地址。只有同机演示可用127.0.0.1。 必填 · 填写: 127.0.0.1 |
| 远端目标端口 | 与FMQ UDP监听端口一致。 必填 · 填写: 8889 |
| 启用广播 | 本篇点对点目标,不开启广播。 必填 · 填写: 关闭 |
| 连接超时 | 界面单位毫秒;不是UDP交付保证。 必填 · 填写: 5000毫秒 |
| 导入配置 | 在FMQX网页版导入本篇UTF-8配置到UDP教程分组。 必填 · 填写: 无线温控UDP会话 |
| 测试连接 | 可检查配置准备情况,仍须实际上报验证业务。 必填 · 填写: 测试连接 |
| 保存配置 | 保存后复用本篇会话,配置变化后再恢复收发。 必填 · 填写: 保存配置 |
15. 启动本地UDP收发
**操作位置:*FMQX网页版→UDP教程→*无线温控 **操作步骤:**点击 连接,确认会话显示 已连接。

UDP已连接仅表示本地收发准备好,不保证远端可达或每条报文送达;下一步以真实上报验证。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 连接/断开 | UDP连接表示本地收发端口已准备好;不表示远端可靠连接或业务通过。 必填 · 填写: 连接后先发身份数据报 |
四、上报十个可区分样本
第一个完整UDP上报json
{
"id": "FastBee_UDP_Tutorial_sample_01",
"version": "1.0",
"method": "thing.event.property.post",
"clientId": "FastBee_UDP_Tutorial_01",
"params": {
"FastBee_temperature": 20,
"FastBee_setpoint": 30
}
}逐次把温度改为20~29,消息编号依次01~10;再次验收要使用一组全新编号。
16. 发送第一条含身份数据报
**操作位置:*FMQX网页版→*发送内容 **操作步骤:**在发送框填入下方样本报文,核对 clientId,点击 发送。

一整个JSON作为一个UDP数据报;每条都带设备编号,不能把身份只放在第一条。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 数据报设备身份 | 每条数据报顶层clientId等于平台设备标识。 必填 · 填写: FastBee_UDP_Tutorial_01 |
| 数据报消息编号 | 每次上报使用独立id;复验换新序号,避免重放已处理编号。 必填 · 填写: 为每条新消息分配新编号 |
| 发送内容/发送 | 用文本格式发送一整个JSON数据报,可点击发送或Ctrl+Enter。 必填 · 填写: 完整JSON;每条含clientId |
17. 依次发送十个可区分样本
**操作位置:*FMQX网页版→*发送记录 **操作步骤:**保持设定30,将温度依次改为 20~29,每次分配新的 消息编号 后发送。

发送记录显示十条不同数据;随后在平台和历史核对每一个值,不以工具发送计数替代接收结果。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 数据报消息编号 | 每次上报使用独立id;复验换新序号,避免重放已处理编号。 必填 · 填写: 为每条新消息分配新编号 |
| 发送内容/发送 | 用文本格式发送一整个JSON数据报,可点击发送或Ctrl+Enter。 必填 · 填写: 完整JSON;每条含clientId |
18. 核对平台最新属性
**操作位置:*设备管理→无线温控→*运行状态 **操作步骤:**刷新详情,核对温度 29、设定温度 30 及更新时间。

十样本上报后的实际最新温度29、设定30;后续控制不能把滑块待发值当作当前值。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 平台当前值 | 当前值来自属性重新上报;不能用待发滑块值或已派发提示替代。 必填 · 填写: 温度29,设定34 |
十样本的设定温度固定30,温度依次20~29。每条都发一个完整JSON;发送后等平台看到本条,再继续下一条。不要用同一个id承载新值,也不要用工具发送条数代替平台接收。
五、下发设定并独立回报状态
19. 准备32℃目标并发送
**操作位置:*设备管理→无线温控→*运行状态 **操作步骤:**将设定滑块调到 32,核对滑块提示后点击 指令发送。

滑块32是待下发目标,旁边当前值仍来自设备上报;两者可以不同。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设定温度滑块与纸飞机 | 将滑块调到允许目标,核对提示值后点击纸飞机,勿连续重发。 必填 · 填写: 首次32;恢复后34 |
20. 确认设备收到设定32的指令
**操作位置:*平台运行状态/FMQX网页版→*接收记录 **操作步骤:**平台把设定滑块调到32并发送后,在FMQX 接收记录 核对属性设定 32。

设备侧真实收到128字节的设定指令;本图为原验收指令的真实接收;上一准备图为本设备复验补拍。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设定温度滑块与纸飞机 | 将滑块调到允许目标,核对提示值后点击纸飞机,勿连续重发。 必填 · 填写: 首次32;恢复后34 |
| 接收记录 | 检查真实收到的指令内容、设定值及时间。 必填 · 填写: 32;恢复后34 |
21. 核对FMQX演示执行与自动回复
**操作位置:*FMQX网页版→*发送记录 **操作步骤:**查看演示状态机自动回复,核对 设定32、成功结果和 执行次数1。

FMQX jsonDevice演示接受设定并回复;平台顶层执行确认仍为false,不能只凭派发或回复证明物理动作。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 演示状态机回复 | FMQX jsonDevice接受设定并自动回复,随后人工独立再上报属性状态。 必填 · 填写: 执行次数1/2,结果32/34 |
设定32后的独立状态上报json
{
"id": "FastBee_UDP_Tutorial_after32",
"version": "1.0",
"method": "thing.event.property.post",
"clientId": "FastBee_UDP_Tutorial_01",
"params": {
"FastBee_temperature": 29,
"FastBee_setpoint": 32
}
}FMQX自动回复之后,由操作员在GUI发送此属性状态;每次复验换新编号。
22. 人工独立上报设定32后的状态
**操作位置:*FMQX网页版→*发送内容 **操作步骤:**按下方状态报文填写温度29、设定 32,换独立消息编号后点击 发送。

这是操作员在GUI独立重新上报属性,区别于上一条自动回复;并非设备自动持续遥测。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 数据报设备身份 | 每条数据报顶层clientId等于平台设备标识。 必填 · 填写: FastBee_UDP_Tutorial_01 |
| 数据报消息编号 | 每次上报使用独立id;复验换新序号,避免重放已处理编号。 必填 · 填写: 为每条新消息分配新编号 |
| 发送内容/发送 | 用文本格式发送一整个JSON数据报,可点击发送或Ctrl+Enter。 必填 · 填写: 完整JSON;每条含clientId |
23. 确认重新上报后的平台值32
**操作位置:*设备管理→无线温控→*运行状态 **操作步骤:**刷新详情,核对 当前值 为 32。

设定32来自独立属性状态上报;设备回复、当前值和历史要分别核对。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 平台当前值 | 当前值来自属性重新上报;不能用待发滑块值或已派发提示替代。 必填 · 填写: 温度29,设定34 |
依次区分平台派发、设备实收、FMQX演示自动回复和独立属性状态上报。当前值32来自后一条属性报文;平台仍不把自动回复单独当作完整执行确认。控制前调到32的准备图待补,设备真实收到32已有本节独立截图。
六、停止后恢复并接收新指令
24. 停止UDP收发并保留会话
**操作位置:*FMQX网页版→UDP教程→*无线温控 **操作步骤:**点击 断开,确认 已断开,停止本轮发送。

保留产品、设备、模型、会话与历史;本次只停止连接,不删除任何业务资源。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 保留与再次验收 | 结束断开FMQX,保留产品、设备、模型、会话及历史。 必填 · 填写: 已断开;保留最后29/34 |
| 连接/断开 | UDP连接表示本地收发端口已准备好;不表示远端可靠连接或业务通过。 必填 · 填写: 连接后先发身份数据报 |
25. 恢复原UDP会话
**操作位置:*FMQX网页版→UDP教程→*无线温控 **操作步骤:**复用保留会话,点击 连接,确认 已连接。

恢复相同本地端口与远端目标;恢复完成后先发送含身份数据报再下发新设定。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 本地端口 | 设备工具接收下行的UDP源端口;本机须未被占用。 必填 · 填写: 15021 |
| 远端目标端口 | 与FMQ UDP监听端口一致。 必填 · 填写: 8889 |
| 连接/断开 | UDP连接表示本地收发端口已准备好;不表示远端可靠连接或业务通过。 必填 · 填写: 连接后先发身份数据报 |
恢复后先发送的新身份数据报json
{
"id": "FastBee_UDP_Tutorial_resume",
"version": "1.0",
"method": "thing.event.property.post",
"clientId": "FastBee_UDP_Tutorial_01",
"params": {
"FastBee_temperature": 29,
"FastBee_setpoint": 32
}
}先登记本次实际源IP和端口,然后才下发34;复验时更换消息编号。
26. 恢复后先发送含身份的数据报
**操作位置:*FMQX网页版→*发送内容 **操作步骤:**发送下方恢复报文,保持温度29、设定32,并携带 clientId 和新 消息编号。

这条报文让接入服务重新登记当前源IP与源端口,下行返回此地址;UDP没有TCP注册帧和连接握手。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 数据报设备身份 | 每条数据报顶层clientId等于平台设备标识。 必填 · 填写: FastBee_UDP_Tutorial_01 |
| 数据报消息编号 | 每次上报使用独立id;复验换新序号,避免重放已处理编号。 必填 · 填写: 为每条新消息分配新编号 |
| 发送内容/发送 | 用文本格式发送一整个JSON数据报,可点击发送或Ctrl+Enter。 必填 · 填写: 完整JSON;每条含clientId |
27. 恢复后准备34℃目标
**操作位置:*设备管理→无线温控→*运行状态 **操作步骤:**将设定滑块调到 34,核对提示后点击 指令发送。

先恢复UDP收发并用新身份数据报登记返回地址,再下发34。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设定温度滑块与纸飞机 | 将滑块调到允许目标,核对提示值后点击纸飞机,勿连续重发。 必填 · 填写: 首次32;恢复后34 |
28. 确认恢复后实际收到设定34
**操作位置:*平台运行状态/FMQX网页版→*接收记录 **操作步骤:**平台将设定调到34并发送,在FMQX 接收记录 核对新指令 34。

列表同时保留此前32和恢复后34两条实收;恢复后的实收证明返回地址仍可用。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设定温度滑块与纸飞机 | 将滑块调到允许目标,核对提示值后点击纸飞机,勿连续重发。 必填 · 填写: 首次32;恢复后34 |
| 接收记录 | 检查真实收到的指令内容、设定值及时间。 必填 · 填写: 32;恢复后34 |
29. 核对恢复后的演示回复
**操作位置:*FMQX网页版→*发送记录 **操作步骤:**核对自动回复中的 设定34 与 执行次数2。

第二次仍是FMQX演示状态机回复;随后由操作员独立上报29/34,不用回复代替属性状态。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 演示状态机回复 | FMQX jsonDevice接受设定并自动回复,随后人工独立再上报属性状态。 必填 · 填写: 执行次数1/2,结果32/34 |
恢复后设定34的独立状态上报json
{
"id": "FastBee_UDP_Tutorial_after34",
"version": "1.0",
"method": "thing.event.property.post",
"clientId": "FastBee_UDP_Tutorial_01",
"params": {
"FastBee_temperature": 29,
"FastBee_setpoint": 34
}
}自动回复34后,操作员再发送此完整状态报文。
30. 独立回报恢复后的34℃状态
**操作位置:*FMQX网页版→*发送内容 **操作步骤:**填入本设备的完整状态报文,设定为 34,每次换新 消息编号 后点击 发送。

设备状态重新上报与指令成功回复是两条不同消息;使用自己复验的新编号,不能重放本图旧编号。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 数据报设备身份 | 每条数据报顶层clientId等于平台设备标识。 必填 · 填写: FastBee_UDP_Tutorial_01 |
| 数据报消息编号 | 每次上报使用独立id;复验换新序号,避免重放已处理编号。 必填 · 填写: 为每条新消息分配新编号 |
| 发送内容/发送 | 用文本格式发送一整个JSON数据报,可点击发送或Ctrl+Enter。 必填 · 填写: 完整JSON;每条含clientId |
31. 重新上报并确认平台34
**操作位置:*FMQX发送内容/设备管理→*运行状态 **操作步骤:**人工发送下方独立29/34状态报文,再刷新平台,确认 当前值 为 34。

最终温度29、设定34;属性状态在01:33:52重新上报并落入实际历史。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 数据报设备身份 | 每条数据报顶层clientId等于平台设备标识。 必填 · 填写: FastBee_UDP_Tutorial_01 |
| 数据报消息编号 | 每次上报使用独立id;复验换新序号,避免重放已处理编号。 必填 · 填写: 为每条新消息分配新编号 |
| 平台当前值 | 当前值来自属性重新上报;不能用待发滑块值或已派发提示替代。 必填 · 填写: 温度29,设定34 |
| 发送内容/发送 | 用文本格式发送一整个JSON数据报,可点击发送或Ctrl+Enter。 必填 · 填写: 完整JSON;每条含clientId |
恢复使用同一保存会话和本地端口,先发送含设备编号的数据报,再把平台设定改为34。核对设备真实收到34、演示执行次数增加、独立状态上报与平台当前值34,随后核对历史。
七、查询历史并刷新确认
32. 查询十个温度样本
**操作位置:*数据中心→*历史数据 **操作步骤:**选择本篇设备和 温度,时间覆盖01:22~01:24,核对 20~29 十个值。

十行各自对应独立消息;表格图不包含筛选区,复验要确认设备、字段和日期。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备与字段 | 选择本篇设备,再选温度或设定温度。 必填 · 填写: 无线温控/温度、设定温度 |
| 时间范围 | 覆盖当前设备本轮上报与指令状态回报时间。 必填 · 填写: 2026-10-13 01:22~01:35 |
| 查询与刷新 | 刷新页面并重新选择相同条件查询,等加载结束再核对。 必填 · 填写: 温度20~29;设定32→34 |
33. 刷新重查设定32到34
**操作位置:*数据中心→*历史数据 **操作步骤:**刷新页面后重选设备、设定温度 与01:32~01:35,等加载结束再点击 查询。

01:32:51为32、恢复身份报文后仍32、01:33:52为34;本图已等待加载蒙层消失。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备与字段 | 选择本篇设备,再选温度或设定温度。 必填 · 填写: 无线温控/温度、设定温度 |
| 时间范围 | 覆盖当前设备本轮上报与指令状态回报时间。 必填 · 填写: 2026-10-13 01:22~01:35 |
| 查询与刷新 | 刷新页面并重新选择相同条件查询,等加载结束再核对。 必填 · 填写: 温度20~29;设定32→34 |
温度选2026-10-13 01:22~01:24,可查20~29十个样本。设定温度选01:32~01:35,可查32、恢复时的32及最终34。刷新后重新选择相同设备、字段和时段,等待加载结束再核对。
恢复身份报文仍上报32,所以历史有另一条32是独立的新报文,不是重复入库。实际核对按每条消息与字段一一关联;不能把相同值、工具发送数和运行侧登记数直接混为一类。
八、结束与再次验收
34. 结束收发并保留数据
**操作位置:*FMQX网页版→无线温控→*统计 **操作步骤:**点击 断开,确认 已断开,保留本篇资源和全部历史。

工具上行16条由14条属性和2条回复组成,下行2条;UDP身份登记额外产生的运行记录不计入工具上行数。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 保留与再次验收 | 结束断开FMQX,保留产品、设备、模型、会话及历史。 必填 · 填写: 已断开;保留最后29/34 |
| 连接/断开 | UDP连接表示本地收发端口已准备好;不表示远端可靠连接或业务通过。 必填 · 填写: 连接后先发身份数据报 |
本轮最终只断开FMQX并停止发送,产品、设备、物模型、保存会话和全部历史保留。平台保留最后温度29、设定34,不代表UDP仍在收发,也不保证断开后立即变离线。
再次验收复用本篇资源,先核对产品JSON/UDP、设备编号、发布生效及本地端口;连接后先发送新的含身份数据报。使用新消息编号逐个发送至少十个不同样本,再下发允许范围内的新设定,核对设备实收、演示回复、独立状态、实时和历史,刷新重查并做一次停止恢复。结束继续断开,保留新旧历史。
字段与参数参考
JSON接入向导
| 字段 / 控件 | 填写说明 |
|---|---|
| 接入来源 | 为本篇创建独立型号;已有资源复验时直接复用。 必填 · 填写: 新建产品已有产品:复用同型号产品;复用同型号产品。新建产品:创建本篇独立产品;创建本篇独立产品。复制产品:从已有产品复制后调整;从已有产品复制后调整。使用模板:选择已有模板;选择已有模板。 |
| 产品名称 | 给这类无线温控设备取清晰业务名。 必填 · 填写: FastBee_无线温控 |
| JSON样例 | 从设备实际报文取两个属性;向导先提取字段草稿。 必填 · 填写: {"FastBee_temperature":20,"FastBee_setpoint":30} |
| 字段与JSON路径 | 两属性分别对应温度和设定温度,标识须与params中的键一致。 必填 · 填写: $.FastBee_temperature;$.FastBee_setpoint |
| 数据类型 | 本篇两字段均为整数;单位与读写在功能定义补齐。 必填 · 填写: 整数 |
| 设备标识 | 每个UDP报文clientId与此编号完全一致,区分大小写。 必填 · 填写: FastBee_UDP_Tutorial_01 |
| 设备名称 | 在列表定位当前演示设备。 必填 · 填写: FastBee_无线温控 |
| 接入概况 | 本截图为向导初始JSON/MQTT概况;下一节改为JSON/UDP。 必填 · 填写: 1台设备,2个采集字段 |
JSON与UDP协议设置
| 字段 / 控件 | 填写说明 |
|---|---|
| 接入协议 | 本篇最终选择UDP。 必填 · 填写: UDP修改后须发布。UDP:使用带独立边界的数据报,每条带设备身份;使用带独立边界的数据报,每条带设备身份。 |
| 数据格式 | 本篇使用普通JSON对象,不使用JSON Array或Alink。 必填 · 填写: JSON修改后须发布。JSON:每条完整JSON对象承载方法、设备编号及属性;每条完整JSON对象承载方法、设备编号及属性。 |
| 传输方式 | 最终必须为UDP,不能沿用向导的MQTT。 必填 · 填写: UDP修改后须发布。UDP:下行返回最近身份数据报登记的源地址和端口;下行返回最近身份数据报登记的源地址和端口。 |
| 联网方式 | 本篇业务设备以WIFI标识联网方式。 必填 · 填写: WIFI修改后须发布。WIFI:联网方式分类;实际收发传输仍为UDP;联网方式分类;实际收发传输仍为UDP。 |
| 授权码 | 本篇演示关闭;不要把其他产品的授权信息复制过来。 必填 · 填写: 关闭修改后须发布。关闭:本篇已验证配置;本篇已验证配置。开启:需另行准备并核对授权参数,本篇未验证;需另行准备并核对授权参数,本篇未验证。 |
功能定义
| 字段 / 控件 | 填写说明 |
|---|---|
| 模型翻译 | 填写清晰英文名称,完成必填项再保存。 必填 · 填写: Temperature/Setpoint修改后须发布。 |
| 模型标识 | 上报属性键与模型标识逐字相同。 必填 · 填写: FastBee_temperature/FastBee_setpoint修改后须发布。 |
| 模型类别 | 读数和可写设定均采用属性。 必填 · 填写: 属性修改后须发布。属性:保存当前读数或设定值;保存当前读数或设定值。功能:本篇不使用独立功能模型;本篇不使用独立功能模型。事件:本篇不使用事件模型;本篇不使用事件模型。 |
| 只读数据 | 温度只读;设定温度取消只读以提供控制入口。 必填 · 填写: 温度勾选,设定不勾选修改后须发布。勾选:仅展示上报值;仅展示上报值。不勾选:允许按权限下发属性设定;允许按权限下发属性设定。 |
| 历史存储 | 两个字段都开启,后续上报才可查询历史。 必填 · 填写: 勾选修改后须发布。勾选:记录后续采集值;记录后续采集值。不勾选:不能按本篇核对后续历史;不能按本篇核对后续历史。 |
| 图表展示/实时监测 | 温度开启,设定关闭;修改展示开关后重新核对只读状态。 必填 · 填写: 温度开启,设定关闭修改后须发布。勾选:用于相应读数展示,注意只读联动;用于相应读数展示,注意只读联动。不勾选:设定值仍可通过运行状态控制;设定值仍可通过运行状态控制。 |
| 分享权限 | 按租户权限使用,本篇不开放分享。 必填 · 填写: 不勾选修改后须发布。勾选:分享范围由租户业务决定;分享范围由租户业务决定。不勾选:保持本篇现有权限范围;保持本篇现有权限范围。 |
| 整数范围与步长 | 温度-40~100,设定16~35,步长均为1。 必填 · 填写: 温度-40~100;设定16~35;步长1修改后须发布。 |
| 单位 | 两属性使用摄氏度。 必填 · 填写: ℃修改后须发布。 |
设备身份与重新保存
| 字段 / 控件 | 填写说明 |
|---|---|
| 设备名称与所属产品 | 打开本篇设备,确认名称及编号,避免重存其他设备。 必填 · 填写: FastBee_无线温控 |
| 修改/保存 | 产品由MQTT改为UDP后,重新保存对应设备并确认修改成功。 |
发布与生效
| 字段 / 控件 | 填写说明 |
|---|---|
| 发布产品 | 保存配置后发布,编辑已发布产品时先取消发布。 |
| 接入配置同步结果 | 确认接入节点已应用本次配置;不能只看保存成功。 必填 · 填写: APPLIED,失败0 |
FMQX网页版UDP
| 字段 / 控件 | 填写说明 |
|---|---|
| 导入配置 | 在FMQX网页版导入本篇UTF-8配置到UDP教程分组。 修改后须重连。 |
| 连接名称 | 识别本篇保留会话。 必填 · 填写: FastBee_无线温控修改后须重连。 |
| 本地监听地址 | FMQX所在机器接收返回数据报的网卡地址。 必填 · 填写: 0.0.0.0修改后须重连。 |
| 本地端口 | 设备工具接收下行的UDP源端口;本机须未被占用。 必填 · 填写: 15021修改后须重连。 |
| 远端目标地址 | 填写FMQ UDP入口的可达地址。只有同机演示可用127.0.0.1。 必填 · 填写: 127.0.0.1修改后须重连。 |
| 远端目标端口 | 与FMQ UDP监听端口一致。 必填 · 填写: 8889修改后须重连。 |
| 启用广播 | 本篇点对点目标,不开启广播。 必填 · 填写: 关闭修改后须重连。关闭:只发往指定目标;只发往指定目标。开启:需要广播场景及网段配置,本篇未验证;需要广播场景及网段配置,本篇未验证。 |
| 连接超时 | 界面单位毫秒;不是UDP交付保证。 必填 · 填写: 5000毫秒修改后须重连。 |
| 测试连接 | 可检查配置准备情况,仍须实际上报验证业务。 修改后须重连。 |
| 保存配置 | 保存后复用本篇会话,配置变化后再恢复收发。 修改后须重连。 |
| 连接/断开 | UDP连接表示本地收发端口已准备好;不表示远端可靠连接或业务通过。 修改后须重连。 |
| 数据报设备身份 | 每条数据报顶层clientId等于平台设备标识。 必填 · 填写: FastBee_UDP_Tutorial_01修改后须重连。 |
| 数据报消息编号 | 每次上报使用独立id;复验换新序号,避免重放已处理编号。 必填 · 填写: 为每条新消息分配新编号修改后须重连。 |
| 发送内容/发送 | 用文本格式发送一整个JSON数据报,可点击发送或Ctrl+Enter。 修改后须重连。 |
| 接收记录 | 检查真实收到的指令内容、设定值及时间。 必填 · 填写: 32;恢复后34修改后须重连。 |
| 演示状态机回复 | FMQX jsonDevice接受设定并自动回复,随后人工独立再上报属性状态。 必填 · 填写: 执行次数1/2,结果32/34修改后须重连。 |
设备运行状态
| 字段 / 控件 | 填写说明 |
|---|---|
| 设定温度滑块与纸飞机 | 将滑块调到允许目标,核对提示值后点击纸飞机,勿连续重发。 必填 · 填写: 首次32;恢复后34 |
| 平台当前值 | 当前值来自属性重新上报;不能用待发滑块值或已派发提示替代。 必填 · 填写: 温度29,设定34 |
历史数据
| 字段 / 控件 | 填写说明 |
|---|---|
| 设备与字段 | 选择本篇设备,再选温度或设定温度。 必填 · 填写: 无线温控/温度、设定温度 |
| 时间范围 | 覆盖当前设备本轮上报与指令状态回报时间。 必填 · 填写: 2026-10-13 01:22~01:35 |
| 查询与刷新 | 刷新页面并重新选择相同条件查询,等加载结束再核对。 |
停止与恢复
| 字段 / 控件 | 填写说明 |
|---|---|
| 保留与再次验收 | 结束断开FMQX,保留产品、设备、模型、会话及历史。 必填 · 填写: 已断开;保留最后29/34 |
遇到问题时先查哪里
| 看到什么现象 | 可能原因 | 先检查哪里 | 如何恢复 |
|---|---|---|---|
| FMQX已连接但平台没有新值 | UDP本地准备不等于报文已送达,或身份与属性键不符。 | 核对目标IP8889、每条clientId、设备编号、完整JSON及新id。 | 修正后发一个新样本,确认平台更新时间再继续。 |
| 改为UDP后下行仍失败 | 本篇观察到产品变更后设备旧传输状态未随之生效,根因尚未确认。 | 打开对应设备重新保存,核对产品JSON/UDP与本次发布APPLIED。 | 恢复UDP后先发含身份报文,再观察一次设备实收;未收到时不要连续重发。 |
| 上报有值但下行回不到设备 | 最新身份数据报源端口与当前监听端口不一致,或返回通道受阻。 | 本地15021、远端8889;恢复后先发身份数据报,核对设备实际接收。 | 停止旧会话,复用正确本地端口恢复并重新登记,再测试新指令。 |
| 端口已占用或无法启动 | 另一个会话或应用使用相同本地UDP端口。 | 本机15021只能由本篇当前会话使用,不同时启动同配置的副本。 | 关闭自己的重复会话;确需换端口时恢复后重新发送身份报文。 |
| 派发成功或自动回复成功但当前值没变 | 回复与属性状态上报是两类消息,当前值需独立状态报文。 | FMQX演示已收到目标,自动回复后是否人工发送新的属性状态。 | 发新id的完整状态报文,核对实时值与历史;不把演示等同物理动作。 |
| 十个样本缺值或顺序不一致 | UDP可能丢包或乱序,或复用了消息编号。 | 每次新id、完整数据报、等待平台确认、历史窗口覆盖输入时间。 | 保留原数据,使用新编号和不同值定向重测缺失样本。 |
| 刷新后历史为空或仍是旧值 | 字段、设备、日期、时间范围不对,或历史未开启。 | 确认两个字段历史开启,选本设备与01:22~01:35,等加载结束。 | 修正查询条件再查;新开启历史仅保证后续记录,不补旧数据。 |
| 断开后平台仍显示34 | 平台保留最后属性,UDP断开不等于即时业务离线。 | 看FMQX已断开与更新时间是否继续变化。 | 无需删除数据;恢复时先连同一会话并发送新的身份数据报。 |

