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の機能を示します。
機能 | メッセージ形式 |
デバイス接続 | |
メッセージング | |
デバイス管理 | |
モニタリングと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にデータを送信できます。
デバイスのプロパティまたはイベントの送信
パススルーデータ
いいえ
説明
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データ
いいえ
説明
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操作を呼び出して送信された履歴イベントデータを照会できます。
デバイスサービスの呼び出しまたはデバイスプロパティの設定
デバイスサービスの非同期呼び出しまたはデバイスプロパティの設定
いいえ
説明
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
詳細については、「データ転送ルールの設定」または「データソースの作成」をご参照ください。
デバイスサービスの同期呼び出し
いいえ
説明
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
関数を呼び出してデータを変換します。
トポロジー関係の追加
いいえ | 説明 | |
1 | サブデバイスをゲートウェイに接続します。 サードパーティがトポロジ関係を追加する必要がある場合は、次の手順を実行します。 | |
1.1 | ゲートウェイは、 ルールエンジンが設定されている場合、IoT Platformは送信されたデータをクラウドサービスなどの宛先に転送します。 | |
1.2 | クラウドサービスからサブデバイスのデータを取得できます。 | |
1.3 | サブデバイスとゲートウェイの間にトポロジ関係を追加できます。 トポロジ関係を追加する場合は、NotifyAddThingTopoを呼び出してゲートウェイに通知し、 | |
2 |
| |
3 | サブデバイスとのトポロジ関係の削除をゲートウェイに要求できます。 ゲートウェイは、 | |
4 | GetThingTopo操作を呼び出して、 |