JSON 与 MQTT WebSocket 网页温控接入
本文依据已有操作手册整理为线上操作参考。原文标为预期或未执行的操作,仍须按实际环境验证。
WebSocket承载MQTT属性上报、下行回复、状态、历史和重连。
**开始前准备:**具备产品、设备、模型、发布、控制和历史权限;本地应用、单节点FMQ和FMQX网页版可用,连接参数和订阅已确认
开始前先了解
首次接入按配置章节操作;已有相同产品和设备时复用保留配置,从上报与收发验证开始。配置图与恢复示例保留原操作时点,当前复验另行核对。
本篇使用一台网页温控设备,完成JSON消息经MQTT WebSocket上报、订阅下行、演示回复、独立属性重新上报、历史刷新与断开重连。适合需要通过WebSocket入口承载MQTT消息的客户端和设备集成工具。
蜂信物联(FastBee)负责产品、设备、控制和历史;FMQ是设备接入服务;FMQX网页版在本篇扮演演示设备。它的JSON状态机接受设定并自动回复,随后由操作员在发布框人工独立上报状态,不代表真实物理温控器动作或自动持续采样。
账号需具有产品、设备、模型编辑、发布、控制和历史权限。准备本设备MQTT连接参数、WebSocket地址端口与路径、正确上下行主题及允许控制范围;配置JSON不包含设备密码,首次导入后安全填写并保存。
功能关系示意
职责与数据方向;不是运行截图。
复制模板前先替换这些参数
本篇代码使用普通模板名;截图保留实际历史资源。请先完成以下核对,再保存为UTF-8文件或发送报文。
- temperature、setpoint分别是温度与设定温度的模板属性标识;首次生成物模型可沿用,复用已有产品时须替换为该产品真实标识,并同步修改所有报文和initialState键。
- demo-device是设备编号模板。将clientId中的设备编号、每个收发主题中的设备编号和TCP上报的clientId一起替换为平台该设备编号;MQTT身份中的产品号、租户号也须替换为当前设备连接参数。
- 连接文件中的host、port及监听方向须改为当前环境实际地址;127.0.0.1表示运行FMQX的本机。涉及MQTT时同步核对产品号、用户名、订阅主题和responseRoute,密码仅在连接页面安全填写。
- 分组、会话及订阅id是导入文件内部引用;如需改名,groupId必须与对应分组id一致。先核对再导入,不要在保留会话上重复创建同名连接。
- 代码块是按既有无密码资产或原代码改写的客户模板,尚未证明本版模板已成功导入。历史截图、发送时间和业务通过范围仍以各步骤记录为准;不要将模板名当作旧证据中的实际资源名。
先核对连接身份与主题
平台产品协议为JSON/MQTT,设备工具的传输通道为WebSocket。本例FMQ地址127.0.0.1、端口8084、路径/mqtt;同机演示可用127.0.0.1,跨机器改用管理员提供的可达地址。普通MQTT TCP端口不能直接当作WebSocket入口。
设备编号、产品编号和租户组成平台给出的MQTT Client ID,本篇为S&FastBee_WS_Tutorial_01&876&1。用户名与Password都从本设备MQTT连接参数获取,不随机生成身份、不借用其他设备凭据。保存后密码不回显,手册及配置文件不保存真实密码。
正确下行主题为/876/FastBee_WS_Tutorial_01/function/get,属性和演示回复发布到/876/FastBee_WS_Tutorial_01/property/post。正确订阅启用;错误默认主题S&FastBee_WS_Tutorial_01&876&1/function/get保留但禁用。删除错误默认项后重连会重新生成并被订阅确认拒绝,本篇实际采用保留禁用项通过恢复。
一、创建产品、字段与设备
1. 创建独立网页温控产品
**操作位置:*物联网→设备接入→*从哪里开始 操作步骤:选择 新建产品,填写产品名称 FastBee_网页温控。复验时直接复用保留资源。

下方其他未完成接入记录不属于本篇;不要点击其继续接入。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 接入来源 | 本篇创建独立产品;已有本篇资源复验直接复用。 必填 · 填写: 新建产品 |
| 产品名称 | 给这类网页温控设备取清晰业务名。 必填 · 填写: FastBee_网页温控 |
2. 用JSON样例生成字段
**操作位置:*设备接入向导→*产品与协议 操作步骤:粘贴下方JSON样例,点击 解析并预览。

向导样例温度29、设定30仅用于提取字段;正式十样本时设定基线为32。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| JSON样例 | 从设备实际报文提取两个属性草稿。 必填 · 填写: {"FastBee_temperature":29,"FastBee_setpoint":30} |
向导生成字段的JSON样例json
{
"temperature": 29,
"setpoint": 30
}用于提取字段;正式会话样本采用下方20~29与设定32。 此处使用可替换的客户模板名;导入或发送前按本节替换清单核对。
3. 核对两个整数属性与路径
**操作位置:*设备接入向导→*采集字段 **操作步骤:**核对 温度、设定温度 及其整数类型和对应JSON路径。

单位在后续功能定义补为℃,两个字段不能互换标识。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 字段、整数类型与路径 | 两个属性与实际JSON键一一对应。 必填 · 填写: $.FastBee_temperature;$.FastBee_setpoint |
4. 填写独立设备编号
**操作位置:*设备接入向导→*添加设备 操作步骤:填写设备名称与 设备标识 FastBee_WS_Tutorial_01。

