使用Wi-Fi接入网络的设备可以主动将网络状态信息和网络错误数据,通过指定Topic上报至云端。下面介绍设备上报网络状态的Topic、数据格式和网络错误数据说明。

说明 如果设备使用AliOS Things 3.0版及以上系统,会自动检测和上报网络状态数据。

设备主动上报网络状态

数据上行。

请求Topic: /sys/${productKey}/${deviceName}/_thing/diag/post

响应Topic:/sys/${productKey}/${deviceName}/_thing/diag/post_reply

Alink请求数据格式如下:

  • 当前数据:设备采集后立即上报的数据。

    以下两种情况下,设备立即上报网络状态数据:

    • 当网络出现异常时,设备采集到异常指标,会立即上报数据到云端。
    • 您设置了定时采集,设备会在指定时间采集数据,并立即上报数据。

    假设当前时间是2019-08-22 08:10:29,设备检测到网络问题,立即上报数据。网络异常的数据格式:

    {
      "id": "123",
      "version": "1.0",
      "params": {
        "p": {
          "wifi": {
            "rssi": 75,
            "snr": 20,
            "per": 10,
            "err_stats":"10,02,01;10,05,01"
          },
          "_time": 1566432629000
        },
        "model": "quantity=single|format=simple|time=now"
      }
    }
    说明 定时检测上报的网络正常数据中,err_stats为空。
  • 历史数据:非立即上报的数据。设备在日常诊断中,采集到网络正常的指标数据可以延迟上报。设备可以批量上报历史数据。

    数据格式:

    {
      "id": "123",
      "version": "1.0",
      "params": {
        "p": [
          {
            "wifi": {
              "rssi": 75,
              "snr": 20,
              "per": 10,
              "err_stats":"10,02,01;10,05,01"
            },
            "_time": 1566432629000
          }
        ],
        "model": "format=simple|quantity=batch|time=history"
      }
    }
    说明 如果网络无报错,err_stats为空。
表 1. 请求参数说明
参数类型说明
idString消息ID号。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
versionString协议版本号,目前协议版本号唯一取值为1.0
paramsObject请求入参。
wifiObject设备的连网方式为Wi-Fi,该参数值由网络状态的四个指标组成。
rssiinteger无线信号接收强度。
snrinteger无线信号信噪比。
perinteger数据丢包率。
err_statsString错误信息。仅当设备检测到网络异常后,上报数据包含该参数。

格式:"type,code,count;type,code,count",如"10,02,01;10,05,01"

参数说明:

  • type:错误类型
  • code:错误原因
  • count:错误数量

具体错误请参见表err_stats

_timeLong时间戳。
说明 时间戳可以为空。为空时,控制台上设备网络状态不展示采集时间。
modelString消息体模式。包含:
  • format:数据格式。仅支持simple ,表示数据为精简格式。
  • quantity:数量。取值:
    • single:表示上报单条数据。
    • batch:表示上报多条数据,仅用于上报历史数据。
  • time:时间。取值:
    • now:表示上报当前数据。
    • history:表示上报历史数据。
表 2. err_stats
错误类型含义错误原因
0x00无线环境参数。
  • 信号强度(RSSI):0x01
  • 信噪比(SNR):0x02
  • 丢包率(drop ratio):0x03
0x10设备与云端建立连接失败。
  • 路由器连接失败(Wi-Fi fail):0x01
  • DHCP失败,获取IP地址失败(DHCP fail):0x02
  • DNS失败,解析云端的域名失败(DNS fail):0x03
  • TCP握手失败(TCP fail):0x04
  • TLS握手失败(TLS fail):0x05
0x20设备与云端的网络异常
  • 云端主动断开与设备的连接(CLOUD_REJECT):0x01
  • 设备数据上下行失败(RW_EXCEPTION):0x02
  • 设备与云端的PING操作异常(PING_EXCEPTION):0x03
0x30设备运行异常。
  • 看门狗复位重启(WD_RST): 0x01
  • 设备存储异常重启(PANIC_ERR):0x02
  • 设备掉电上电重启(RE-POWER):0x03
  • 设备运行异常重启(FATAL_ERR):0x04
0x40设备内存动态监控。
  • 内存总量(type of total size):0x01
  • 空闲内存总量(type of free size):0x02
0x50BLE异常。BLE异常

Alink响应数据格式:

{
  "id": "123",
  "version": "1.0",
  "code": 200,
  "data": {}
}
表 3. 响应参数说明
参数类型说明
idString消息ID。String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。
codeInteger返回结果,200代表成功。
versionString协议版本号,目前协议版本号唯一取值为1.0
dataObject值为空。