設備上線之前您需要對設備進行身份注冊,標識您的設備。
概述
接入物聯網平臺的設備身份注冊有兩種方式:
一機一密:首先,在物聯網平臺注冊設備,獲取設備證書信息(ProductKey、DeviceName、DeviceSecret)作為設備唯一標識。然后,將設備證書信息預燒錄到設備固件,設備在完成上線建連后,即可向物聯網平臺上報數據。具體內容,請參見一機一密。
設備注冊認證的協議說明,見下表。
設備
支持的協議
設備端注冊開發
相關文檔
直連設備
MQTT
HTTPS
網關子設備
MQTT
一型一密:同一產品下設備燒錄相同產品證書(ProductKey和ProductSecret)。設備所屬產品需開通動態注冊功能。
支持動態注冊包含:
預注冊:在物聯網平臺注冊設備,設備通過動態注冊獲取DeviceSecret。
免預注冊:無需在物聯網平臺注冊設備,設備通過動態注冊獲取ClientID與DeviceToken的組合。
說明HTTPS協議不支持一型一密免預注冊方式。
設備完成注冊的流程,請參見一型一密。其中,網關子設備僅支持預注冊方式,注冊流程說明,請參見網關與子設備。
設備注冊認證的協議說明,見下表。
設備
支持的協議
設備端注冊開發
數據格式說明
直連設備
MQTT
HTTPS
網關子設備
MQTT
子設備的MQTT動態注冊
請求Topic:
/sys/${productKey}/${deviceName}/thing/sub/register
響應Topic:
/sys/${productKey}/${deviceName}/thing/sub/register_reply
請求數據格式:
{
"id": "123",
"version": "1.0",
"sys":{
"ack":0
},
"params": [
{
"deviceName": "deviceName1234",
"productKey": "a1234******"
}
],
"method": "thing.sub.register"
}
響應數據格式:
{
"id": "123",
"code": 200,
"data": [
{
"iotId": "12344",
"productKey": "a1234******",
"deviceName": "deviceName1234",
"deviceSecret": "xxxxxx"
}
]
}
參數說明如下表。
參數 | 類型 | 說明 |
id | String | 消息ID號。String類型的數字,取值范圍0~4294967295,且每個消息ID在當前設備中具有唯一性。 |
version | String | 協議版本號,目前協議版本號唯一取值為1.0。 |
sys | Object | 擴展功能的參數,其下包含各功能字段。 說明 使用設備端SDK開發時,如果未設置擴展功能,則無此參數,相關功能保持默認配置。 |
ack | Integer | sys下的擴展功能字段,表示是否返回響應數據。
重要 該功能配置說明,請參見物模型使用示例。 如果未配置該功能,則無此參數,云端默認返回響應數據。 |
params | List | 子設備動態注冊的參數。 |
deviceName | String | 子設備的名稱。 |
productKey | String | 子設備的產品ProductKey。 |
iotId | String | 設備的唯一標識ID。 |
deviceSecret | String | 設備密鑰。 |
method | String | 請求方法,取值 |
code | Integer | 結果信息。 |
錯誤碼說明如下表。
錯誤碼 | 消息 | 描述 |
460 | request parameter error | 請求參數錯誤。 |
6402 | topo relation cannot add by self | 設備不能將自己添加為自己的子設備。 |
401 | request auth error | 簽名校驗失敗。 |
直連設備的HTTPS動態注冊
URL模板:
https://iot-auth.${YourRegionId}.aliyuncs.com/auth/register/device
HTTP方法:POST
請求數據格式:
POST /auth/register/device HTTP/1.1 Host: iot-auth.cn-shanghai.aliyuncs.com Content-Type: application/x-www-form-urlencoded Content-Length: 123 productKey=a1234******&deviceName=deviceName1234&random=567345&sign=adfv123hdfdh&signMethod=HmacMD5
響應數據格式:
{ "code": 200, "data": { "productKey": "a1234******", "deviceName": "deviceName1234", "deviceSecret": "adsfw******" }, "message": "success" }
參數說明如下表。
參數
類型
說明
Method
String
請求方法,只支持POST。
Host
String
HTTPS動態注冊的設備接入地址,格式為
iot-auth.${YourRegionId}.aliyuncs.com
。${YourRegionId}
:請替換為您的物聯網平臺設備所在地域的Region ID。支持HTTPS動態注冊的地域:除華北2(北京)、華南1(深圳)以外的所有地域。
Region ID表達方法,請參見支持的地域。
Content-Type
String
設備發送給物聯網平臺的上行數據的編碼格式。
productKey
String
產品唯一標識。
deviceName
String
設備名稱。
random
String
隨機數。
sign
String
簽名。
加簽方法:
將所有提交給服務器的參數(sign、signMethod除外)按照字母順序排序,然后將參數和值依次拼接(無拼接符號)。
通過signMethod指定的加簽算法,使用產品的ProductSecret,對加簽內容進行加簽。
加簽計算示例如下:
hmac_sha1(productSecret, deviceNamedeviceName1234productKeya1234******random123)
signMethod
String
簽名方法,目前支持hmacmd5、hmacsha1、hmacsha256。
code
Integer
結果信息。
deviceSecret
String
設備密鑰。