MQTT连接参数和上下行主题使用此设备编号;FMQX会话编号不是平台设备编号。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备标识 | MQTT连接身份与上下行主题都从此编号构成,不能随机替换。 必填 · 填写: FastBee_WS_Tutorial_01 |
| 设备名称 | 用于定位当前平台设备;FMQX最终会话名为网页温控器。 必填 · 填写: FastBee_网页温控 |
5. 核对JSON与MQTT基础接入
**操作位置:*设备接入向导→*接入确认 **操作步骤:**核对产品、JSON/MQTT、一台设备与两个字段后完成创建。

WebSocket承载MQTT消息,所以平台协议仍显示JSON/MQTT;传输需在FMQX详情单独核对。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 接入协议 | 平台使用JSON/MQTT,WebSocket是MQTT的传输通道。 必填 · 填写: JSON/MQTT |
| 接入概况 | 核对当前产品、一台设备和两个字段。 必填 · 填写: 1台、2字段 |
二、配置属性并发布
6. 保存可写设定与历史配置
**操作位置:*产品管理→网页温控→功能定义→*设定温度 操作步骤:模型翻译填Setpoint,取消 只读数据,开启 历史存储 后点击修改。

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

温度只读,图表及实时监测开启、历史开启;计算公式留空。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 只读数据 | 温度勾选;设定取消只读以提供控制入口。 必填 · 填写: 温度勾选,设定不勾选 |
| 历史存储 | 两个字段都开启,保存后续上报历史。 必填 · 填写: 勾选 |
| 图表展示/实时监测 | 温度开启,设定关闭;重新核对只读联动。 必填 · 填写: 温度开启,设定关闭 |
| 分享权限 | 本篇在所在租户使用,不开放分享。 必填 · 填写: 不勾选 |
| 整数范围、单位与步长 | 温度-40~100℃;设定16~35℃;步长1。 必填 · 填写: 温度-40~100;设定16~35;℃;步长1 |
| 计算公式 | 本例直接使用整数,不做公式转换。 选填 · 填写: 留空 |
| 修改/取消 | 修改保存当前模型;取消不提交。 必填 · 填写: 修改 |
8. 确认发布当前产品配置
**操作位置:*产品管理→网页温控→*发布更新 **操作步骤:**核对草稿保存后,点击 发布更新,在确认框点击 确定。

提示操作成功后继续查看同步详情,确认接入节点已应用配置。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 发布产品 | 保存后发布;已发布产品编辑前先取消发布。 必填 · 填写: 确认发布 |
9. 发布后确认接入侧生效
**操作位置:*产品管理→网页温控→*接入配置同步 **操作步骤:**发布已保存配置,展开同步结果,确认 APPLIED 且 失败原因 为空。

本次接入配置已在节点应用、失败0;仍需下面的真实设备收发和历史验证。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 接入同步结果 | APPLIED表示接入节点已应用本次配置。 必填 · 填写: APPLIED,失败0 |
| 发布产品 | 保存后发布;已发布产品编辑前先取消发布。 必填 · 填写: 确认发布 |
温度只读、范围-40~100℃;设定可写、范围16~35℃,步长1。两属性历史开启,温度图表与实时监测开启,设定关闭;保存后重新打开核对。修改已发布产品时先取消发布,完成修改后重新发布至APPLIED。
三、配置并确认WebSocket连接
FMQX网页版正式连接配置json
{
"schemaVersion": 3,
"groups": [
{
"id": "tutorial_ws_group",
"name": "网页教程",
"sortOrder": 53,
"isSystem": false
}
],
"sessions": [
{
"id": "3d65382b266b40e38e77e8178f0af68d",
"groupId": "tutorial_ws_group",
"name": "网页温控器",
"protocol": "MQTT",
"transport": "WebSocket",
"host": "127.0.0.1",
"port": 8084,
"mqttWebSocketPath": "/mqtt",
"mqttProtocolVersion": "3.1.1",
"clientId": "S&demo-device&876&1",
"username": "admin",
"autoReconnect": false,
"qos": 1,
"subscriptions": [
{
"id": "platform_downlink",
"topic": "/876/demo-device/function/get",
"qos": 1,
"active": true
},
{
"id": "legacy_default",
"topic": "S&demo-device&876&1/function/get",
"qos": 1,
"active": false
}
],
"jsonDevice": {
"format": "JSON",
"responseRoute": "/876/demo-device/property/post",
"initialState": {
"temperature": 29,
"setpoint": 32
}
}
}
]
}另存为UTF-8 JSON后导入;没有密码。首次导入后安全填入本设备Password,保留错误默认订阅active=false,不删除它。 此处使用可替换的客户模板名;导入或发送前按本节替换清单核对。
10. 配置MQTT WebSocket连接身份
操作位置:FMQX网页版→WebSocket教程→网页温控器→连接配置 操作步骤:导入下方配置,核对Host、端口8084及 Client ID,安全填写本设备Password并保存。

