Skip to content

1. AS 数据 ​

AS 数据是 NS 将 LoRaWAN 帧解密、解帧后输出的结构化应用层报文,userdata.payload 仍为 Base64 编码,但 LoRaWAN 加密已去除。这一层是设备原始上报数据和 ThinkLink 物模型解析之间的中间层,适合需要自定义协议解析或对接第三方平台的场景。

AS 数据页面:解密后的结构化上行数据

数据流位置 ​

mermaid
flowchart LR
    DEV[LoRaWAN 设备]:::dim
    GW[网关]:::dim
    NS[NS 数据\nMAC层原始帧]:::dim
    AS[AS 数据\n解密结构化报文]:::highlight
    RT[实时数据\n物模型解析值]:::dim
    HIS[历史数据\n归档查询]:::dim

    DEV -->|无线信号| GW
    GW -->|SEMTECH UDP| NS
    NS -->|LoRaWAN 解密| AS
    AS -->|物模型解析| RT
    RT -->|持久化| HIS

    classDef highlight fill:#1a6fcf,color:#fff,stroke:#1a6fcf
    classDef dim fill:#f0f0f0,color:#888,stroke:#ddd

你在这里:AS 数据已完成 LoRaWAN 解密,但尚未经过物模型解析。如果你需要温度、湿度等业务数值,请直接查看实时数据。

AS 数据的报文格式遵循 PTL-S05-asp通信协议V3.2。


1.1. 上行数据示例(up) ​

json
{
  "if": "loraWAN",
  "gwrx": [
    {
      "eui": "5a53012501030056",
      "chan": 0,
      "lsnr": 14.2,
      "rfch": 0,
      "rssi": -21,
      "time": "2025-09-24T07:07:03.807677Z",
      "tmms": 0,
      "tmst": 1152383989,
      "ftime": 0
    }
  ],
  "type": "data",
  "token": 56368,
  "moteTx": {
    "codr": "4/5",
    "datr": "SF7BW125",
    "freq": 470.9,
    "modu": "LORA",
    "macAck": "",
    "macCmd": ""
  },
  "geoInfo": {
    "type": "gw:wifi",
    "accuracy": 50,
    "altitude": 0,
    "latitude": 34.19863,
    "longitude": 108.86273
  },
  "moteeui": "6353012af1090498",
  "version": "3.0",
  "userdata": {
    "port": 11,
    "class": "ClassA",
    "seqno": 27464,
    "payload": "IQcDDG4BAADaBB0C538J",
    "confirmed": false
  }
}
字段说明
moteeui上报设备的 EUI
gwrx接收该帧的网关列表及各网关信号质量(RSSI/LSNR)
userdata.payloadBase64 编码的原始业务负载,需物模型解析
userdata.portFPort,用于区分业务数据类型
userdata.seqno设备帧序号(用于排查重发/丢包)
geoInfo网关地理位置(可用于辅助定位)

1.2. 下行数据示例(dn) ​

json
{
  "dn": {
    "if": "loraWAN",
    "type": "data",
    "token": 1758686562078,
    "moteeui": "6353012af1099301",
    "version": "3.0",
    "userdata": {
      "port": 51,
      "type": "data",
      "fpend": false,
      "payload": "/mgSBgNWBQZoHBA1MzMzMzMzM04zAAAAAAAAABY=",
      "dnWaitms": 3000,
      "TxUTCtime": "",
      "confirmed": false,
      "intervalms": 0
    }
  }
}
字段说明
moteeui目标设备 EUI
userdata.portFPort,51 常用于参数配置类指令
userdata.payload下发指令内容(Base64 编码)
userdata.dnWaitms等待设备下行窗口的最大延迟(ms)
userdata.confirmed是否需要设备 ACK 确认


1.3. 适用场景 ​

场景使用 AS 数据的原因
自定义协议解析payload 已解密,可直接用自己的 parser 处理
对接第三方平台通过 MQTT 订阅 AS topic,推送到私有系统
确认下行是否被 NS 调度查看 dn 记录是否出现
调试物模型 parser对比 AS payload 与实时数据的解析结果

订阅 AS 数据:通过 MQTT 订阅 /v32/{tenant}/as/up/data/#(上行)和 /v32/{tenant}/as/dn/data/#(下行),可实时接收 AS 层数据。具体 topic 规则参见 ThinkLink 协议说明。


1.4. FPort 常见用途 ​

userdata.port(FPort)字段用于区分同一设备上的不同业务通道。以下为常见约定:

FPort用途
51透传通道,原始字节直接透传,不做协议封装
201固件 OTA 升级
209心跳包,用于确认设备在线状态
214参数配置与读取(下行写参数,上行读回当前值)

以上为设备侧约定端口,第三方LoRaWAN标准设备的端口定义以对应设备说明书为准。


1.5. 故障诊断 ​

当用户无法收到数据时,请按以下链路逐层排查:

第一步:确认网关在线 ​

在 ThinkLink 运维管理 → 网关管理 中,确认对应网关状态为在线。

网关离线时所有后续数据均不可能到达,排查其他层之前必须先解决网关连接问题。


第二步:在 NS 数据中确认有无上行包 ​

进入 网络数据 → NS 数据,按以下方式搜索:

情形搜索字段说明
设备从未入网或刚复位DevEUIJoin Request / Join Accept 帧用 DevEUI 标识,尚无 DevAddr
设备已入网,正常上报DevAddr入网后所有数据帧使用动态分配的 DevAddr,不再用 DevEUI
  • NS 无数据:设备信号未到达网关,或网关未正确接入 NS。检查设备是否在信号覆盖范围内,或查看网关日志。
  • NS 有数据:继续第三步。

第三步:在 AS 数据中确认解密是否成功 ​

进入 网络数据 → AS 数据,用同一 DevEUI 或 DevAddr 搜索。

现象可能原因处理方法
NS 有数据,AS 为空LoRaWAN 密钥错误(AppKey / AppSKey / NwkSKey 不匹配)核对设备档案中的密钥,与设备烧录的密钥保持一致
NS 有数据,AS 为空设备档案未创建或 enable 为 false在设备管理中添加 LoRaWAN 档案,确认 enable 已开启
AS 有数据解密成功,继续第四步—

第四步:确认物模型是否正确配置 ​

在 应用数据 → 实时数据 中查看是否有解析后的业务数值。

现象可能原因处理方法
AS 有数据,实时数据为空设备未绑定物模型在模型管理中为该设备绑定物模型
AS 有数据,实时数据为空物模型 parser 脚本有错误打开物模型编辑器,用 AS 数据中的 payload 手动调试 parser
AS 有数据,实时数据部分字段为空Parser 未覆盖对应 FPort 或字段检查 parser 中对应 port 分支的解析逻辑

1.6. IP 数据通道 ​

除普通 AS 上下行数据外,平台还支持串口网关 IP 数据通道:

方向Topic
上行/v32/{tenant}/as/up/dataIP/{eui}
下行/v32/{tenant}/as/dn/dataIP/{eui}

该通道主要用于 gwSerial 设备。上行数据会进入 IP 数据 页面,同时平台会尝试按设备 EUI 进入设备 payload parser。RPC 脚本返回 type: "gwSerial" 时,会通过 as/dn/dataIP 下发。