すべてのプロダクト
Search
ドキュメントセンター

:デバイスの登録

最終更新日:Feb 06, 2024

デバイスをIoT Platformに接続する前に、デバイスをIoT Platformに登録する必要があります。 これにより、IoT Platformはデバイスを識別できます。

概要

次の方法でデバイスを登録できます。

  • デバイスごとに一意の証明書検証: IoT Platformでデバイスを作成し、デバイス証明書を取得して、証明書情報を一意の識別子として使用します。 証明書情報には、ProductKey、DeviceName、およびDeviceSecretが含まれます。 証明書情報をデバイスのファームウェアに書き込みます。 デバイスがIoT Platformに接続されると、デバイスはIoT Platformと通信できます。 詳細については、「Unique-certificate-per-device verification」をご参照ください。

    次の表に、デバイスを登録できるプロトコルを示します。

    デバイス

    サポートされるプロトコル

    デバイス登録

    参考資料

    直接接続デバイス

    MQTT

    MQTTでデバイスを登録

    HTTPS

    HTTPSでデバイスを登録

    ゲートウェイとサブデバイス

    MQTT

    ゲートウェイとサブデバイスの登録

  • 製品ごとに一意の証明書検証: 製品のすべてのデバイスに製品証明書を書き込みます。 プロダクト証明書には、ProductKeyとProductSecretが含まれます。 デバイスが属する製品の動的登録機能を有効にする必要があります。

    次の動的登録方法がサポートされています。

    • 事前登録: この方法を使用する場合は、IoT Platformコンソールでデバイスを登録する必要があります。 デバイスは、DeviceSecretを取得するために動的に登録されます。

    • 事前登録なし: この方法を使用する場合、IoT Platformコンソールでデバイスを登録する必要はありません。 デバイスは、ClientIDおよびDeviceTokenを取得するために動的に登録される。

      説明

      HTTPSを使用して、事前登録なしの製品ごとの一意の証明書検証を実装することはできません。

    デバイスの登録方法の詳細については、「Unique-certificate-per-product verification」をご参照ください。 ゲートウェイサブデバイスは、事前登録方法のみをサポートします。 登録プロセスの詳細については、「ゲートウェイとサブデバイス」をご参照ください。

    次の表に、デバイスを登録できるプロトコルを示します。

    デバイス

    サポートされるプロトコル

    デバイス登録

    データ形式の説明

    直接接続デバイス

    MQTT

    MQTTでデバイスを登録

    MQTTベースの動的登録

    HTTPS

    HTTPSでデバイスを登録

    HTTPSベースの動的登録

    ゲートウェイとサブデバイス

    MQTT

    Link SDKによるサブデバイスの登録

    MQTTベースのサブデバイスの動的登録

サブデバイスのMQTTベースの動的登録

  • リクエストトピック: /sys/{productKey}/{deviceName}/thing/sub/register

  • レスポンストピック: /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 。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。

バージョン

String

プロトコルのバージョン番号。 値を 1.0 に設定します。

sys

オブジェクト

拡張フィーチャのパラメータ。The parameter for extended features. 値には、各フィーチャのフィールドが含まれます。

説明

デバイスSDKを使用してデバイス機能を開発するときに拡張機能が設定されていない場合、このパラメーターは使用できません。 拡張機能はデフォルトの設定を使用します。

ack

Integer

sysパラメーターの拡張機能フィールド。 このフィールドは、IoT Platformが登録要求の応答データを返すかどうかを指定します。 有効な値:

  • 1: IoT Platformは応答データを返します。

  • 0: IoT Platformは応答データを返しません。

重要

パラメーターの詳細については、「TSLモデルの使用方法の例」をご参照ください。

機能が設定されていない場合、このパラメーターは使用できません。 デフォルトでは、IoT Platformは登録リクエストの応答データを返します。

params

List

動的登録に使用されるパラメータ。

deviceName

String

サブデバイスのDeviceName。

productKey

String

サブデバイスが属するプロダクトのプロダクトキー

iotId

String

サブデバイスの一意識別子

deviceSecret

String

デバイスのDeviceSecret。

メソッド

String

リクエスト方式。 値をthing.sub.registerに設定します。

コード

Integer

結果を示すステータスコード。

次の表に、エラーコードを示します。

エラーコード

メッセージ

説明

460

request parameter error

リクエストパラメーターは無効です。

6402

topo relation cannot add by self

デバイスを自身のサブデバイスとして追加することはできません。

401

request auth error

システムが署名の検証に失敗しました。

直接接続されたデバイスのHTTPSベースの動的登録

  • URL形式: https:// iot-auth.${YourRegionI d}.aliyuncs.com/auth/register/device

  • HTTPメソッド: POST。

    リクエストの例

    POST /auth/register/device HTTP/1.1
    ホスト: iot-auth.cn-shanghai.aliyuncs.com
    コンテンツタイプ: application/x-www-form-urlencoded
    コンテンツ-長さ: 123
    productKey=a1234 ******&deviceName=deviceName1234&random=567345&sign=adfv123hdfdh&signMethod=HmacMD5 

    レスポンス例:

    {
      "code": 200,
      "data": {
        "productKey": "a1234 *******" 、
        "deviceName": "deviceName1234",
        "deviceSecret": "adsfw ******"
      },
      "メッセージ": "成功"
    } 

    下表に、各パラメーターを説明します。

    パラメーター

    データ型

    説明

    メソッド

    String

    リクエスト方式。 有効値: POST。

    ホスト

    String

    HTTPS経由でデバイスを動的に登録するために使用されるエンドポイント。 形式: iot-auth.${YourRegionI d}.aliyuncs.com

    ${YourRegionId}: この変数を、IoT Platformデバイスが存在するリージョンのIDに置き換えます。

    • 次のリージョンは、HTTPSベースの動的登録をサポートしています。中国 (北京) および中国 (深セン) リージョンを除くすべてのリージョンです。

    • リージョンIDの形式については、「サポートされているリージョン」をご参照ください。

    コンテンツタイプ

    String

    デバイスがIoT Platformに送信するアップストリームデータのエンコード形式。

    productKey

    String

    プロダクトの一意の識別子。

    deviceName

    String

    デバイスのDeviceName。

    ランダム

    String

    ランダムな文字列。

    サイン

    String

    署名。

    次の方法を使用して署名を作成できます。

    1. signsignMethodを除くすべてのパラメーターをアルファベット順に並べ替え、連結演算子なしでパラメーターと値を順番に連結します。

    2. signMethodパラメーターで指定された署名メソッドと製品のProductSecretを使用して、署名を生成します。

    例:

    hmac_sha1(productSecret, deviceNamedeviceName1234productKeya1234 ****** random123)

    signMethod

    String

    署名方式。 有効値: hmacmd5、hmacsha1、および hmacsha256。

    コード

    Integer

    結果を示すステータスコード。

    deviceSecret

    String

    デバイスのDeviceSecret。