实际配置MQTT3.1.1、Keep Alive60秒、Clean Session开、TLS关、超时5000ms、自动重连关;保存后的凭据不回显。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 连接名称 | 识别本篇最终保留会话。 必填 · 填写: FastBee_网页温控器 |
| Host / IP | 填写FMQ WebSocket接入地址;127.0.0.1仅适用于同机。 必填 · 填写: 127.0.0.1 |
| Port | 使用WebSocket监听端口,不能混用普通MQTT端口。 必填 · 填写: 8084 |
| WebSocket路径 | 导入配置的路径与FMQ入口一致。 必填 · 填写: /mqtt |
| Client ID | 使用平台该设备的MQTT连接身份;不要点随机生成替换。 必填 · 填写: S&FastBee_WS_Tutorial_01&876&1 |
| Username | 填写平台提供的设备连接用户名。 必填 · 填写: admin(以设备连接参数为准) |
| Password | 从平台该设备连接参数安全获取并填写;保存后的凭据不会在此回显。 必填 · 填写: 填写本设备凭据,不写入手册 |
| MQTT Version | 本篇选择3.1.1。 必填 · 填写: 3.1.1 |
| Keep Alive | MQTT保活间隔,单位秒。 必填 · 填写: 60秒 |
| Clean Session | 本篇开启,恢复后重新核对订阅。 必填 · 填写: 开启 |
| TLS / SSL | 本地本篇使用未加密WebSocket;外部环境以管理员入口要求为准。 必填 · 填写: 关闭 |
| 连接超时 | 连接等待上限,单位毫秒。 必填 · 填写: 5000毫秒 |
| 自动重连 | 本篇关闭,手工执行断开与恢复。 必填 · 填写: 关闭 |
| 重连间隔 | 只有自动重连开启时才参与重试;本篇不开启。 必填 · 填写: 3000毫秒 |
| 导入配置 | 将下方不含密码的UTF-8 JSON导入WebSocket教程分组。 必填 · 填写: MQTT/WebSocket会话 |
| 随机生成 | 本篇采用固定设备身份,不使用随机生成。 必填 · 填写: 不点击 |
| 测试连接 | 连接测试不替代真实上报、订阅和下行验证。 必填 · 填写: 测试连接 |
| 保存配置 | 保存正确连接及凭据,后续复用本篇会话。 必填 · 填写: 保存配置 |
11. 连接并确认WebSocket传输
**操作位置:*FMQX网页版→*连接详情 操作步骤:点击连接,展开详情,核对 传输通道 为 WebSocket 和本设备Client ID。

不要只看头部MQTT标签或端口可达;详情明确显示实际WebSocket通道。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 连接详情 | 头部MQTT表示应用协议;详情传输通道应为WebSocket。 必填 · 填写: WebSocket |
| Client ID | 使用平台该设备的MQTT连接身份;不要点随机生成替换。 必填 · 填写: S&FastBee_WS_Tutorial_01&876&1 |
| 连接/断开 | 连接后确认真实详情显示WebSocket,错误提示要解除后继续。 必填 · 填写: 已连接/已断开 |
连接成功后检查实际详情中的传输通道WebSocket和本设备Client ID。正确下行主题必须已订阅;已连接但订阅被拒绝仍不能算上下行通过。MQTT3.1.1、上报QoS1、Keep Alive60秒、Clean Session开启、自动重连关闭。
四、发送十个不同样本
正式会话第一条属性上报json
{
"id": "WS_Tutorial_retry_sample_01",
"temperature": 20,
"setpoint": 32
}发布到本设备property/post主题;温度依次20~29,消息编号01~10。再次验收使用一组全新id。 此处使用可替换的客户模板名;导入或发送前按本节替换清单核对。
12. 填写本设备上报主题与首个样本
**操作位置:*FMQX网页版→通信→*发布消息 **操作步骤:**把 Topic 改为本设备正确上报主题,填入温度 20、设定32和新消息编号,点击 发送。

重新打开页面后先核对Topic;不能沿用S&开头的默认主题。复验换新编号,不重放截图中的旧样本。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 上报与回复主题 | 本篇属性和演示回复均发布到该设备上报主题。 必填 · 填写: /876/FastBee_WS_Tutorial_01/property/post |
| 消息编号 | 每条新上报使用独立id,复验使用全新编号。 必填 · 填写: 独立id,不重放已处理编号 |
| QoS | 属性上报与订阅配置采用1,平台实际下行卡显示0。 必填 · 填写: 上报1;下行实收0 |
| 发布内容与发送 | 发送完整JSON;本场景设备身份由MQTT连接和主题确定。 必填 · 填写: 温度20~29、设定32 |
13. 通过上报主题发送十个不同温度
**操作位置:*FMQX网页版→通信→*发布内容与发送记录 操作步骤:选择正确上报主题,保持设定32,温度依次 20~29,各用新消息编号发送。

实际发送十条、最后29/32;前一步已单独展示正确上报主题和首样本准备。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 上报与回复主题 | 本篇属性和演示回复均发布到该设备上报主题。 必填 · 填写: /876/FastBee_WS_Tutorial_01/property/post |
| QoS | 属性上报与订阅配置采用1,平台实际下行卡显示0。 必填 · 填写: 上报1;下行实收0 |
| 消息编号 | 每条新上报使用独立id,复验使用全新编号。 必填 · 填写: 独立id,不重放已处理编号 |
| 发布内容与发送 | 发送完整JSON;本场景设备身份由MQTT连接和主题确定。 必填 · 填写: 温度20~29、设定32 |
每次发送完整JSON到正确上报主题,等待平台读到本条后再继续。设备身份由MQTT连接与主题确定,避免把UDP的身份数据报写法混入本例。正式十样本发生在01:57:12~01:57:21,设定温度一直为32。
下发32℃并确认实际状态
按待发值、实际接收、设备执行、独立状态回报和平台当前值逐项确认。本段示例为本轮新指令;计数为保留会话的累计值。FMQX状态机演示不代替实物设备执行。
14. 将待下发设定调到32℃
操作位置:设备管理→网页温控→运行状态 操作步骤:在设定温度滑块选择32,核对提示值后点击指令发送。

