切换深色模式
Edge MQTT 数据接口
适用于 Edge 的 MQTT 数据服务器,不用于 Std 网关转发或 MQTT 远程管理。先在输出配置勾选 MQTT,填 Broker、端口、TLS、认证和 Client ID,保存后核对实际连接。
操作视频
连续展示输出选择、数据服务器填写、实际连接测试、保存重启、重新登录回读及接收端验证。重启等待在片中明确提示后缩短。收到的是同一台 DTU 的真实心跳;本次测试 Broker 允许局域网匿名连接,生产认证/TLS和无线下行未验证。
主题与方向
以下为当前默认主题;定制配置按实际发布/订阅主题核对。{gatewayId} 为 16 位网关 EUI,{DevEUI} 为 16 位终端 EUI,不带花括号。
| 主题 | 网关动作 | 应用系统动作 |
|---|---|---|
/gateway/{gatewayId}/up | 发布原生上行 | 订阅 |
/gateway/{gatewayId}/down | 订阅原生下行 | 发布 |
application/0/device/{DevEUI}/rx | 发布兼容上行 | 订阅 |
application/0/device/{DevEUI}/tx | 订阅兼容下行 | 发布 |
gateway/{gatewayId}/event/stats | 发布网关状态(无开头斜杠) | 按需订阅 |
兼容应用主题需要当前配置启用 compatOpen;不能因为原生主题有效就假定兼容主题也已开启。当前普通网页未提供该开关编辑入口,部署未开启时使用原生接口,或由维护方按配套配置启用。旧 1.0.6 文档写两类可混用,仍须满足此条件。
订阅可以用 + 匹配某一级,例如 /gateway/+/up;向一个具体目标发布下行时使用准确主题,不用通配符作为目标。当前应用上行按 QoS 0、非保留发布,接收方按自己的可靠性要求及时保存数据,不将断线期间数据视为保证补发。
原生上行
以下为构造示例,MTIz 解码为 ASCII 123,不是传感器测量案例。
json
{
"app": {
"moteeui": "0011223344556677",
"dir": "up",
"userdata": {
"seqno": 1,
"port": 12,
"payload": "MTIz"
},
"motetx": {
"freq": 471.5,
"modu": "LORA",
"datr": "SF10BW125",
"codr": "4/5",
"adr": false
},
"gwrx": [
{
"eui": "1122334455667788",
"time": "2026-10-17T08:00:00",
"timefromgateway": true,
"chan": 6,
"rfch": 1,
"rssi": -75,
"lsnr": 8
}
]
}
}| 字段 | 类型 / 单位 | 说明 |
|---|---|---|
app.moteeui | HEX 字符串 | 终端 EUI |
userdata.seqno | 整数 | 上行计数;零值可能省略,不用于业务去重的唯一条件 |
userdata.port | 整数 | FPort,按终端协议区分业务 |
userdata.payload | Base64 字符串 | 解密并经当前兼容处理的应用字节,不是整个 LoRaWAN 无线帧;27 字节旧帧的截断例外见数据与解析 |
userdata.decodedData | 可选对象 | 匹配解码器产生的解析结果 |
motetx.freq | 数值,MHz | 终端发送频率 |
motetx.datr | 字符串 | SF 和带宽,例如 SF10BW125 |
motetx.adr | 布尔 | 当前报文生成值,不作为终端 ADR 配置的回读凭据 |
gwrx[] | 数组 | 网关接收信息:EUI、时间、信道、RSSI dBm、LSNR dB |
时间字符串是否有时区后缀按实际报文处理,接收端保留原文;不要把无后缀时间擅自作为 UTC。
网关统计事件
gateway/{gatewayId}/event/stats 是额外的网关状态事件,当前 JSON 有 gatewayID、ip、time、可选位置 location、configVersion、rxPacketsReceived、rxPacketsReceivedOK、txPacketsReceived、txPacketsEmitted、metaData、statsID。它不是 app 业务包;当前 gatewayID 是网关 EUI 原始 8 字节的 Base64(如 ESIzRFVmd4g=),不直接用来替换主题中的 HEX EUI。流量统计、CRC 统计和单台终端业务成功率分开解释。
兼容上行
json
{
"applicationID": "0",
"applicationName": "0",
"deviceName": "0011223344556677",
"devEUI": "0011223344556677",
"rxInfo": [
{
"gatewayID": "1122334455667788",
"name": "Edge",
"time": "2026-10-17T16:00:00+08:00",
"rssi": -75,
"loRaSNR": 8
}
],
"txInfo": {
"frequency": 471500000,
"dr": 2
},
"adr": false,
"fCnt": 1,
"fPort": 12,
"data": "MTIz",
"devAddr": "12345678"
}data 是 Base64;frequency 是 Hz,原生 freq 是 MHz。当前兼容 dr 按 SF12→0 至 SF7→5 生成,不用该简化映射推断所有区域的完整速率计划。这是旧版应用 JSON 兼容格式,不是 ChirpStack V4 网关转发协议;此格式不承诺包含 decodedData。
单播下行
原生接口向 /gateway/{gatewayId}/down 发布:
json
{
"app": {
"moteeui": "0011223344556677",
"userdata": {
"port": 2,
"payload": "AQID"
}
}
}AQID 是示例字节 01 02 03,不是推荐现场命令。userdata.port 和载荷必须符合目标终端的下行协议。兼容方式向目标终端 /tx 发布:
json
{
"devEUI": "0011223344556677",
"fPort": 2,
"data": "AQID"
}兼容 devEUI 可省略并从标准五段主题取值;使用定制主题时建议显式提供。原生消息中的 EUI 用 JSON 字符串,不是 Base64。
可选 Class C 射频字段
app 字段 | 单位 / 规则 |
|---|---|
freq | Hz;省略时用网关当前配置 |
sf | 7~12;省略时用当前配置 |
bandwidth | 0=125kHz,1=250kHz,2=500kHz |
token | 旧组合值,保留兼容;正值存在时优先覆盖 freq/sf,不建议新接入使用 |
旧 token 为 频率kHz × 10 + SF索引,索引 0~5 对应 SF12~SF7。Class A 等下一次上行窗口,由实际调度确定接收参数;当前每个 DevAddr 的等待队列最多 100 条,满后新增请求可能被丢弃,重启会清空队列,不能当作持久任务存储。Class C 也必须与终端窗口一致。CN470 505.3MHz / SF12 只是旧默认示例,不用于所有区域或当前设备。
组播与结果
json
{
"app": {
"groupAddr": "01020304",
"userdata": {
"port": 2,
"payload": "AQID"
}
}
}组播沿用原生 /down 主题,删除 moteeui;两者同时存在时走单播。先在网关与所有目标终端配置相同组地址和两把组密钥,并确认终端按 Class C 接收。无线帧按组地址和组密钥发送,网页成员列表不是无线接收白名单。应用发布成功仅说明 Broker 接受消息,不表示网关解包成功、无线发送完成或终端收到;结合实时记录、队列、终端回复及实际动作验收。
图解:把业务 MQTT 配到哪里

