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

:Alink プロトコル

最終更新日:Feb 06, 2024

IoT Platformは、デバイスとIoT Platform間の通信プロトコルを含むLink SDKを提供します。 Link SDKを使用してデバイスを開発できます。 ただし、複雑な組み込み環境では、Link SDKがビジネス要件を満たしていない場合があります。 この場合、Alinkプロトコルを介してデバイスとIoT Platform間の接続を確立できます。

概要

Alinkプロトコルは、デバイスとIoT PlatformがJSON形式でデータを効率的に交換できるようにするIoT開発のデータ交換標準です。

IoT Platformは、デバイスの開発に使用できる言語固有のリンクSDKを提供します。 各リンクSDKの機能の詳細については、「リンクSDK」をご参照ください。

次の表に、Alinkプロトコルfor IoT Platformの機能を示します。

表 1 機能

機能

メッセージ形式

デバイス接続

メッセージング

デバイス管理

モニタリングとO&M

次のセクションでは、Alinkプロトコルを使用してデバイスをIoT Platformに接続し、データを転送する方法について説明します。

デバイスのIoTプラットフォームへの接続

IoT Platformに接続できるデバイスは、直接接続されたデバイスとサブデバイスに分類されます。 デバイスをIoT Platformに接続する場合は、次の手順を実行する必要があります。デバイスを認証し、デバイスをIoT Platformに接続してから、IoT Platformにデータを送信します。

直接接続されたデバイスは、次のいずれかの方法を使用してIoT Platformに接続できます。

  • unique-certificate-per-device 認証を使用する場合は、デバイスでデバイス証明書を書き込み、デバイスをIoT Platformに接続してから、IoT Platformにデータを送信します。 デバイス証明書には、ProductKey、DeviceName、およびDeviceSecretが含まれます。

  • unique-certificate-per-product 認証 (動的登録) を使用する場合は、デバイスでプロダクト証明書を書き込み、デバイスをIoT Platformに接続してから、IoT Platformにデータを送信します。 プロダクト証明書には、ProductKeyとProductSecretが含まれます。

サブデバイスは、次のいずれかの方法を使用して、ゲートウェイ経由でIoT Platformに接続する必要があります。

  • unique-certificate-per-device 認証を使用する場合は、サブデバイスでデバイス証明書を書き込みます。 サブデバイスは、証明書情報をゲートウェイに送信する。 ゲートウェイは、トポロジー関係を追加する。 その後、サブデバイスは、ゲートウェイの通信チャネルを使用してIoT Platformにデータを送信できます。

  • 動的登録を使用する場合は、サブデバイスでProductKeyを作成します。 サブデバイスは ProductKey と DeviceName をゲートウェイに送信します。 IoT PlatformはDeviceNameを検証し、DeviceSecretをサブデバイスに送信します。 サブデバイスは取得した ProductKey、DeviceName、DeviceSecret をゲートウェイに送信します。 ゲートウェイは、トポロジー関係を追加する。 その後、サブデバイスは、ゲートウェイの通信チャネルを使用してIoT Platformにデータを送信できます。

Submit device data