将待下发设定调到32℃
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设定滑块与纸飞机 | 核对待发提示值后单次发送,不把滑块待发值当作设备当前值。 必填 · 填写: 按实施方案填写 · 示例:本次32℃;原10月13日参考34℃、恢复后35℃ |
| 待下发设定温度 | 滑块提示是准备发送的值,旁边当前值来自设备上报。 必填 · 填写: 32 |
15. 确认设备收到32℃指令
操作位置:平台运行状态/FMQX网页版→接收记录 操作步骤:展开本设备最新接收消息,核对设定温度为32。

确认设备收到32℃指令
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设定滑块与纸飞机 | 核对待发提示值后单次发送,不把滑块待发值当作设备当前值。 必填 · 填写: 本次32℃ |
| 下行订阅主题 | 正确下行主题保持启用,用于接收平台属性设定。 必填 · 填写: /876/FastBee_WS_Tutorial_01/function/get |
| 接收记录 | 展开完整消息,核对主题、目标值、时间与字节数。 必填 · 填写: 本次32℃;对应同一指令编号 |
16. 核对同编号32℃执行应答
操作位置:平台运行状态/FMQX网页版→接收记录 操作步骤:在发送记录展开同编号应答,核对成功结果、设定32及累计执行次数5。

核对同编号32℃执行应答及累计计数5
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 本次执行应答 | 本次只新增一次执行;计数为保留设备状态机累计值。 必填 · 填写: 按实施方案填写 · 示例:同一指令编号;成功200;设定32;累计次数5 |
17. 独立上报执行后的实际状态
操作位置:FMQX网页版→通信→发布消息 操作步骤:在本设备上报入口发送实际温度29、设定温度32的JSON。

独立上报执行后的实际状态
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 上报与回复主题 | 本篇属性和演示回复均发布到该设备上报主题。 必填 · 填写: 按实施方案填写 · 示例:/876/FastBee_WS_Tutorial_01/property/post |
| 消息编号 | 每条新上报使用独立id,复验使用全新编号。 必填 · 填写: 按实施方案填写 · 示例:独立id,不重放已处理编号 |
| 实际属性JSON | TCP需同时携带设备编号clientId;MQTT WebSocket使用当前设备上报主题。 必填 · 填写: {"FastBee_temperature":29,"FastBee_setpoint":32} |
18. 查看独立上报后的当前32℃
操作位置:FMQX发布内容/设备管理→运行状态 操作步骤:回到运行状态,核对当前值显示32。

查看独立上报后的当前32℃
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 平台当前值 | 独立属性状态上报后的实际当前值。 必填 · 填写: 本次温度29℃、设定32℃ |
19. 打开统计查看历史曲线
**操作位置:*设备管理→当前设备→*设备统计 操作步骤:进入设备统计,等待曲线首次加载后核对温度。

打开统计查看历史曲线
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备统计与历史曲线 | 首次进入后等待历史曲线加载,按字段和时间核对数据。 必填 · 填写: 按实施方案填写 · 示例:进入设备统计后首次加载曲线 |
20. 选择本次32℃回报的时间窗
操作位置:数据中心→历史数据 操作步骤:选择本设备的设定温度,填写2026-10-15 20:58:00 ~ 2026-10-15 20:59:00,点击查询。

查询本次设定32的时间范围
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 本次查询时间 | 使用完整日期和起止时间;截图输入框可能缩略显示。 必填 · 填写: 按实施方案填写 · 示例:2026-10-15 20:58:00 ~ 2026-10-15 20:59:00 |
21. 刷新本次设定温度历史
**操作位置:*数据中心→*历史数据 操作步骤:确认设备和字段无误,点击刷新结果。

刷新本设备设定温度历史
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 本次查询时间 | 使用完整日期和起止时间;截图输入框可能缩略显示。 必填 · 填写: 按实施方案填写 · 示例:2026-10-15 20:58:00 ~ 2026-10-15 20:59:00 |
22. 核对刷新后仍存在的32℃记录
操作位置:数据中心→历史数据 操作步骤:核对设定温度为32、时间为20:58:00。

刷新后核对独立状态上报的32
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 本次历史记录 | 核对独立状态上报的时间与值;相同值的不同消息不自动视为重复。 必填 · 填写: 按实施方案填写 · 示例:设定32℃,刷新后仍存在 |
需要时恢复连接(原操作示例)
以下为原批次恢复连接的独立操作示例,保留原时间和34或35的取值。需要恢复时再执行;它与上文32℃的新指令是两次独立验证。
23. 断开并停止本轮收发
**操作位置:*FMQX网页版→*网页温控器 **操作步骤:**点击 断开,确认 已断开,保留会话和历史。

本图为正式会话恢复前的停止状态;顶部提示遮部分右侧按钮,左侧断开状态清楚。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 结束与保留 | 只断开和停止发送,保留产品、设备、会话及历史。 必填 · 填写: 最终已断开;最后29/35 |
| 连接/断开 | 连接后确认真实详情显示WebSocket,错误提示要解除后继续。 必填 · 填写: 已连接/已断开 |
24. 复用正式会话恢复连接
**操作位置:*FMQX网页版→*网页温控器 **操作步骤:**保持错误默认订阅禁用而不删除,点击 连接 并确认 已连接。

