MQTT 设备接入

MQTT 适用于保持连接的设备和网关。本教程采用一机一密:每台直连设备使用自己的身份与设备密钥,网关另行代报子设备。

连接参数

参数 取值
Broker 由当前部署提供的主机、TLS 端口和 CA
MQTT 版本 MQTT 3.1.1 兼容
用户名 {projectKey}/{deviceKey}
密码 当前有效设备密钥
Client ID 稳定且可诊断的设备连接标识
QoS 上下行均为1
retained false

从设备接入配置核对协议与启用状态。TLS 客户端必须校验主机名和 CA。凭据轮换或撤销会影响活跃连接,应使用新凭据重连。

订阅与上报

设备订阅自身下行:

tc/v1/{projectKey}/{deviceKey}/down/#

属性上报 Topic:

tc/v1/{projectKey}/{deviceKey}/up/property/report

示例要求绑定模型中包含两个数值属性。把版本、时间和消息 ID 换成实际值后发送:

{
  "messageId": "01993c89-7b21-7a31-8f90-aabbccddeeff",
  "modelVersion": "1.0.0",
  "occurredAt": "2026-10-08T08:30:00Z",
  "payload": {"temperature": 23.5, "humidity": 55}
}

messageId 为 UUIDv7。occurredAt 是采集时间,不能把模板时间用于每次采集;过度领先服务端时间会被拒绝。payload 非空,标识、类型和范围须匹配模型。每次新采集产生新 ID;同一次消息重试复用原 ID 和原正文。

判断成功

MQTT PUBACK 表示传输层确认。到控制台“消息日志”和设备“属性”“原始属性历史”核对结果,检查值、采集时间及版本。迟到值可能进入历史而不覆盖较新当前值。

认证失败先查项目与设备 Key、秘密状态和协议配置。ACL 拒绝先查 Topic 是否属于自身,不换其他设备的 Topic 尝试绕过。命令格式见命令与期望状态,网关见网关与 Modbus。