| 页面项目 | 示例 / 填写方法 | 检查点 |
|---|---|---|
| 服务器地址 | broker.example.com 或现场 IP | 此输入框填主机,不填 /gateway/.../up 主题;示例域名需替换 |
| 服务器端口 | 现场 Broker 的监听端口 | 普通 MQTT 常用 1883;TLS 端口由服务提供方确认,不能只开 SSL 而不换配套端口 |
| SSL | 按 Broker 要求开启,配置相应证书 | CA、客户端证书、私钥按 Broker 要求提供;当前配套实现中,填写 CA 内容的连接测试,以及加载自定义证书的正式连接,会跳过服务端证书链与主机名校验;不能仅凭测试成功认定服务器身份已验证 |
| 用户名 / 密码 | Broker 授予的账号 | 不是网页管理账户;有发布/订阅权限 |
| Client ID | 例如 site01-gw-data | 当前网页最多 23 字符,只允许字母、数字、下划线、短横线;同 Broker 内避免冲突 |
保存并重连后,应用先订阅上行主题,再触发一个已登记终端的正常上报。若没有消息,依次核对输出勾选、Broker 连接、主题开头斜杠、EUI 和 ACL;不要先改载荷倍率。
把同一包在三个位置对起来
| 所在位置 | 示例值 | 怎样对应 |
|---|---|---|
| 终端实时页的应用 HEX | 31 32 33 | 三个原始应用字节,教学样本非测量 |
MQTT payload | MTIz | Base64 解码后应仍为 31 32 33 |
| 应用接收记录 | EUI、FPort=12、接收时间 | 与同一终端同一条上行对应;不要把无线 PHY 帧当应用字节 |
下行也按“应用字节 → Base64 → JSON → 具体主题”处理。需要直接运行的订阅、编码和只读调用示例,见接入示例与联调。
G4 实机配置与接收


本次已实际验证 DTU 的 FPort 40 心跳从网关到 MQTT 接收端,并与 HTTP 收到的同一条记录核对原始字节一致。没有验证无线下行或外接仪表采集。连续操作见MQTT 配置实录。