正确主题保持启用;删除错误默认项会导致它重连后再次自动建立并被拒绝,本篇用保留禁用项恢复成功。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 下行订阅主题 | 正确下行主题保持启用,用于接收平台属性设定。 必填 · 填写: /876/FastBee_WS_Tutorial_01/function/get |
| 错误默认主题 | 保留自动默认项但禁用,避免删除后重连又被自动生成。 必填 · 填写: S&FastBee_WS_Tutorial_01&876&1/function/get;active=false |
| 连接/断开 | 连接后确认真实详情显示WebSocket,错误提示要解除后继续。 必填 · 填写: 已连接/已断开 |
恢复后先发布29/34状态json
{
"id": "WS_Tutorial_final_resume",
"temperature": 29,
"setpoint": 34
}重连后先确认正确订阅和属性上报,再下发新的设定35。 此处使用可替换的客户模板名;导入或发送前按本节替换清单核对。
25. 恢复后下发35℃目标
**操作位置:*设备管理→网页温控→*运行状态 **操作步骤:**恢复连接并上报新状态后,将滑块设为 35,核对提示后点击 指令发送。

恢复后也要核对设备真实接收、自动回复与独立属性上报。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设定滑块与纸飞机 | 核对待发提示值后单次发送,不把滑块待发值当作设备当前值。 必填 · 填写: 34;恢复后35 |
26. 恢复后确认实际收到设定35
**操作位置:*FMQX网页版→通信→*接收记录 **操作步骤:**先发下方恢复29/34状态,再下发35,展开新 接收记录 核对 35。

实际01:58:50.169收到本设备下行主题128字节设定35;不能把旧失败恢复34卡当作35实收。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 上报与回复主题 | 本篇属性和演示回复均发布到该设备上报主题。 必填 · 填写: /876/FastBee_WS_Tutorial_01/property/post |
| 消息编号 | 每条新上报使用独立id,复验使用全新编号。 必填 · 填写: 独立id,不重放已处理编号 |
| 设定滑块与纸飞机 | 核对待发提示值后单次发送,不把滑块待发值当作设备当前值。 必填 · 填写: 34;恢复后35 |
| 接收记录 | 展开完整消息,核对主题、目标值、时间与字节数。 必填 · 填写: 34;恢复后35 |
27. 核对恢复后设定35的演示回复
**操作位置:*FMQX网页版→通信→*发送记录 **操作步骤:**核对 设定35、code200和 executionCount2。

演示回复的接收请求摘要与本次35指令一致;之后仍需人工独立上报属性状态。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 演示自动回复 | FMQX jsonDevice接受设定并回复;状态随后由操作员独立重新上报。 必填 · 填写: 34次数1;35次数2 |
| 上报与回复主题 | 本篇属性和演示回复均发布到该设备上报主题。 必填 · 填写: /876/FastBee_WS_Tutorial_01/property/post |
恢复后独立29/35状态json
{
"id": "WS_Tutorial_final_after35",
"temperature": 29,
"setpoint": 35
}演示回复35之后人工发布此属性状态,重新验收换新消息编号。 此处使用可替换的客户模板名;导入或发送前按本节替换清单核对。
28. 独立上报恢复后的35℃状态
**操作位置:*FMQX网页版→通信→*发布消息 操作步骤:核对正确上报主题,填入温度29与设定 35,换新消息编号后点击 发送。

重新上报实际状态,再到平台核对当前值和刷新后的历史;截图旧编号仅供识别。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 上报与回复主题 | 本篇属性和演示回复均发布到该设备上报主题。 必填 · 填写: /876/FastBee_WS_Tutorial_01/property/post |
| 消息编号 | 每条新上报使用独立id,复验使用全新编号。 必填 · 填写: 独立id,不重放已处理编号 |
| 发布内容与发送 | 发送完整JSON;本场景设备身份由MQTT连接和主题确定。 必填 · 填写: 原10月13日恢复示例:温度29、设定35,使用新消息编号 |
29. 回平台核对已上报的35℃状态
**操作位置:*设备管理→设备详情→*运行状态/历史数据 **操作步骤:**完成上一步发送后,回到平台刷新 当前值,核对温度 29、设定 35,再按原恢复时间窗检查历史。

最终温度29、设定35,01:58:50独立属性已落实际历史;演示回复与人工状态上报明确区分。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 平台当前值 | 独立属性状态上报后的实际当前值。 必填 · 填写: 温度29、设定35 |
本篇正式会话恢复通过,设定35演示执行次数增为2,平台最终温度29、设定35。早期另一个会话曾只收到旧恢复34指令、未形成执行回复和新状态,仍保留为失败,不能混入本篇成功结论。
原样本与恢复示例的历史(独立旧时间窗)
本章继续展示首次十样本与原恢复操作的历史记录,保留原日期及取值;上文新增32℃指令的历史另有独立时间窗。再次复验使用本次实际时间,不照抄旧日期。
30. 查询正式会话十个样本
**操作位置:*数据中心→*历史数据 **操作步骤:**选本篇设备和 温度,时间覆盖01:57~01:58,核对 20~29。

