物聯網平台為裝置端開發提供了Link SDK,並在SDK中封裝了裝置端與物聯網平台互動通訊的Alink協議。您可以直接使用裝置端Link SDK開發裝置。如果嵌入式環境複雜,已提供的裝置端Link SDK不能滿足您的需求,您也可以自行封裝Alink協議資料,建立裝置與物聯網平台的通訊。
概述
Alink協議是針對物聯網開發領域設計的一種資料交換規範,資料格式是JSON,用於裝置端和物聯網平台的雙向通訊,更便捷地實現和規範了裝置端和物聯網平台之間的業務資料互動。
物聯網平台為裝置端開發提供的各語言Link SDK及功能特性說明,請參見裝置端Link SDK。
物聯網平台各功能的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)資料
序號 說明 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查詢裝置上報的事件歷史資料。
調用裝置服務或設定屬性
- 非同步服務調用或屬性設定
序號 說明 1 在物聯網平台進行服務調用。 - 設定屬性:通過物聯網平台介面SetDeviceProperty為裝置設定具體屬性。
- 調用服務:通過物聯網平台介面InvokeThingService來非同步呼叫服務。
定義服務時,調用方式選擇為非同步服務即為非同步呼叫。
1.1 物聯網平台對您提交的參數進行校正。 1.2 物聯網平台採用非同步呼叫方式下發資料給裝置,並返回叫用作業結果。若沒有報錯,則結果中攜帶下發給裝置的訊息ID。 對於透傳格式(透傳/自訂)資料,則會先調用資料解析指令碼中的
protocolToRawData
方法,對資料進行資料格式轉換,再將轉換後的資料下發給裝置。2 裝置收到資料後,進行業務處理。 說明 透傳格式(透傳/自訂)和非透傳格式(Alink JSON)資料,處理訊息的Topic不同,詳細說明,請參見設定裝置屬性和裝置服務調用(非同步呼叫)。3 裝置完成業務處理後,返回處理結果給物聯網平台。 物聯網平台收到處理結果的後續操作:
- 若是透傳格式資料,將調用資料解析指令碼中的
rawDataToProtocol
方法,對裝置返回的結果進行資料格式轉換。 - 若配置了規則引擎,則會根據資料流轉規則,將資料流轉到資料目的地(其他Topic或雲產品)中。重要
- 對於透傳格式資料,規則引擎擷取到的資料是經過指令碼解析之後的資料。
- 設定資料流轉時,資料來源的Topic設定為物模型資料上報的
/${productKey}/${deviceName}/thing/downlink/reply/message
。詳細說明,請參見設定資料流轉規則或添加待流轉的資料來源。
- 同步服務調用
序號 說明 1 通過物聯網平台介面InvokeThingService,來調用同步服務(定義服務時,調用方式選擇為同步的服務即為同步調用)。 1.1 物聯網平台對您提交的參數進行校正。 1.2 使用同步調用方式,調用RRPC的Topic,下發資料給裝置。 對於透傳格式(透傳/自訂)資料,則會先調用資料解析指令碼中的
protocolToRawData
方法,對資料進行資料格式轉換,再將轉換後的資料下發給裝置。1.3 物聯網平台同步等待裝置返回結果。 2 裝置完成業務處理後,返回處理結果給物聯網平台。若逾時,則返回逾時的錯誤資訊。 2.1 物聯網平台收到裝置處理結果後,返回結果給調用者。 若是透傳格式資料,將調用資料解析指令碼中的
rawDataToProtocol
方法,對裝置返回的結果進行資料格式轉換。
拓撲關係
序號 | 說明 | |
1 | 子裝置串連到網關。 若添加拓撲關係需要第三方介入,可通過下面的步驟通知網關添加拓撲關係。 | |
1.1 | 網關通過發現裝置列表的Topic:/sys/${productKey}/${deviceName}/thing/list/found ,上報發現的子裝置資訊。物聯網平台收到上報資料後,若配置了規則引擎,則會根據資料流轉規則,將資料流轉到資料目的地(雲產品)中。 | |
1.2 | 您可從雲產品中擷取子裝置資料。 | |
1.3 | 您可決定是否添加網關與子裝置的拓撲關係。 如果需要添加拓撲關係,可以調用物聯網平台介面NotifyAddThingTopo,通過Topic: | |
2 |
| |
3 | 您刪除網關與子裝置的拓撲關係:網關通過刪除拓撲關係的Topic:/sys/${productKey}/${deviceName}/thing/topo/delete ,來刪除網關和子裝置的拓撲關係。 | |
4 | 您可以調用物聯網平台介面GetThingTopo,通過Topic:/sys/${productKey}/${deviceName}/thing/topo/get 來擷取網關和子裝置的拓撲關係。 |