デバイスを IoT Platform に登録し、そのデバイスをサブデバイスとしてゲートウェイデバイスに関連付けてから、これらのサブデバイスを IoT Platform に接続します。

ゲートウェイデバイスは最大 1,500 のサブデバイスを持つことができます。

IoT Platform に接続する前に、サブデバイスが IoT Platform に登録されていることを確認します。 また、ゲートウェイとのトポロジー関係がゲートウェイに追加されていることも確認する必要があります。 IoT Platform は、トポロジー関係に従ってサブデバイスの ID を検証して、サブデバイスがゲートウェイ接続を使用できるかどうか識別します。

サブデバイスから IoT Platform への接続

アップストリーム

  • トピック : /ext/session/{productKey}/{deviceName}/combine/login
  • 返信トピック : /ext/session/{productKey}/{deviceName}/combine/login_reply

リクエストメッセージ

{
  "id": "123",
  "params": {
    "productKey": "123",
    "deviceName": "test",
    "clientId": "123",
    "timestamp": "123",
    "signMethod": "hmacmd5",
    "sign": "xxxxxx",
    "cleanSession": "true"
  }
}

レスポンスメッセージ

{
  "id":"123",
  "code":200,
  "message":"success"
  "data":""
}

パラメーターの説明

パラメーター データタイプ 説明
id 文字列 メッセージ ID です。 今後使用するものとしてこのパラメーターの値を予約します。
params オブジェクト パラメーターをリクエストします。
deviceName 文字列 サブデバイスの名前
productKey 文字列 サブデバイスが属するプロダクトのキー
sign 文字列 サブデバイスの署名です。 サブデバイスはゲートウェイと同じ署名ルールを使用します。

署名アルゴリズム :

すべてのパラメーター (sign および signmethod 以外) をソートしアルファベット順にサーバーにサブミットしてから、パラメーターと値を順番に (接続記号なしで) 接続します。

その後、signMethod で指定されたアルゴリズムを使用してパラメーターに署名します。

例 :

sign= hmac_md5(deviceSecret, cleanSessiontrueclientId123deviceNametestproductKey123timestamp123)
signmethod 文字列 署名のメソッドです。 サポートされているメソッドは、hmacSha1、hmacSha256、hmacMd5、および Sha256 です。
timestamp 文字列 タイムスタンプ
clientId 文字列 デバイスクライアントの識別子です。 このパラメーターは、ProductKey パラメーターまたは DeviceName パラメーターと同じ値にすることができます。
cleanSession 文字列 値が true の場合、デバイスがオフラインのときに、QoS=1 方式に基づいて送信されたメッセージが消去されます。
code 整数 結果コードです。 値 200 は、呼び出しが成功したことを示します。
message 文字列 結果メッセージ
data 文字列 レスポンス内の追加情報 (JSON 形式) です。
重要 ゲートウェイは最大 1,500 の同時オンラインサブデバイスを収容できます。 最大数に達すると、ゲートウェイは接続リクエストをすべて拒否します。

エラーメッセージ

エラーコード エラーメッセージ 説明
460 request parameter error リクエストパラメーターが正しくありません。
429 rate limit, too many subDeviceOnline msg in one minute デバイスから IoT Platform への認証リクエストが頻繁過ぎるため、デバイスからの認証リクエストにはスロットル制限がかかります。
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

リクエストメッセージ

{
  "id": 123,
  "params": {
    "productKey": "xxxxx",
    "deviceName": "xxxxx"
  }
}

レスポンスメッセージ

{
  "id": "123",
  "code": 200,
  "message": "success",
  "data": ""
}

パラメーターの説明

パラメーター データタイプ 説明
id 文字列 メッセージ ID です。 今後使用するものとしてパラメーターを予約します。
params オブジェクト パラメーターをリクエストします。
deviceName 文字列 サブデバイスの名前
productKey 文字列 サブデバイスが属するプロダクトの ID
code 整数 結果コードです。 値 200 は、呼び出しが成功したことを示します。
message 文字列 結果コード
data 文字列 レスポンス内の追加情報 (JSON 形式)

エラーメッセージ

エラーコード エラーメッセージ 説明
460 request parameter error リクエストパラメーターが正しくありません。
520 device no session サブデバイスセッションが存在しません。

サブデバイス接続の詳細は、 サブデバイスから IoT Platform への接続をご参照ください。 エラーコードの詳細は、 サブデバイス開発時のエラーコードをご参照ください。