十个值时间为01:57:12~01:57:21;不是早期失败会话的样本表。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备与字段 | 选择平台网页温控设备及温度或设定温度。 必填 · 填写: 网页温控/温度、设定温度 |
| 时间范围 | 覆盖本轮实际样本和状态上报时间。 必填 · 填写: 2026-10-13 01:57~02:00 |
| 查询/刷新/重置 | 刷新后重新选择相同条件查询;重置会清除筛选。 必填 · 填写: 等加载完成后核对 |
31. 选择设定温度与状态时间窗
**操作位置:*数据中心→*历史数据 **操作步骤:**选本篇设备和 设定温度,时间范围设为 01:58~02:00 后查询。

截图日期输入部分横向截断;完整日期为2026-10-13,复验用新的完整起止时间。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备与字段 | 选择平台网页温控设备及温度或设定温度。 必填 · 填写: 网页温控/温度、设定温度 |
| 时间范围 | 覆盖本轮实际样本和状态上报时间。 必填 · 填写: 2026-10-13 01:57~02:00 |
| 查询/刷新/重置 | 刷新后重新选择相同条件查询;重置会清除筛选。 必填 · 填写: 等加载完成后核对 |
32. 刷新重查34到35的实际历史
**操作位置:*数据中心→*历史数据 **操作步骤:**刷新后重新选择相同条件,等加载结束,核对 34→34→35。

01:58:41为34、恢复上报01:58:49仍34、01:58:50为35;两条34是不同独立消息,不是重复入库。
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 设备与字段 | 选择平台网页温控设备及温度或设定温度。 必填 · 填写: 网页温控/温度、设定温度 |
| 时间范围 | 覆盖本轮实际样本和状态上报时间。 必填 · 填写: 2026-10-13 01:57~02:00 |
| 查询/刷新/重置 | 刷新后重新选择相同条件查询;重置会清除筛选。 必填 · 填写: 等加载完成后核对 |
温度查询2026-10-13 01:57~01:58,可见20~29。设定温度查询01:58~02:00,01:58:41为34,恢复上报01:58:49仍34,01:58:50为35。刷新后重新选择相同条件,等待加载结束再核对。
两条34是不同消息的独立状态,不是重复入库。再次验收记录新的时间窗口与新id,保留旧历史;不以工具收发计数或页面相同数值的行数代替逐条关联。
八、结束与再次验收
33. 结束收发并保留会话
操作位置:FMQX网页版→网页温控器→统计信息 操作步骤:停止发送并点击断开,确认已断开。

