全部產品
Search
文件中心

IoT Platform:Alink協議

更新時間:Jun 30, 2024

物聯網平台為裝置端開發提供了Link SDK,並在SDK中封裝了裝置端與物聯網平台互動通訊的Alink協議。您可以直接使用裝置端Link SDK開發裝置。如果嵌入式環境複雜,已提供的裝置端Link SDK不能滿足您的需求,您也可以自行封裝Alink協議資料,建立裝置與物聯網平台的通訊。

概述

Alink協議是針對物聯網開發領域設計的一種資料交換規範,資料格式是JSON,用於裝置端和物聯網平台的雙向通訊,更便捷地實現和規範了裝置端和物聯網平台之間的業務資料互動。

物聯網平台為裝置端開發提供的各語言Link SDK及功能特性說明,請參見裝置端Link SDK

物聯網平台各功能的Alink協議說明,如下表所示。

表 1. Alink協議說明
功能資料格式說明
裝置接入
訊息通訊
裝置管理
監控營運

以下為您介紹Alink協議下,裝置的上線流程和資料上下行原理。

上線流程

裝置在物聯網平台的上線流程,可以按照裝置類型,分為直連裝置與子裝置的接入流程。主要包括:裝置註冊、啟用上線和資料上報三個流程。

直連裝置接入有兩種方式:

  • 使用一機一密方式提前燒錄裝置認證(ProductKey、DeviceName和DeviceSecret),註冊裝置,上線,然後上報資料。
  • 使用一型一密動態註冊提前燒錄產品認證(ProductKey和ProductSecret),註冊裝置, 上線,然後上報資料。

子裝置接入流程通過網關發起,具體接入方式有兩種:

  • 使用一機一密提前燒錄裝置認證(ProductKey、DeviceName和DeviceSecret),子裝置上報裝置認證給網關,網關添加拓撲關係,複用網關的通道上報資料。
  • 使用動態註冊方式提前燒錄ProductKey,子裝置上報ProductKey和DeviceName給網關,物聯網平台校正DeviceName成功後,下發DeviceSecret。子裝置將獲得的裝置認證資訊上報網關,網關添加拓撲關係,通過網關的通道上報資料。
裝置上報資料

裝置上報屬性或事件

  • 透傳格式(透傳/自訂)資料 裝置透傳資料
    序號說明
    1裝置通過透傳格式資料的Topic,上報透傳資料。Topic說明,請參見裝置屬性、事件、服務
    1.1物聯網平台通過資料解析指令碼先對裝置上報的資料進行解析:呼叫指令碼中的rawDataToProtocol方法,將裝置上報的資料轉換為物聯網平台標準資料格式(Alink JSON格式)。

    資料解析的詳細內容,請參見資料解析

    1.2物聯網平台使用轉換後的Alink JSON格式資料進行業務處理。

    若配置了規則引擎,則會根據資料流轉規則,將資料流轉到資料目的地(其他Topic或雲產品)中。

    重要
    • 規則引擎擷取到的資料是經過指令碼解析之後的資料。
    • 設定資料流轉時,資料來源的Topic設定為物模型資料上報/${productKey}/${deviceName}/thing/event/property/post/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post。詳細說明,請參見設定資料流轉規則添加待流轉的資料來源
    1.3物聯網平台叫用資料解析指令碼中的protocolToRawData方法,對結果資料進行格式轉換,將資料解析為裝置可以接收的資料格式。
    1.4物聯網平台推送解析後的資料給裝置。
    2您可以通過物聯網平台介面QueryDevicePropertyData查詢裝置上報的屬性歷史資料,通過物聯網平台介面QueryDeviceEventData查詢裝置上報的事件歷史資料。
  • 非透傳格式(Alink JSON)資料 Alink 資料
    序號說明
    1裝置通過非透傳格式資料的Topic,上報透傳資料。Topic說明,請參見裝置屬性、事件、服務
    1.1物聯網平台進行業務處理。

    若配置了規則引擎,則會根據資料流轉規則,將資料流轉到資料目的地(其他Topic或雲產品)中。

    重要 設定資料流轉時,資料來源的Topic設定為物模型資料上報/${productKey}/${deviceName}/thing/event/property/post/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post。詳細說明,請參見設定資料流轉規則添加待流轉的資料來源
    1.2物聯網平台返回處理結果給裝置。
    2您可以通過物聯網平台介面QueryDevicePropertyData查詢裝置上報的屬性歷史資料,通過物聯網平台介面QueryDeviceEventData查詢裝置上報的事件歷史資料。

