子裝置可以逐個上下線,也可以批量上下線。子裝置上線之前,需在物聯網平台為子裝置註冊身份,建立子裝置與網關的拓撲關係。子裝置上線時,物聯網平台會根據拓撲關係進行子裝置身份校正,以確定子裝置是否具備使用網關通道的能力。
說明
- 子裝置上下線、批量上下線訊息,只支援QoS=0,不支援QoS=1。
- 一個網關下,同時線上的子裝置數量不能超過2,000。線上子裝置數量達到2,000個後,新的子裝置上線請求將被拒絕。
- 發送子裝置批量上下線請求時,單個批次上下線的子裝置數量不超過50個。
- 裝置批量上下線請求結果為全部成功或全部失敗,失敗時的data響應參數中會包含具體的裝置資訊。
子裝置上線
資料上行:
- 請求Topic:
/ext/session/${productKey}/${deviceName}/combine/login
- 響應Topic:
/ext/session/${productKey}/${deviceName}/combine/login_reply
說明 因為子裝置通過網關通道與物聯網平台通訊,以上Topic為網關裝置的Topic。Topic中變數${productKey}和${deviceName}需替換為網關裝置的對應資訊。
Alink請求資料格式:
{
"id": "123",
"params": {
"productKey": "al12345****",
"deviceName": "device1234",
"clientId": "al12345****&device1234",
"timestamp": "1581417203000",
"signMethod": "hmacmd5",
"sign": "9B9C732412A4F84B981E1AB97CAB****",
"cleanSession": "true"
}
}
說明 訊息體中,參數productKey和deviceName的值是子裝置的對應資訊。
參數 | 類型 | 說明 |
id | String | 訊息ID號。String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
params | Object | 請求入參,包含的具體參數見下表params。 |
參數 | 類型 | 說明 |
deviceName | String | 子裝置的裝置名稱。 |
productKey | String | 子裝置所屬的產品的ProductKey。 |
sign | String | 子裝置簽名。簽名方法與直連裝置簽名方法相同。 簽名方法:
sign值計算方法樣本如下:
|
signMethod | String | 簽名方法,支援hmacSha1、hmacSha256、hmacMd5和Sha256。 |
timestamp | String | 毫秒級時間戳記。 |
clientId | String | 裝置端標識。可以為productKey&deviceName 。 |
cleanSession | String |
|
Alink響應資料格式:
{
"id":"123",
"code":200,
"message":"success"
"data":{
"deviceName": "device1234",
"productKey": "al12345****"
}
}
參數 | 類型 | 說明 |
id | String | 訊息ID,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
code | Integer | 返回結果,200代表成功。 |
message | String | 返回結果資訊。 |
data | Object | 請求成功或失敗時返回的子裝置資訊,具體參數請參見下表data。 |
參數 | 類型 | 說明 |
deviceName | String | 子裝置的裝置名稱。 |
productKey | String | 子裝置所屬產品的密鑰。 |
錯誤資訊:
錯誤碼 | 錯誤資訊 | 描述 |
460 | request parameter error | 請求參數錯誤。 |
429 | rate limit, too many subDeviceOnline msg in one minute | 單個裝置認證過於頻繁被限流。 |
428 | too many subdevices under gateway | 網關下同時線上子裝置過多。 |
6401 | topo relation not exist | 網關和子裝置沒有拓撲關係。 |
6100 | device not found | 子裝置不存在。 |
521 | device deleted | 子裝置已被刪除。 |
522 | device forbidden | 子裝置已被禁用。 |
6287 | invalid sign | 子裝置密碼或者簽名錯誤。 |
子裝置大量上線
重要 單次最多可請求50個子裝置上線。
資料上行:
- 請求Topic:
/ext/session/${productKey}/${deviceName}/combine/batch_login
- 響應Topic:
/ext/session/${productKey}/${deviceName}/combine/batch_login_reply
說明 因為子裝置通過網關通道與物聯網平台通訊,以上Topic為網關裝置的Topic。Topic中變數${productKey}和${deviceName}需替換為網關裝置的對應資訊。
Alink請求資料格式:
{
"id": "123",
"params":{
"deviceList":[{
"productKey": "al12345****",
"deviceName": "device1234",
"clientId": "al12345****&device1234",
"timestamp": "1581417203000",
"cleanSession": "false",
"signMethod": "hmacmd5",
"sign": "9B9C732412A4F84B981E1AB97CAB****",
}, {
"productKey": "al12345****",
"deviceName": "device4321",
"clientId": "al12345****&device4321",
"timestamp": "1581417203000",
"cleanSession": "true",
"signMethod": "hmacmd5",
"sign": "9B9C732412A4F84B981E1AB97CAB****",
}]
}
}
說明 訊息體中,參數productKey和deviceName的值是子裝置的對應資訊。
參數 | 類型 | 說明 |
id | String | 訊息ID號。String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
params | Object | 請求入參,其中deviceList參數包含要上線的子裝置認證參數列表,包含的具體參數見下表deviceList。 |
Alink響應資料格式:
{
"id":"123",
"code":"200",
"message":"success",
"data":[{
"productKey": "al12345****",
"deviceName": "device1234"
},{
"deviceName": "device4321",
"productKey": "al12345****"
}]
}
參數 | 類型 | 說明 |
id | String | 訊息ID,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
code | Integer | 返回結果,200代表成功。 |
message | String | 返回結果資訊。 |
data | Object | 請求成功或失敗時返回的子裝置資訊,具體參數請參見下表data。 |
參數 | 類型 | 說明 |
deviceName | String | 子裝置的裝置名稱。 |
productKey | String | 子裝置所屬產品的密鑰。 |
錯誤資訊:
錯誤碼 | 錯誤資訊 | 描述 |
460 | request parameter error | 請求參數錯誤。 |
429 | rate limit, too many subDeviceOnline msg in one minute | 單個裝置認證過於頻繁被限流。 |
428 | too many subdevices under gateway | 網關下同時線上子裝置過多。 |
6401 | topo relation not exist | 網關和子裝置沒有拓撲關係。 |
6100 | device not found | 子裝置不存在。 |
521 | device deleted | 子裝置已被刪除。 |
522 | device forbidden | 子裝置已被禁用。 |
6287 | invalid sign | 子裝置密碼或者簽名錯誤。 |
子裝置下線
資料上行:
- 請求Topic:
/ext/session/${productKey}/${deviceName}/combine/logout
- 響應Topic:
/ext/session/${productKey}/${deviceName}/combine/logout_reply
說明 因為子裝置通過網關通道與物聯網平台通訊,以上Topic為網關裝置的Topic。Topic中變數${productKey}和${deviceName}需替換為網關裝置的對應資訊。
Alink請求資料格式:
{
"id": "123",
"params": {
"productKey": "al12345****",
"deviceName": "device1234"
}
}
說明 訊息體中,參數productKey和deviceName的值是子裝置的對應資訊。
參數 | 類型 | 說明 |
id | String | 訊息ID號。String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
params | Object | 請求入參,包含要下線的子裝置資訊。 |
參數 | 類型 | 說明 |
deviceName | String | 子裝置的裝置名稱。 |
productKey | String | 子裝置所屬產品的ProductKey。 |
Alink響應資料格式:
{
"id": "123",
"code": 200,
"message": "success",
"data": {
"deviceName": "device1234",
"productKey": "al12345****"
}
}
參數 | 類型 | 說明 |
id | String | 訊息ID,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
code | Integer | 返回結果,200代表成功。 |
message | String | 返回結果資訊。 |
data | Object | 請求成功或失敗時,返回的下線的子裝置資訊。具體參數請參見下表data。 |
參數 | 類型 | 說明 |
deviceName | String | 子裝置的裝置名稱。 |
productKey | String | 子裝置所屬產品的ProductKey。 |
錯誤資訊:
錯誤碼 | 錯誤資訊 | 描述 |
460 | request parameter error | 請求參數錯誤。 |
520 | device no session | 子裝置會話不存在。 |
子裝置大量下線
重要 單次最多可請求50個子裝置下線。
資料上行:
- 請求Topic:
/ext/session/${productKey}/${deviceName}/combine/batch_logout
- 響應Topic:
/ext/session/${productKey}/${deviceName}/combine/batch_logout_reply
說明 因為子裝置通過網關通道與物聯網平台通訊,以上Topic為網關裝置的Topic。Topic中變數${productKey}和${deviceName}需替換為網關裝置的對應資訊。
Alink請求資料格式:
{
"id": "123",
"params":[{
"productKey": "al12345****",
"deviceName": "device1234"
},{
"productKey": "al12345****",
"deviceName": "device4321"
}]
}
說明 訊息體中,參數productKey和deviceName的值是子裝置的對應資訊。
參數 | 類型 | 說明 |
id | String | 訊息ID號。String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
params | Object | 請求入參,包含要下線的子裝置資訊。 |
參數 | 類型 | 說明 |
deviceName | String | 子裝置的裝置名稱。 |
productKey | String | 子裝置所屬產品的ProductKey。 |
Alink響應資料格式:
{
"id":"123",
"code":"200",
“message":"success",
"data":[{
"productKey": "al12345****"
"deviceName": "device1234"
},{
"deviceName": "device4321",
"productKey": "al12345****"
}]
}
參數 | 類型 | 說明 |
id | String | 訊息ID,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
code | Integer | 返回結果,200代表成功。 |
message | String | 返回結果資訊。 |
data | Object | 請求成功或失敗時,返回的下線的子裝置資訊。具體參數請參見下表data。 |
參數 | 類型 | 說明 |
deviceName | String | 子裝置的裝置名稱。 |
productKey | String | 子裝置所屬產品的ProductKey。 |
錯誤資訊:
錯誤碼 | 訊息 | 描述 |
460 | request parameter error | 請求參數錯誤。 |
520 | device no session | 子裝置會話不存在。 |
相關文檔
子裝置接入配置,可參見裝置身份註冊。
錯誤碼說明及解決辦法,可參見裝置端接收的錯誤碼。