结束收发并保留会话
截图重点说明
| 字段 / 控件 | 说明 |
|---|---|
| 结束与保留 | 只断开和停止发送,保留产品、设备、会话及历史。 必填 · 填写: 当前已断开;本次最后温度29/设定32,旧历史仍保留 |
| 连接/断开 | 连接后确认真实详情显示WebSocket,错误提示要解除后继续。 必填 · 填写: 已连接/已断开 |
结束只断开FMQX并停止发送,产品、设备、两个模型、保存会话及历史全部保留。本次最后温度29、设定32;原恢复示例的35仍可在旧历史中查询。当前值存在不表示会话仍连接。
再次验收复用本篇正式会话与产品,核对WebSocket实际通道、MQTT身份、正确订阅启用及错误默认订阅禁用。使用新id逐条发送至少十个不同样本,下发范围内的新目标,确认设备实收、演示回复、人工独立状态、平台实时与历史,刷新重查,再执行断开重连;结束继续断开保留资源。
字段与参数参考
JSON接入向导
| 字段 / 控件 | 填写说明 |
|---|---|
| 接入来源 | 本篇创建独立产品;已有本篇资源复验直接复用。 必填 · 填写: 新建产品已有产品:复用同型号配置添加设备;复用同型号配置添加设备。新建产品:创建本篇独立型号;创建本篇独立型号。复制产品:从已有配置复制;从已有配置复制。使用模板:从模板开始;从模板开始。 |
| 产品名称 | 给这类网页温控设备取清晰业务名。 必填 · 填写: FastBee_网页温控 |
| JSON样例 | 从设备实际报文提取两个属性草稿。 必填 · 填写: {"FastBee_temperature":29,"FastBee_setpoint":30} |
| 字段、整数类型与路径 | 两个属性与实际JSON键一一对应。 必填 · 填写: $.FastBee_temperature;$.FastBee_setpoint |
| 设备标识 | MQTT连接身份与上下行主题都从此编号构成,不能随机替换。 必填 · 填写: FastBee_WS_Tutorial_01 |
| 设备名称 | 用于定位当前平台设备;FMQX最终会话名为网页温控器。 必填 · 填写: FastBee_网页温控 |
| 接入协议 | 平台使用JSON/MQTT,WebSocket是MQTT的传输通道。 必填 · 填写: JSON/MQTT |
| 接入概况 | 核对当前产品、一台设备和两个字段。 必填 · 填写: 1台、2字段 |
功能定义
| 字段 / 控件 | 填写说明 |
|---|---|
| 模型翻译 | 填写清晰英文名称,完成必填项后修改保存。 必填 · 填写: Temperature/Setpoint修改后须发布。 |
| 模型标识 | 上报键与模型标识逐字一致。 必填 · 填写: FastBee_temperature/FastBee_setpoint修改后须发布。 |
| 模型类别 | 本篇读数及设定都采用属性。 必填 · 填写: 属性修改后须发布。属性:保存读数或可写设定;保存读数或可写设定。功能:本篇不使用独立功能模型;本篇不使用独立功能模型。事件:本篇不使用事件模型;本篇不使用事件模型。 |
| 只读数据 | 温度勾选;设定取消只读以提供控制入口。 必填 · 填写: 温度勾选,设定不勾选修改后须发布。勾选:只展示上报读数;只展示上报读数。不勾选:允许按权限下发设定;允许按权限下发设定。 |
| 历史存储 | 两个字段都开启,保存后续上报历史。 必填 · 填写: 勾选修改后须发布。勾选:记录后续属性值;记录后续属性值。不勾选:无法按本篇核对后续历史;无法按本篇核对后续历史。 |
| 图表展示/实时监测 | 温度开启,设定关闭;重新核对只读联动。 必填 · 填写: 温度开启,设定关闭修改后须发布。勾选:展示读数,注意只读联动;展示读数,注意只读联动。不勾选:本篇设定采用的展示方式;本篇设定采用的展示方式。 |
| 分享权限 | 本篇在所在租户使用,不开放分享。 必填 · 填写: 不勾选修改后须发布。勾选:按租户业务决定分享范围;按租户业务决定分享范围。不勾选:保持本篇现有权限;保持本篇现有权限。 |
| 整数范围、单位与步长 | 温度-40~100℃;设定16~35℃;步长1。 必填 · 填写: 温度-40~100;设定16~35;℃;步长1修改后须发布。 |
| 计算公式 | 本例直接使用整数,不做公式转换。 选填 · 填写: 留空修改后须发布。 |
| 修改/取消 | 修改保存当前模型;取消不提交。 修改后须发布。 |
发布与生效
| 字段 / 控件 | 填写说明 |
|---|---|
| 发布产品 | 保存后发布;已发布产品编辑前先取消发布。 |
| 接入同步结果 | APPLIED表示接入节点已应用本次配置。 必填 · 填写: APPLIED,失败0 |
FMQX网页版MQTT WebSocket
| 字段 / 控件 | 填写说明 |
|---|---|
| 导入配置 | 将下方不含密码的UTF-8 JSON导入WebSocket教程分组。 修改后须重连。 |
| 连接名称 | 识别本篇最终保留会话。 必填 · 填写: FastBee_网页温控器修改后须重连。 |
| Host / IP | 填写FMQ WebSocket接入地址;127.0.0.1仅适用于同机。 必填 · 填写: 127.0.0.1修改后须重连。 |
| Port | 使用WebSocket监听端口,不能混用普通MQTT端口。 必填 · 填写: 8084修改后须重连。 |
| WebSocket路径 | 导入配置的路径与FMQ入口一致。 必填 · 填写: /mqtt修改后须重连。 |
| Client ID | 使用平台该设备的MQTT连接身份;不要点随机生成替换。 必填 · 填写: S&FastBee_WS_Tutorial_01&876&1修改后须重连。 |
| 随机生成 | 本篇采用固定设备身份,不使用随机生成。 修改后须重连。 |
| Username | 填写平台提供的设备连接用户名。 必填 · 填写: admin(以设备连接参数为准)修改后须重连。 |
| Password | 从平台该设备连接参数安全获取并填写;保存后的凭据不会在此回显。 必填 · 填写: 填写本设备凭据,不写入手册修改后须重连。 |
| MQTT Version | 本篇选择3.1.1。 必填 · 填写: 3.1.1修改后须重连。3.1:本篇未验证;本篇未验证。3.1.1:本篇已验证的MQTT版本;本篇已验证的MQTT版本。5.0:本篇未验证,需另行核对兼容性;本篇未验证,需另行核对兼容性。 |
| Keep Alive | MQTT保活间隔,单位秒。 必填 · 填写: 60秒修改后须重连。 |
| Clean Session | 本篇开启,恢复后重新核对订阅。 必填 · 填写: 开启修改后须重连。开启:使用本篇已验证配置,重新建立当前订阅;使用本篇已验证配置,重新建立当前订阅。关闭:持久会话行为本篇未验证;持久会话行为本篇未验证。 |
| TLS / SSL | 本地本篇使用未加密WebSocket;外部环境以管理员入口要求为准。 必填 · 填写: 关闭修改后须重连。关闭:本地ws入口已验证;本地ws入口已验证。开启:需wss入口及证书参数,本篇未验证;需wss入口及证书参数,本篇未验证。 |
| 连接超时 | 连接等待上限,单位毫秒。 必填 · 填写: 5000毫秒修改后须重连。 |
| 自动重连 | 本篇关闭,手工执行断开与恢复。 必填 · 填写: 关闭修改后须重连。关闭:按本文手工恢复并核对;按本文手工恢复并核对。开启:需进一步验收自动重试行为;需进一步验收自动重试行为。 |
| 重连间隔 | 只有自动重连开启时才参与重试;本篇不开启。 必填 · 填写: 3000毫秒修改后须重连。 |
| 测试连接 | 连接测试不替代真实上报、订阅和下行验证。 修改后须重连。 |
| 保存配置 | 保存正确连接及凭据,后续复用本篇会话。 修改后须重连。 |
| 连接/断开 | 连接后确认真实详情显示WebSocket,错误提示要解除后继续。 修改后须重连。 |
| 连接详情 | 头部MQTT表示应用协议;详情传输通道应为WebSocket。 必填 · 填写: WebSocket修改后须重连。 |
| 消息编号 | 每条新上报使用独立id,复验使用全新编号。 必填 · 填写: 独立id,不重放已处理编号修改后须重连。 |
| 发布内容与发送 | 发送完整JSON;本场景设备身份由MQTT连接和主题确定。 修改后须重连。 |
| 接收记录 | 展开完整消息,核对主题、目标值、时间与字节数。 必填 · 填写: 本次32℃指令;原恢复示例35℃指令,分别核对编号修改后须重连。 |
| 演示自动回复 | FMQX jsonDevice接受设定并回复;状态随后由操作员独立重新上报。 必填 · 填写: 34次数1;35次数2修改后须重连。 |
订阅与上报主题
| 字段 / 控件 | 填写说明 |
|---|---|
| 下行订阅主题 | 正确下行主题保持启用,用于接收平台属性设定。 必填 · 填写: /876/FastBee_WS_Tutorial_01/function/get修改后须重连。 |
| 错误默认主题 | 保留自动默认项但禁用,避免删除后重连又被自动生成。 必填 · 填写: S&FastBee_WS_Tutorial_01&876&1/function/get;active=false修改后须重连。 |
| 上报与回复主题 | 本篇属性和演示回复均发布到该设备上报主题。 必填 · 填写: /876/FastBee_WS_Tutorial_01/property/post修改后须重连。 |
| QoS | 属性上报与订阅配置采用1,平台实际下行卡显示0。 必填 · 填写: 上报1;下行实收0修改后须重连。0:不使用MQTT确认交付,本篇下行实收显示此项;不使用MQTT确认交付,本篇下行实收显示此项。1:至少一次交付语义,本篇上报采用此项;至少一次交付语义,本篇上报采用此项。2:本篇未验证;本篇未验证。 |
设备运行状态
| 字段 / 控件 | 填写说明 |
|---|---|
| 设定滑块与纸飞机 | 核对待发提示值后单次发送,不把滑块待发值当作设备当前值。 必填 · 填写: 本次32℃;原10月13日参考34℃、恢复后35℃ |
| 平台当前值 | 独立属性状态上报后的实际当前值。 必填 · 填写: 本次温度29、设定32;原恢复示例温度29、设定35 |
历史数据
| 字段 / 控件 | 填写说明 |
|---|---|
| 设备与字段 | 选择平台网页温控设备及温度或设定温度。 必填 · 填写: 网页温控/温度、设定温度 |
| 时间范围 | 覆盖本轮实际样本和状态上报时间。 必填 · 填写: 2026-10-13 01:57~02:00 |
| 查询/刷新/重置 | 刷新后重新选择相同条件查询;重置会清除筛选。 |
停止与恢复
| 字段 / 控件 | 填写说明 |
|---|---|
| 结束与保留 | 只断开和停止发送,保留产品、设备、会话及历史。 必填 · 填写: 当前已断开;本次最后温度29/设定32,旧历史仍保留 |
| 设备统计与历史曲线 | 首次进入后等待历史曲线加载,按字段和时间核对数据。 必填 · 填写: 进入设备统计后首次加载曲线 |
| 本次历史记录 | 核对独立状态上报的时间与值;相同值的不同消息不自动视为重复。 必填 · 填写: 设定32℃,刷新后仍存在 |
| 本次查询时间 | 使用完整日期和起止时间;截图输入框可能缩略显示。 必填 · 填写: 2026-10-15 20:58:00 ~ 2026-10-15 20:59:00 |
| 本次执行应答 | 本次只新增一次执行;计数为保留设备状态机累计值。 必填 · 填写: 同一指令编号;成功200;设定32;累计次数5 |
遇到问题时先查哪里
| 看到什么现象 | 可能原因 | 先检查哪里 | 如何恢复 |
|---|---|---|---|
| WebSocket连接失败 | 入口地址、端口、路径、TLS或MQTT身份不符。 | 本例8084、/mqtt、MQTT3.1.1、TLS关闭;身份来自本设备连接参数。 | 修正并保存,再连接核对详情WebSocket和设备身份。 |
| 已连接但下行订阅被拒绝 | 自动默认主题与平台允许的下行主题不一致。 | 正确/876/.../function/get启用,错误S&.../function/get禁用保留。 | 不要删除错误默认项后直接重连;按本配置保留active=false再恢复。 |
| 断开重连又出现错误默认订阅 | 本篇观察到删除默认项后界面会自动补建。 | 检查导入配置同时保留正确启用项和错误禁用项。 | 复用正式会话,重新核对订阅后先上报新状态再控制。 |
| 指令实收但没有回复或状态更新 | 演示状态机或连接已异常,仅实收不足以通过。 | 核对自动回复对应id、目标、成功码和执行次数,再看独立属性状态。 | 停止重复下发,保存失败时间;修正连接与配置后用新指令重新闭环。 |
| 自动回复成功但平台当前值没变 | 本篇回复与属性状态分别发送,仍需人工独立状态上报。 | 回复之后是否发布新id的29/目标值到property/post。 | 独立发布当前状态,再核对实时与历史;不把演示当作物理动作。 |
| 输入Password后仍不认证 | 凭据来自其他设备、身份随机改动或未保存。 | Client ID、Username、Password均取同一设备连接参数。 | 安全重新填写并保存,再测试;不在截图、配置文件或手册写真实密码。 |
| 十样本历史缺值 | 主题、消息编号、字段或查询时间不一致。 | 本设备property/post主题、新id、温度20~29及正确日期。 | 保留旧数据,用新编号定向补测,确认平台收到再继续。 |
| 刷新后查不到34或35 | 选错字段或设备,时间窗口没有覆盖独立上报。 | 本设备设定温度,01:58~02:00,等待加载结束。 | 重选相同条件查询;历史开关只保证之后采集,不自动补旧数据。 |