調用裝置服務或設定屬性

  • 非同步服務調用或屬性設定 Alink 資料轉送
    序號說明
    1在物聯網平台進行服務調用。
    • 設定屬性:通過物聯網平台介面SetDeviceProperty為裝置設定具體屬性。
    • 調用服務:通過物聯網平台介面InvokeThingService來非同步呼叫服務。

      定義服務時,調用方式選擇為非同步服務即為非同步呼叫。

    1.1物聯網平台對您提交的參數進行校正。
    1.2物聯網平台採用非同步呼叫方式下發資料給裝置,並返回叫用作業結果。若沒有報錯,則結果中攜帶下發給裝置的訊息ID。

    對於透傳格式(透傳/自訂)資料,則會先調用資料解析指令碼中的protocolToRawData方法,對資料進行資料格式轉換,再將轉換後的資料下發給裝置。

    2裝置收到資料後,進行業務處理。
    說明 透傳格式(透傳/自訂)和非透傳格式(Alink JSON)資料,處理訊息的Topic不同,詳細說明,請參見設定裝置屬性裝置服務調用(非同步呼叫)
    3裝置完成業務處理後,返回處理結果給物聯網平台。

    物聯網平台收到處理結果的後續操作:

    • 若是透傳格式資料,將調用資料解析指令碼中的rawDataToProtocol方法,對裝置返回的結果進行資料格式轉換。
    • 若配置了規則引擎,則會根據資料流轉規則,將資料流轉到資料目的地(其他Topic或雲產品)中。
      重要
      • 對於透傳格式資料,規則引擎擷取到的資料是經過指令碼解析之後的資料。
      • 設定資料流轉時,資料來源的Topic設定為物模型資料上報/${productKey}/${deviceName}/thing/downlink/reply/message。詳細說明,請參見設定資料流轉規則添加待流轉的資料來源
  • 同步服務調用 Alink 資料轉送
    序號說明
    1通過物聯網平台介面InvokeThingService,來調用同步服務(定義服務時,調用方式選擇為同步的服務即為同步調用)。
    1.1物聯網平台對您提交的參數進行校正。
    1.2使用同步調用方式,調用RRPC的Topic,下發資料給裝置。

    對於透傳格式(透傳/自訂)資料,則會先調用資料解析指令碼中的protocolToRawData方法,對資料進行資料格式轉換,再將轉換後的資料下發給裝置。

    1.3物聯網平台同步等待裝置返回結果。
    2裝置完成業務處理後,返回處理結果給物聯網平台。若逾時,則返回逾時的錯誤資訊。
    2.1物聯網平台收到裝置處理結果後,返回結果給調用者。

    若是透傳格式資料,將調用資料解析指令碼中的rawDataToProtocol方法,對裝置返回的結果進行資料格式轉換。

拓撲關係

Alink 資料轉送
序號說明
1子裝置串連到網關。

若添加拓撲關係需要第三方介入,可通過下面的步驟通知網關添加拓撲關係。

1.1網關通過發現裝置列表的Topic:/sys/${productKey}/${deviceName}/thing/list/found,上報發現的子裝置資訊。

物聯網平台收到上報資料後,若配置了規則引擎,則會根據資料流轉規則,將資料流轉到資料目的地(雲產品)中。

1.2您可從雲產品中擷取子裝置資料。
1.3您可決定是否添加網關與子裝置的拓撲關係。

如果需要添加拓撲關係,可以調用物聯網平台介面NotifyAddThingTopo,通過Topic:/sys/${productKey}/${deviceName}/thing/topo/add/notify通知網關向子裝置添加拓撲關係。

2
  • 網關可通過添加拓撲關係Topic:/sys/${productKey}/${deviceName}/thing/topo/add,直接添加拓撲關係,物聯網平台返回添加的結果。
  • 網關收到添加拓撲關係通知指令後,通過添加拓撲關係Topic,完成添加拓撲關係。
3您刪除網關與子裝置的拓撲關係:網關通過刪除拓撲關係的Topic:/sys/${productKey}/${deviceName}/thing/topo/delete,來刪除網關和子裝置的拓撲關係。
4您可以調用物聯網平台介面GetThingTopo,通過Topic:/sys/${productKey}/${deviceName}/thing/topo/get來擷取網關和子裝置的拓撲關係。