使用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值為空。