デバイスのプロパティまたはイベントの送信

  • パススルーデータ

    Pass-through data

    いいえ

    説明

    1

    デバイスは、パススルーデータの送信に使用されるトピックを使用して、パススルーデータをIoT Platformに送信します。 トピックの詳細については、「デバイスのプロパティ、イベント、およびサービス」をご参照ください。

    1.1

    IoT Platformは、データ解析スクリプトを使用して、デバイスから送信されたデータを解析します。 スクリプトのrawDataToProtocol関数は、送信されたデータをAlink JSONデータに変換するために呼び出されます。

    詳細については、「データ解析とは」をご参照ください。

    1.2

    IoT PlatformはAlink JSONデータを処理します。

    ルールエンジンが設定されている場合、IoT Platformは、指定された転送ルールに基づいて、トピックやクラウドサービスなどの宛先にデータを転送します。

    重要
    • ルールエンジンによって転送されたデータは、データ解析スクリプトを使用して解析される。

    • データ転送ルールを設定する場合、データソースとしてのTSLデータレポートに次のトピックを指定する必要があります。/${productKey}/${deviceName}/thing/event/property/postおよび /${productKey}/${deviceName}/thing/event/${tsl.event識別子}/post。 詳細については、「データ転送ルールの設定」または「データソースの作成」をご参照ください。

    1.3

    IoT Platformは、データ解析スクリプトのprotocolToRawData関数を呼び出して、結果データをデバイスが識別できる形式に変換します。

    1.4

    IoT Platformは、解析されたデータをデバイスに送信します。

    2

    QueryDevicePropertyData操作を呼び出して送信されたプロパティデータを照会し、QueryDeviceEventData操作を呼び出して送信された履歴イベントデータを照会できます。

  • Alink JSONデータ

    Alink data

    いいえ

    説明

    1

    デバイスは、パススルーデータの送信に使用されるトピックを使用して、Alink JSONデータをIoT Platformに送信します。 詳細については、「デバイスのプロパティ、イベント、およびサービス」をご参照ください。

    1.1

    IoT Platformは、送信されたデータを処理します。

    ルールエンジンが設定されている場合、IoT Platformは、指定された転送ルールに基づいて、トピックやクラウドサービスなどの宛先にデータを転送します。

    重要

    データ転送ルールを設定する場合、データソースとしてのTSLデータレポートに次のトピックを指定する必要があります。/${productKey}/${deviceName}/thing/event/property/postおよび /${productKey}/${deviceName}/thing/event/${tsl.event識別子}/post。 詳細については、「データ転送ルールの設定」または「データソースの作成」をご参照ください。

    1.2

    IoT Platformはデバイスに応答を返します。

    2

    QueryDevicePropertyData操作を呼び出して送信されたプロパティデータを照会し、QueryDeviceEventData操作を呼び出して送信された履歴イベントデータを照会できます。

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

  • デバイスサービスの非同期呼び出しまたはデバイスプロパティTransmit Alink data.の設定

    いいえ

    説明

    1

    IoT Platformコンソールでサービスを起動します。

    • プロパティの設定: SetDeviceProperty操作を呼び出して、デバイスのプロパティを設定できます。

    • サービスを呼び出す: InvokeThingService操作を呼び出して、サービスを非同期で呼び出すことができます。

      サービスを定義するときにサービスの呼び出し方法を非同期に設定した場合、サービスは非同期で呼び出されます。

    1.1

    IoT Platformはパラメーターを検証します。

    1.2

    IoT Platformは非同期でデバイスにメッセージを送信し、応答を返します。 コールが成功した場合、メッセージIDが応答に含まれる。

    パススルーデータの場合、IoT Platformはデータ解析スクリプトのprotocolToRawData関数を呼び出して、IoT Platformがデータをデバイスに送信する前にデータを変換します。

    2

    デバイスは、受信したデータを処理する。

    説明

    IoT Platformは、パススルーまたはカスタムデータとAlink JSONデータを処理するためにさまざまなトピックを使用します。 詳細については、「デバイスプロパティの変更」および「非同期モードでのデバイスサービスの呼び出し」をご参照ください。

    3

    デバイスがデータを処理した後、デバイスはIoT Platformに応答を返します。

    IoT Platformがレスポンスを受信した後、次の操作を実行できます。

    • パススルーデータを受信した場合、IoT Platformはデータ解析スクリプトのrawDataToProtocol関数を呼び出してデータを変換します。

    • ルールエンジンが設定されている場合、IoT Platformは、指定された転送ルールに基づいて、トピックやクラウドサービスなどの宛先にデータを転送します。

      重要
      • パススルーデータの場合、ルールエンジンによって転送されたデータは、データ解析スクリプトを使用して解析されます。

      • データ転送ルールを設定する場合、データソースとしてのTSLデータレポートに次のトピックを指定できます。/${productKey}/${deviceName}/thing/downlink/reply/message詳細については、「データ転送ルールの設定」または「データソースの作成」をご参照ください。

  • デバイスサービスの同期呼び出し

    Transmit Alink data

    いいえ

    説明

    1

    InvokeThingService操作を呼び出して、デバイスサービスを同期的に呼び出します。 サービスを定義するときにサービスの呼び出し方法を同期に設定すると、サービスは同期的に呼び出されます。

    1.1

    IoT Platformはパラメーターを検証します。

    1.2

    IoT Platformは、RRPCトピックを同期的に使用してデバイスにデータを送信します。

    パススルーデータの場合、IoT Platformはデータ解析スクリプトのprotocolToRawData関数を呼び出して、IoT Platformがデータをデバイスに送信する前にデータを変換します。

    1.3

    IoT Platformは、デバイスからの応答を同期的に待機します。

    2

    デバイスがデータを処理した後、デバイスはIoT Platformに応答を返します。 リクエストがタイムアウトすると、IoT Platformはタイムアウトエラーを返します。

    2.1

    IoT Platformは、応答を呼び出し元に返します。

    パススルーデータを受信した場合、IoT Platformはデータ解析スクリプトのrawDataToProtocol関数を呼び出してデータを変換します。

トポロジー関係の追加

Transmit Alink data

いいえ

説明

1

サブデバイスをゲートウェイに接続します。

サードパーティがトポロジ関係を追加する必要がある場合は、次の手順を実行します。

1.1

ゲートウェイは、/sys/${productKey}/${deviceName}/thing/list/foundトピックを使用して、検出されたサブデバイスに関する情報をIoT Platformに送信できます。

ルールエンジンが設定されている場合、IoT Platformは送信されたデータをクラウドサービスなどの宛先に転送します。

1.2

クラウドサービスからサブデバイスのデータを取得できます。

1.3

サブデバイスとゲートウェイの間にトポロジ関係を追加できます。

トポロジ関係を追加する場合は、NotifyAddThingTopoを呼び出してゲートウェイに通知し、/sys/${productKey}/${deviceName}/thing/topo/add/notifyトピックを使用してサブデバイスとのトポロジ関係を追加します。

2

  • ゲートウェイは、/sys/${productKey}/${deviceName}/thing/topo/addトピックを使用して、サブデバイスとのトポロジ関係を追加できます。 その後、IoT Platformは結果を返します。

  • ゲートウェイはリクエストを受信し、トピックを使用してトポロジ関係を追加します。

3

サブデバイスとのトポロジ関係の削除をゲートウェイに要求できます。 ゲートウェイは、/sys/${productKey}/${deviceName}/thing/topo/deleteトピックを使用して、サブデバイスとのトポロジ関係を削除します。

4

GetThingTopo操作を呼び出して、/sys/${productKey}/${deviceName}/thing/topo/getトピックを照会し、ゲートウェイとサブデバイス間のトポロジ関係を取得できます。