ここでは、Alink プロトコルデータをカプセル化し、Alink プロトコルを使用して、デバイスから IoT Platform への接続を確立する方法について説明します。

Alink プロトコルは、IoT 開発用のデータ交換規格で、デバイスと IoT Platform 間の通信が可能になります。 プロトコルは Alink JSON 形式のデータを交換します。

以降のセクションでは、Alink プロトコル使用時のデバイス接続手順およびデータパススループロセス (アップストリームとダウンストリーム) について説明します。

デバイスの IoT Platform への接続

次の図に示すように、直接接続されたデバイス、またはサブデバイスとして、デバイスを IoT Platform に接続できます。 接続プロセスには、デバイスの登録、接続の確立、データの報告などの重要な手順が含まれます。

直接接続されたデバイスは、次の方法で IoT Platform に接続できます。

  • デバイスごとに固有の証明書での認証 が有効になっている場合は、認証用の 3 つのキーフィールド (ProductKey、DeviceName、DeviceSecret) を物理デバイスにインストールし、デバイスを IoT Platform に接続し、IoT Platform にデータを報告します。
  • プロダクトごとに固有の証明書で認証 に基づく動的登録が有効になっている場合、認証用のプロダクト証明書 (ProductKey と ProductSecret) を物理デバイスにインストールし、デバイスを IoT Platform に接続し、IoT Platform にデータを報告します。

ゲートウェイは、サブデバイスの接続プロセスを開始します。 サブデバイスは、次の方法で IoT Platform に接続できます。

  • デバイスごとに固有の証明書での認証 が有効になっている場合、認証用の ProductKey、DeviceName、DeviceSecret を物理サブデバイスにインストールします。 サブデバイスは、これら 3 つのキーフィールドをゲートウェイに送信します。ゲートウェイはトポロジー関係を追加し、ゲートウェイ接続チャネルを介してサブデバイスのデータを送信します。
  • 動的登録が有効になっている場合、認証用の ProductKey を事前に物理サブデバイスにインストールします。 サブデバイスは ProductKey と DeviceName をゲートウェイに送信します。ゲートウェイは ProductKey と DeviceName を IoT Platform に転送します。 IoT Platform は受け取った DeviceName を検証し、DeviceSecret をサブデバイスに送信します。 サブデバイスは取得した ProductKey、DeviceName、DeviceSecret をゲートウェイに送信します。ゲートウェイはトポロジー関係を追加し、ゲートウェイ接続チャネルを介して IoT Platform にデータを送信します。


デバイスからプロパティまたはイベントを報告

  • パススルーデータ (データ型は、"パススルー/カスタム")


    1. デバイスはパススルーデータの Topic を使用して、IoT Platform にバイナリデータを報告します。
    2. IoT Platform は、IoT Platform コンソール上で送信されたデータ解析スクリプトを使用して、受信したデータを解析します。 スクリプト内の rawDataToProtocol メソッドを呼び出して、デバイスから報告されたバイナリデータを、処理に使用される Alink JSON データに
    3. 変換します。

      データ転送のルールを設定している場合、Alink JSON データはこのルールに基づいてターゲットに転送されます。

    4. IoT Platform は、IoT Platform コンソール上で送信されたデータ解析スクリプトを使用して、返されたデータをバイナリデータに解析します。
    5. IoT Platform は、変換されたバイナリデータをデバイスにプッシュします。
    • ルールエンジンによって転送されるデータは、データ解析スクリプトで解析されたデータです。
    • ルールエンジンを使用してデータ転送を設定する場合、デバイスのプロパティを取得するには Topic: /sys/{productKey}/{deviceName}/thing/event/property/post を使用します。
    • ルールエンジンを使用してデータ転送を設定する場合、デバイスのイベントを取得するには Topic: /sys/{productKey}/{deviceName}/thing/event/{tsl.event.identifier}/post を使用します。
  • パススルー (Alink JSON) 以外のデータ


    1. デバイスは、パススルー以外のデータ用の Topic を使用して、Alink JSON データを IoT Platform に報告します。
    2. IoT Platform は受信データを処理します。

      データ転送のルールを設定している場合、データはルールに従ってターゲットに転送されます。

    3. IoT Platform は結果をデバイスに返します。
    • ルールエンジンを使用してデータ転送を設定する場合、デバイスのプロパティを取得するには Topic: /sys/{productKey}/{deviceName}/thing/event/property/post を使用します。
    • ルールエンジンを使用してデータ転送を設定する場合、デバイスのイベントを取得するには Topic: /sys/{productKey}/{deviceName}/thing/event/{tsl.event.identifier}/post を使用します。

デバイスサービスの呼び出し、またはデバイスプロパティの設定

  • デバイスサービスの呼び出し、またはデバイスプロパティの設定 (非同期)


    1. ユーザーは非同期呼び出しメソッドを使用して、デバイスプロパティを設定するか、デバイスサービスを呼び出します。
    2. IoT Platform はパラメーターを検証します。
    3. IoT Platform は、非同期呼び出しメソッドを使用して、リクエストを処理し結果を返します。 呼び出しが成功した場合、デバイスに送信されるメッセージ ID がレスポンスに含まれます。

      データ型がパススルー (パススルー/カスタム) の場合、IoT Platform はデータ解析スクリプト内の protocolToRawData メソッドを呼び出し、データを変換してからデバイスに送信します。

    4. IoT Platform はデータをデバイスに送信し、デバイスはリクエストを非同期に処理します。
      • データがパススルー (パススルー/カスタム) データの場合、パススルーデータ用の Topic を使用します。
      • データがパススルー以外 (Alink JSON) のデータの場合、パススルー以外のデータ用の Topic を使用します。
    5. デバイスがリクエスト操作を完了した後、結果を返します。
      • データ型がパススルー (パススルー / カスタム) の場合、IoT Platform はデータ解析スクリプト内の rawDataToProtocol メソッドを呼び出し、デバイスから返されるデータを変換します。
      • データ転送ルールを設定している場合、データはルールに従ってターゲットに転送されます。
    • ルールエンジンを使用してデータ転送を設定する場合、呼び出し結果を取得するには Topic: /sys/{productKey}/{deviceName}/thing/downlink/reply/message を使用します。
    • データ型がパススルー (パススルー/カスタム) の場合、ルールエンジンによって転送されたデータは、データ解析スクリプトによって解析されたデータです。
  • デバイスサービスの呼び出しと、デバイスプロパティの設定 (同期)


    1. ユーザーは同期呼び出しメソッドを使用して、デバイスサービスを呼び出します。
    2. IoT Platform はパラメーターを検証します。

      データ型がパススルー (パススルー/カスタム) の場合、IoT Platform はデータ解析スクリプト内の protocolToRawData メソッドを呼び出し、データを変換してからデバイスに送信します。

    3. 同期呼び出しメソッドでは、IoT Platform が RRPC Topic を呼び出してリクエストデータをデバイスに送信し、デバイスが結果を返すのを待ちます。
    4. デバイスは、リクエスト操作の完了後に結果を返します。 結果をタイムアウト期間内に受信しない場合、タイムアウトエラーが返されます。

      データ型がパススルー (パススルー/カスタム) の場合、IoT Platform はデータ解析スクリプト内の rawDataToProtocol メソッドを呼び出し、デバイスが返すデータを変換します。

    5. IoT Platform は結果をユーザーに返します。