サブデバイスは、個別にまたはバッチで接続または切断できます。 サブデバイスを接続する前に、サブデバイスをIoT Platformに登録して、サブデバイスとゲートウェイの間にトポロジ関係を確立する必要があります。 サブデバイスが接続されると、IoT Platformはトポロジ関係に基づいてサブデバイスのIDを検証し、サブデバイスがゲートウェイにアクセスできるかどうかを判断します。
説明
- サブデバイスとIoT Platformの間で配信できるのは、サービス品質 (QoS) 0メッセージのみです。
- IoT Platformに接続されているサブデバイスの数は、ゲートウェイの2,000を超えることはできません。 接続されているサブデバイスの数が2,000に達すると、IoT Platformはその後のすべての接続リクエストを拒否します。
- バッチで接続または切断されるサブデバイスの数は50を超えることはできません。
- 複数のサブデバイスの接続または切断の要求が成功した場合、すべてのサブデバイスが期待どおりに接続または切断されます。 リクエストが失敗した場合、すべてのサブデバイスの接続に失敗するか、切断に失敗します。data responseパラメーターにはデバイス情報が含まれています。
サブデバイスの IoT Platform への接続
上流データ:
- リクエストトピック:
/ext/session/${productKey}/${deviceName}/combine/login
- レスポンストピック:
/ext/session/${productKey}/${deviceName}/combine/login_reply
説明 サブデバイスはゲートウェイを使用してIoT Platformと通信します。 上記のトピックは、ゲートウェイに関するものです。 トピックの ${productKey} および ${deviceName} 変数をゲートウェイに関する情報に置き換えます。
Alink JSON形式のサンプルリクエスト:
{
"id": "123",
"params": {
"productKey": "al12345 ****" 、
"deviceName": "device1234" 、
"clientId": "al12345 ****&device1234" 、
"timestamp": "1581417203000" 、
"signMethod": "hmacmd5",
"sign": "9B9C732412A4F84B981E1AB97CAB ****" 、
"cleanSession": "true"
}
}
説明 メッセージ本文のproductKeyおよびdeviceNameパラメーターの値を、サブデバイスに関する対応する情報に置き換えます。
パラメーター | データ型 | 説明 |
id | String | メッセージの ID 。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。 |
params | オブジェクト | リクエストのパラメーター 詳細については、次のparamsテーブルをご参照ください。 |
パラメーター | データ型 | 説明 |
deviceName | String | サブデバイスの名前 |
productKey | String | サブデバイスが属するプロダクトのキー。 |
サイン | String | サブデバイスの署名。 サブデバイスの署名手順は、直接接続されたデバイスの署名手順と同じである。 手順:
signパラメーターの値の計算方法の例:
|
signMethod | String | 署名アルゴリズム。 有効な値: hmacSha1、hmacSha256、hmacMd5、およびSha256。 |
timestamp | String | 値は、ミリ秒単位のタイムスタンプです。 |
clientId | String | デバイスの ID このパラメーターは、productKey&deviceName の構文に基づいて、プロダクトキーとデバイス名を組み合わせた値に設定できます。 |
cleanSession | String |
|
Alink JSON形式のサンプル応答:
{
"id":"123",
"code":200,
"message":"success"
"data":{
"deviceName": "device1234" 、
"productKey": "al12345 ****"
}
}
パラメーター | データ型 | 説明 |
id | String | メッセージの ID 。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。 |
コード | Integer | ステータスコード。 値200は、リクエストが成功したことを示します。 |
メッセージ | String | 応答メッセージ。 |
データ | オブジェクト | リクエストが成功したか失敗したかに関係なく、返されるサブデバイス情報。 詳細については、次のデータ表をご参照ください。 |
パラメーター | データ型 | 説明 |
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のサブデバイスをIoT Platformに接続できます。
上流データ:
- リクエストトピック:
/ext/session/${productKey}/${deviceName}/combine/login
- レスポンストピック:
/ext/session/${productKey}/${deviceName}/combine/batch_login_reply
説明 サブデバイスはゲートウェイを使用してIoT Platformと通信します。 上記のトピックは、ゲートウェイに関するものです。 トピックの ${productKey} および ${deviceName} 変数をゲートウェイに関する情報に置き換えます。
Alink JSON形式のサンプルリクエスト:
{
"id": "123",
"param": {
"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 。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。 |
params | オブジェクト | リクエストのパラメーター deviceListパラメーターには、接続するサブデバイスの認証に必要なパラメーターが含まれます。 詳細については、次のdeviceListテーブルをご参照ください。 |
Alink JSON形式のサンプル応答:
{
"id":"123",
"code":"200",
"message":"success",
"data":[{
"productKey": "al12345 ****" 、
"deviceName": "device1234"
},{
"deviceName": "device4321" 、
"productKey": "al12345 ****"
}]
}
パラメーター | データ型 | 説明 |
id | String | メッセージの ID 。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。 |
コード | Integer | ステータスコード。 値200は、リクエストが成功したことを示します。 |
メッセージ | String | 応答メッセージ。 |
データ | オブジェクト | リクエストが成功したか失敗したかに関係なく、返されるサブデバイス情報。 詳細については、次のデータ表をご参照ください。 |
パラメーター | データ型 | 説明 |
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 | サブデバイスのパスワードまたは署名が無効な場合に返されるエラーメッセージ。 |
IoT Platform からのサブデバイスの切断
上流データ:
- リクエストトピック:
/ext/session/${productKey}/${deviceName}/combine/logout
- レスポンストピック:
/ext/session/${productKey}/${deviceName}/combine/logout_reply
説明 サブデバイスはゲートウェイを使用してIoT Platformと通信します。 上記のトピックは、ゲートウェイに関するものです。 トピックの ${productKey} および ${deviceName} 変数をゲートウェイに関する情報に置き換えます。
Alink JSON形式のサンプルリクエスト:
{
"id": "123",
"params": {
"productKey": "al12345 ****" 、
"deviceName": "device1234"
}
}
説明 メッセージ本文のproductKeyおよびdeviceNameパラメーターの値を、サブデバイスに関する対応する情報に置き換えます。
パラメーター | データ型 | 説明 |
id | String | メッセージの ID 。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。 |
params | オブジェクト | リクエストのパラメーター これらのパラメーターは、切断するサブデバイスに関する情報を指定します。 |
パラメーター | データ型 | 説明 |
deviceName | String | サブデバイスの名前 |
productKey | String | サブデバイスが属するプロダクトのキー。 |
Alink JSON形式のサンプル応答:
{
"id": "123",
"code": 200,
"message": "success",
"data": {
"deviceName": "device1234" 、
"productKey": "al12345 ****"
}
}
パラメーター | データ型 | 説明 |
id | String | メッセージの ID 。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。 |
コード | Integer | ステータスコード。 値200は、リクエストが成功したことを示します。 |
メッセージ | String | 応答メッセージ。 |
データ | オブジェクト | リクエストが成功するか失敗するかに関係なく、返されるサブデバイス情報。 詳細については、次のデータ表をご参照ください。 |
パラメーター | データ型 | 説明 |
deviceName | String | サブデバイスの名前 |
productKey | String | サブデバイスが属するプロダクトのキー。 |
エラーメッセージ:
エラーコード | エラーメッセージ | 補足 |
460 | request parameter error | リクエストパラメーターが無効な場合に返されるエラーメッセージ。 |
520 | device no session | サブデバイスセッションが存在しない場合に返されるエラーメッセージ。 |
複数のサブデバイスをバッチで切断する
重要 一度に最大50のサブデバイスをIoT Platformから切断できます。
上流データ:
- リクエストトピック:
/ext/session/${productKey}/${deviceName}/combine/batch_logout
- レスポンストピック:
/ext/session/${productKey}/${deviceName}/combine/batch_logout_reply
説明 サブデバイスはゲートウェイを使用してIoT Platformと通信します。 上記のトピックは、ゲートウェイに関するものです。 トピックの ${productKey} および ${deviceName} 変数をゲートウェイに関する情報に置き換えます。
Alink JSON形式のサンプルリクエスト:
{
"id": "123",
"params":[{
"productKey": "al12345 ****" 、
"deviceName": "device1234"
},{
"productKey": "al12345 ****" 、
"deviceName": "device4321"
}]
}
説明 メッセージ本文のproductKeyおよびdeviceNameパラメーターの値を、サブデバイスに関する対応する情報に置き換えます。
パラメーター | データ型 | 説明 |
id | String | メッセージの ID 。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。 |
params | オブジェクト | リクエストのパラメーター これらのパラメーターは、切断するサブデバイスに関する情報を指定します。 |
パラメーター | データ型 | 説明 |
deviceName | String | サブデバイスの名前 |
productKey | String | サブデバイスが属するプロダクトのキー。 |
Alink JSON形式のサンプル応答:
{
"id":"123",
"code":"200",
"message":"success",
"data":[{
"productKey": "al12345 ****"
"deviceName": "device1234"
},{
"deviceName": "device4321" 、
"productKey": "al12345 ****"
}]
}
パラメーター | データ型 | 説明 |
id | String | メッセージの ID 。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。 |
コード | Integer | ステータスコード。 値200は、リクエストが成功したことを示します。 |
メッセージ | String | 応答メッセージ。 |
データ | オブジェクト | リクエストが成功するか失敗するかに関係なく、返されるサブデバイス情報。 詳細については、次のデータ表をご参照ください。 |
パラメーター | データ型 | 説明 |
deviceName | String | サブデバイスの名前 |
productKey | String | サブデバイスが属するプロダクトのキー。 |
エラーメッセージ:
エラーコード | エラーメッセージ | 説明 |
460 | request parameter error | リクエストパラメーターが無効な場合に返されるエラーメッセージ。 |
520 | device no session | サブデバイスセッションが存在しない場合に返されるエラーメッセージ。 |
参考資料
サブデバイスをIoT Platformに接続する方法の詳細については、「デバイスの登録」をご参照ください。
エラーコードとソリューションの詳細については、「デバイスのエラーコード」をご参照ください。