プロダクトの TSL モデルを定義した後、デバイスは Alink JSON フォーマットを使用してプロパティとイベントを報告します。サーバーサイドも Alink JSON を使用してプロパティを設定し、サービスを呼び出します。デバイスがカスタムフォーマットを使用する場合は、データ解析を設定して変換してください。
背景情報
TSL モデルのデータフォーマット (プロパティ、イベント、サービス) は、「TSL モデルとは」で定義されています。
デバイスは、標準の Alink JSON フォーマット (推奨) またはパススルー/カスタムフォーマットのいずれかでデータを報告します。いずれかの方法を選択する必要があります。
-
標準データフォーマット (Alink JSON):デバイスは、IoT Platform で定義された Alink JSON フォーマットでデータを生成し、報告します。フォーマットの例については、以下のセクションをご参照ください。
-
パススルー/カスタム:デバイスは、バイナリデータストリームなどの生データを報告します。Alibaba Cloud IoT Platform は、コンソールで送信したデータ解析スクリプトを実行して、生データを標準データフォーマットに変換してから処理します。クラウドは、標準の Alink JSON フォーマットでデータを返します。その後、応答が解析され、デバイスにプッシュされます。

-
TSL モデルのプロパティがフロートまたはダブルとして定義されている場合、報告される値には小数点を含める必要があります (例:10 ではなく 10.0)。
-
デバイスは、time 値が今後 24 時間以内であるプロパティおよびイベントデータのみを報告できます。この範囲外の報告は失敗します。
-
メッセージ ID (id) は、アップリンクメッセージとダウンリンクメッセージの両方において、1 日に 1 デバイスあたり一意である必要があります。
ダウンリンクメッセージの場合、IoT Platform は id を使用して非同期メッセージに対するデバイスの応答を照合し、一意性を保証します。アップリンクメッセージの場合、デバイスは id の一意性を保証する必要があります。
デバイスプロパティの報告
Alink プロトコルにおけるデバイスプロパティ報告の図は、プロパティ報告のフローを示しています。
トピックとデータフォーマット (デバイス発信):
-
パススルー/カスタム
トピック
データフォーマット
リクエストトピック:
/sys/${productKey}/${deviceName}/thing/model/up_rawリクエストデータは、デバイスが報告する未加工のメッセージです。
説明-
Message Queuing Telemetry Transport (MQTT) プロトコルを介してパススルーモードで送信されるデータは、16進数フォーマットです。
-
アップロードされるパススルーデータには method パラメータを含める必要があり、その値はデータ解析スクリプトで定義された対応するリクエストメソッドと一致する必要があります。たとえば、JavaScript スクリプトの例では、デバイスがプロパティデータをクラウドにアップロードする際、
ALINK_PROP_REPORT_METHODの値はthing.event.property.postです。
例:
0x00002233441232013fa00000レスポンストピック:
/sys/${productKey}/${deviceName}/thing/model/up_raw_replyクラウドは次のフォーマットでデータを返します:
-
成功時のレスポンス例
{ "code": 200, "data": {}, "id": "123", "message": "success", "version": "1.0" } -
失敗時のレスポンス例
{ "code": 6813, "data": {}, "id": "123", "message": "topic illegal", "version": "1.0" }
-
-
Alink JSON
トピック
データフォーマット
リクエストトピック:
/sys/${productKey}/${deviceName}/thing/event/property/postリクエストデータフォーマット:
{ "id": "123", "version": "1.0", "sys":{ "ack":0 }, "params": { "Power": { "value": "on", "time": 1524448722000 }, "WF": { "value": 23.6, "time": 1524448722000 } }, "method": "thing.event.property.post" }レスポンストピック:
/sys/${productKey}/${deviceName}/thing/event/property/post_replyクラウドは次のフォーマットでデータを返します:
-
成功時のレスポンス例
{ "code": 200, "data": {}, "id": "123", "message": "success", "method": "thing.event.property.post", "version": "1.0" } -
失敗時のレスポンス例
{ "code": 6813, "data": {}, "id": "123", "message": "The format of result is error!", "method": "thing.event.property.post", "version": "1.0" }
-
パラメータの説明:
|
パラメータ |
タイプ |
説明 |
|
id |
String |
メッセージ ID。0 から 4294967295 までの値を持つ数字の文字列です。各メッセージ ID は、現在のデバイスにおいて一意である必要があります。 |
|
version |
String |
プロトコルバージョン番号。有効な値は 1.0 のみです。 |
|
sys |
Object |
拡張機能パラメーター。 説明
デバイス側 SDK を使用し、拡張機能を設定しない場合、このパラメーターは省略され、デフォルト設定が適用されます。 |
|
ack |
Integer |
クラウドが応答を返すかどうかを指定します。sys 配下のフィールドです。
重要
設定の詳細:TSL (Thing Specification Language) モデルの使用例。 設定しない場合、このパラメーターは省略され、クラウドはデフォルトでレスポンスを返します。 |
|
method |
String |
リクエストメソッド。例: |
|
params |
Object |
報告するプロパティデータ。この例では、デバイスは Power (電源) および WF (動作電流) プロパティを報告しており、それぞれに値とオプションのタイムスタンプが含まれています。 プロパティ値のみを渡す場合、time および value フィールドをアップロードする必要はありません。以下は params パラメータの例です:
カスタムモジュールプロパティの場合、識別子のフォーマットは
|
|
time |
Long |
プロパティが報告される際の UNIX タイムスタンプ (UTC ミリ秒単位) です。 オプション。メッセージの順序が重要な場合は、タイムスタンプを含めてください。
|
|
value |
Object |
報告されるプロパティ値。 time を含めない場合、value を省略し、パラメータ値を直接報告できます。 |
|
パラメータ |
タイプ |
説明 |
|
id |
String |
メッセージ ID。0 から 4294967295 までの値を持つ数字の文字列です。各メッセージ ID は、現在のデバイスにおいて一意である必要があります。 |
|
code |
Integer |
結果のステータスコード。デバイス側の共通コード。 説明
IoT Platform は、報告されたプロパティをプロダクトの TSL 定義に対して検証します。検証に失敗したプロパティはフィルタリングされ、エラーコードが返されます。 |
|
data |
Object |
リクエストが成功した場合、空のオブジェクトが返されます。 |
|
message |
String |
レスポンスメッセージ。リクエストが成功した場合、 |
|
method |
String |
レスポンスに対応するリクエストメソッド。リクエストパラメータの method と同じです。 |
|
version |
String |
プロトコルバージョン番号。リクエストパラメータの version と同じです。 |
エラーコード: デバイスが受信するエラーコード。
メッセージ転送: 報告されたプロパティは、サーバー側サブスクリプションまたはデータ転送を介して、お客様のサーバーまたは他のクラウドプロダクトに転送できます。トピックとデータフォーマット: デバイスプロパティの報告。
デバイスプロパティの設定
SetDeviceProperty API または SetDevicesProperty API を呼び出して、デバイスにプロパティを設定する指示を送信します。デバイスプロパティの設定方法については、「Alink プロトコルでのプロパティ設定の図」をご参照ください。
デバイスプロパティ設定の成功レスポンスは、IoT Platform がリクエストを送信したことのみを示しており、デバイスがそのリクエストを実行したことを保証するものではありません。デバイス SDK がレスポンスを返した後、デバイスは変更を確認するために新しいプロパティ値をレポートする必要があります。上記の「デバイスのプロパティ報告」セクションをご参照ください。
トピックとデータフォーマット (下り):
|
データフォーマット (下り) |
リクエストとレスポンスのトピック |
|
パススルー/カスタム |
|
|
Alink JSON |
|
リクエストデータフォーマット:
{
"id": "123",
"version": "1.0",
"params": {
"temperature": "30.5"
},
"method": "thing.service.property.set"
}
レスポンスデータフォーマット:
-
成功レスポンスの例
{ "code": 200, "data": {}, "id": "123", "message": "success", "version": "1.0" } -
失敗レスポンスの例
{ "code": 9201, "data": {}, "id": "123", "message": "device offLine", "version": "1.0" }
パラメーターの説明:
|
パラメーター |
タイプ |
説明 |
|
id |
文字列 |
メッセージ ID。0~4294967295 の範囲の数字で構成される文字列です。メッセージ ID は、現在のデバイスで一意である必要があります。 |
|
version |
文字列 |
プロトコルバージョン番号。有効な値は 1.0 のみです。 |
|
params |
オブジェクト |
プロパティ設定パラメーター。この例では、プロパティは次のように設定されます: カスタムモジュールのプロパティの場合、識別子はコロン (:) で区切られた |
|
method |
文字列 |
リクエストメソッド。例: |
|
パラメーター |
タイプ |
説明 |
|
id |
文字列 |
メッセージ ID。これは、リクエストパラメーターの id と同じです。 |
|
code |
整数 |
結果のステータスコードです。「デバイス側の共通コード」をご参照ください。 |
|
data |
オブジェクト |
リクエストが成功した場合、空のオブジェクトが返されます。 |
|
message |
String |
レスポンスメッセージ。リクエストが成功した場合、 |
|
version |
String |
プロトコルバージョン番号。リクエストパラメータの version と同じです。 |
エラーコード: デバイスが受信するエラーコード。
メッセージ転送: プロパティ設定の結果は、サーバー側サブスクリプションまたはデータ転送を介して、お使いのサーバーまたは他のクラウド製品に転送できます。トピックとデータフォーマットについては、「デバイス下り指示の結果」をご参照ください。
デバイスイベントの報告
Alink プロトコルにおけるデバイスイベント報告の図は、イベント報告のフローを示します。
トピックとデータフォーマット (デバイス発信):
-
パススルー/カスタム
Topic
データフォーマット
リクエストTopic:
/sys/${productKey}/${deviceName}/thing/model/up_rawリクエストデータは、デバイスが報告する生メッセージです。
説明パススルーデータには method パラメーターを含める必要があります。その値は、データ解析スクリプトで定義された対応するリクエストメソッドと一致している必要があります。たとえば、値は
thing.event.${tsl.event.identifier}.postとすることができます。例:
0xff0000007b00応答Topic:
/sys/${productKey}/${deviceName}/thing/model/up_raw_replyクラウドは次のフォーマットでデータを返します:
-
成功時の応答例
{ "code": 200, "data": {}, "id": "123", "message": "success", "version": "1.0" } -
失敗時の応答例
{ "code": 6813, "data": {}, "id": "123", "message": "topic illegal", "version": "1.0" }
-
-
Alink JSON
TSL モデルモジュール
Topic
データフォーマット
デフォルトモジュール
-
リクエストTopic:
/sys/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post -
応答Topic:
/sys/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post_reply
デフォルトの TSL モデルモジュールを例にすると、Alink リクエストのデータフォーマットは次の通りです:
{ "id": "123", "version": "1.0", "sys":{ "ack":0 }, "params": { "value": { "Power": "on", "WF": "2" }, "time": 1524448722000 }, "method": "thing.event.${tsl.event.identifier}.post" }Alink 応答データフォーマット:
{ "code": 200, "data": {}, "id": "123", "message": "success", "method": "thing.event.${tsl.event.identifier}.post", "version": "1.0" }リクエストが失敗した場合、
{}が返されます。カスタムモジュール
-
リクエストTopic:
/sys/${productKey}/${deviceName}/thing/event/${tsl.functionBlockId}:${tsl.event.identifier}/post -
応答Topic:
/sys/${productKey}/${deviceName}/thing/event/${tsl.functionBlockId}:${tsl.event.identifier}/post_reply
-
パラメーターの説明:
|
パラメーター |
タイプ |
説明 |
|
id |
String |
メッセージ ID。0~4294967295 の範囲の数値からなる文字列です。各メッセージ ID は、現在のデバイスで一意である必要があります。 |
|
version |
String |
プロトコルバージョン番号。有効な値は 1.0 のみです。 |
|
sys |
Object |
拡張機能パラメーター。 説明
デバイス側 SDK を使用し、拡張機能を設定しない場合、このパラメーターは省略され、デフォルト設定が適用されます。 |
|
ack |
Integer |
クラウドが応答を返すかどうかを指定します。sys 配下のフィールドです。
重要
設定の詳細:TSL (Thing Specification Language) モデルの使用例。 設定しない場合、このパラメーターは省略され、クラウドはデフォルトでレスポンスを返します。 |
|
method |
String |
リクエストメソッド。
説明
|
|
params |
Object |
報告するイベントの出力パラメーターです。 |
|
value |
Object |
イベントの出力パラメーターの情報です。この例では、Power と WF (動作電流) の 2 つのパラメーターを示します:
|
|
time |
Long |
イベント報告時の UNIX タイムスタンプ (ミリ秒単位の UTC) です。 これはオプションフィールドです。ビジネスシナリオに基づいて、タイムスタンプを含めるかどうかを決定してください。メッセージが頻繁で、タイムスタンプによってメッセージの順序を判断する必要がある場合は、タイムスタンプを含めることを推奨します。
|
|
パラメーター |
タイプ |
説明 |
|
id |
String |
メッセージ ID。0~4294967295 の範囲の数値からなる文字列です。各メッセージ ID は、現在のデバイスで一意である必要があります。 |
|
code |
Integer |
結果のステータスコードです。 デバイス側の一般的なコード。 説明
IoT Platform は、報告されたイベントをプロダクトの TSL 定義に基づいて検証します。検証に失敗したイベントはフィルタリングされ、エラーコードが返されます。 |
|
data |
Object |
リクエストが成功した場合、空のオブジェクトが返されます。 |
|
message |
String |
レスポンスメッセージ。リクエストが成功した場合、 |
|
method |
String |
レスポンスに対応するリクエストメソッド。リクエストパラメータの method と同じです。 |
|
version |
String |
プロトコルバージョン番号。リクエストパラメータの version と同じです。 |
Alink フォーマット例: プロダクトで alarm イベントが定義されているとします。その TSL 記述は次の通りです。パラメーターの詳細については、「TSL モデルとは」をご参照ください。
{
"schema": "https://iot-tsl.oss-cn-shanghai.aliyuncs.com/schema.json",
"link": "/sys/${productKey}/airCondition/thing/",
"profile": {
"productKey": "${productKey}",
"deviceName": "airCondition"
},
"events": [
{
"identifier": "alarm",
"name": "alarm",
"desc": "Fan alarm",
"type": "alert",
"required": true,
"outputData": [
{
"identifier": "errorCode",
"name": "Error code",
"dataType": {
"type": "text",
"specs": {
"length": "255"
}
}
}
],
"method": "thing.event.alarm.post"
}
]
}
デバイスがイベントを報告する際、Alink リクエストデータフォーマットは次の通りです:
{
"id": "123",
"version": "1.0",
"params": {
"value": {
"errorCode": "error"
},
"time": 1524448722000
},
"method": "thing.event.alarm.post"
}
エラーコード: デバイスが受信するエラーコード。
メッセージ転送: 報告されたイベントは、サーバー側サブスクリプションまたはデータ転送を介して、お客様のサーバーまたは他のクラウドプロダクトに転送できます。Topic とデータフォーマット: デバイスイベントの報告。
デバイスサービス呼び出し (非同期)
IoT Platform は、同期および非同期の呼び出しをサポートしています。TSL モデルでサービスを定義する際に、呼び出し方法を指定する必要があります。デバイスサービスの呼び出し方法については、「Alink プロトコルでのサービス呼び出しの図」をご参照ください。
-
同期: InvokeThingService API または InvokeThingsService API を呼び出します。IoT Platform は、RRPC を使用して同期的にリクエストを送信します。サービスは同期呼び出しに設定する必要があり、IoT Platform は対応する RRPC トピックをサブスクライブします。RRPC とは。
-
非同期: InvokeThingService API または InvokeThingsService API を呼び出してサービスを起動します。IoT Platform は非同期的にリクエストを送信し、デバイスは非同期的に結果を返します。この場合、サービスは非同期呼び出しに設定されており、IoT Platform はこのセクションで説明する非同期応答トピックをサブスクライブします。
トピックとデータフォーマット (下り):
|
ダウンリンクデータフォーマット |
リクエストとレスポンスのトピック |
|
パススルー/カスタム |
|
|
Alink JSON |
|
Alink リクエストデータフォーマット:
{
"id": "123",
"version": "1.0",
"params": {
"Power": "on",
"WF": "2"
},
"method": "thing.service.${tsl.service.identifier}"
}
レスポンスデータフォーマット:
-
成功レスポンスの例:
{ "code": 200, "data": {}, "id": "123", "message": "success", "version": "1.0" } -
失敗レスポンスの例:
{ "code": 9201, "data": {}, "id": "123", "message": "device offLine", "version": "1.0" }
パラメーターの説明:
|
パラメーター |
タイプ |
説明 |
|
id |
String |
メッセージ ID。0 から 4294967295 までの値を持つ数字の文字列です。各メッセージ ID は、現在のデバイスに対して一意である必要があります。 |
|
version |
String |
プロトコルバージョン番号。有効な値は 1.0 のみです。 |
|
params |
Object |
サービス呼び出しパラメーター。サービス識別子とサービスの値が含まれます。この例では、Power と WF (動作電流) の 2 つのパラメーターを示しています。
|
|
method |
String |
リクエストメソッド。
説明
|
|
パラメーター |
タイプ |
説明 |
|
id |
String |
メッセージ ID。0 から 4294967295 までの値を持つ数字の文字列です。各メッセージ ID は、現在のデバイスに対して一意である必要があります。 |
|
code |
Integer |
ステータスコード。デバイス側の一般的なコード。 |
|
data |
Object |
レスポンス情報。 data パラメーターの値は TSL モデルの定義によって異なります。サービスが結果を返さない場合、data の値は空のオブジェクト {} です。サービスが結果を返す場合、返されるデータはサービスの定義に厳密に従います。 |
|
message |
String |
レスポンスメッセージ。リクエストが成功した場合、 |
|
version |
String |
プロトコルバージョン番号。リクエストパラメータの version と同じです。 |
Alink フォーマットの例: プロダクトで SetWeight という名前のサービスが定義されていると仮定します。その TSL 定義は次のとおりです:
{
"schema": "https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json",
"profile": {
"productKey": "testProduct01"
},
"services": [
{
"outputData": [
{
"identifier": "OldWeight",
"dataType": {
"specs": {
"unit": "kg",
"min": "0",
"max": "200",
"step": "1"
},
"type": "double"
},
"name": "古い重量"
},
{
"identifier": "CollectTime",
"dataType": {
"specs": {
"length": "2048"
},
"type": "text"
},
"name": "収集時刻"
}
],
"identifier": "SetWeight",
"inputData": [
{
"identifier": "NewWeight",
"dataType": {
"specs": {
"unit": "kg",
"min": "0",
"max": "200",
"step": "1"
},
"type": "double"
},
"name": "新しい重量"
}
],
"method": "thing.service.SetWeight",
"name": "重量を設定",
"required": false,
"callType": "async"
}
]
}
サービスが呼び出されると、Alink リクエストデータフォーマットは次のようになります:
{
"method": "thing.service.SetWeight",
"id": "105917531",
"params": {
"NewWeight": 100.8
},
"version": "1.0"
}
Alink レスポンスデータフォーマット:
{
"id": "105917531",
"code": 200,
"data": {
"CollectTime": "1536228947682",
"OldWeight": 100.101
},
"message": "success",
"version": "1.0"
}
エラーコード: デバイスが受信するエラーコード。
メッセージ転送: 非同期呼び出しの結果は、サーバー側サブスクリプションまたはデータ転送を介して、お使いのサーバーまたは他のクラウド製品に転送できます。トピックとデータフォーマット:「デバイス下り指示の結果」をご参照ください。
ゲートウェイによるデータの一括報告
ゲートウェイデバイスは、プロパティとイベントを一括で報告できます。また、サブデバイスのプロパティとイベントも一括で報告できます。
-
一度に最大 200 個のプロパティと 20 個のイベントを報告できます。
-
一度に最大 20 台のサブデバイスのデータを報告できます。
トピックとデータフォーマット (デバイスからの送信):
-
パススルー/カスタム
トピック
データフォーマット
リクエストトピック:
/sys/${productKey}/${deviceName}/thing/model/up_rawリクエストデータは、デバイスが報告する RAW メッセージです。
説明パススルーデータには method パラメーターを含める必要があります。値は、データ解析スクリプトで定義された対応するリクエストメソッドと一致させる必要があります。たとえば、値は
thing.event.property.pack.postに設定できます。例:
0xff0000007b00レスポンストピック:
/sys/${productKey}/${deviceName}/thing/model/up_raw_replyクラウドは、次の形式でデータを返します:
-
成功レスポンスの例
{ "code": 200, "data": {}, "id": "123", "message": "success", "version": "1.0" } -
失敗レスポンスの例
{ "code": 6813, "data": {}, "id": "123", "message": "topic illegal", "version": "1.0" }
-
-
Alink JSON
リクエストとレスポンスのトピック
リクエストとレスポンスのデータ
リクエストトピック:
/sys/${productKey}/${deviceName}/thing/event/property/pack/postAlink リクエストデータフォーマット:
{ "id": "123", "version": "1.0", "sys":{ "ack":0 }, "params": { "properties": { "Power": { "value": "on", "time": 1524448722000 }, "WF": { "value": { }, "time": 1524448722000 } }, "events": { "alarmEvent1": { "value": { "param1": "on", "param2": "2" }, "time": 1524448722000 }, "alertEvent2": { "value": { "param1": "on", "param2": "2" }, "time": 1524448722000 } }, "subDevices": [ { "identity": { "productKey": "", "deviceName": "" }, "properties": { "Power": { "value": "on", "time": 1524448722000 }, "WF": { "value": { }, "time": 1524448722000 } }, "events": { "alarmEvent1": { "value": { "param1": "on", "param2": "2" }, "time": 1524448722000 }, "alertEvent2": { "value": { "param1": "on", "param2": "2" }, "time": 1524448722000 } } } ] }, "method": "thing.event.property.pack.post" }レスポンストピック:
/sys/${productKey}/${deviceName}/thing/event/property/pack/post_replyAlink レスポンスデータフォーマット:
{ "code": 200, "data": {}, "id": "123", "message": "success", "method": "thing.event.property.pack.post", "version": "1.0" }リクエストが失敗した場合、
{}が返されます。
パラメーターの説明:
|
パラメーター |
タイプ |
説明 |
|
id |
String |
メッセージ ID。0〜4294967295 の範囲の数値からなる文字列です。各メッセージ ID は、現在のデバイス内で一意である必要があります。 |
|
version |
String |
プロトコルバージョン番号。有効な値は 1.0 のみです。 |
|
sys |
Object |
拡張機能パラメーター。 説明
デバイス側 SDK を使用し、拡張機能を設定しない場合、このパラメーターは省略され、デフォルト設定が適用されます。 |
|
ack |
Integer |
クラウドが応答を返すかどうかを指定します。sys 配下のフィールドです。
重要
設定の詳細:TSL (Thing Specification Language) モデルの使用例。 設定しない場合、このパラメーターは省略され、クラウドはデフォルトでレスポンスを返します。 |
|
params |
Object |
リクエストパラメーター。 |
|
properties |
Object |
プロパティ。プロパティ識別子、プロパティ値 value、およびプロパティの生成時刻 time が含まれます。 time パラメーターはオプションです。ビジネスシナリオに基づいてタイムスタンプを含めるかどうかを決定してください。メッセージが頻繁で、タイムスタンプによってメッセージの順序を決定する必要がある場合は、タイムスタンプを含めることを推奨します。 この例では、デバイスは 2 つのプロパティ、電源と WF (動作電流) の情報を報告します。 カスタムモジュールプロパティの場合、識別子の形式は
|
|
events |
Object |
イベント。イベント識別子、イベント出力パラメーター value、およびイベントの生成時刻 time が含まれます。 time パラメーターはオプションです。ビジネスシナリオに基づいてタイムスタンプを含めるかどうかを決定してください。メッセージが頻繁で、タイムスタンプによってメッセージの順序を決定する必要がある場合は、タイムスタンプを含めることを推奨します。 この例では、 カスタムモジュールイベントの場合、識別子の形式はコロン区切りの
|
|
subDevices |
Array |
サブデバイス情報。 |
|
productKey |
String |
サブデバイスの ProductKey。 |
|
deviceName |
String |
サブデバイスの名前。 |
|
method |
文字列 |
リクエストパラメーター。値: |
|
パラメーター |
タイプ |
説明 |
|
id |
String |
メッセージ ID。0〜4294967295 の範囲の数値からなる文字列です。各メッセージ ID は、現在のデバイス内で一意である必要があります。 |
|
code |
Integer |
レスポンスコード。値が 200 の場合は成功を示します。 説明
システムは、デバイス、トポロジー、および報告されたプロパティとイベントを、プロダクトの TSL (Thing Specification Language) モデル定義と照合して検証します。これらのチェックのいずれかが失敗した場合、データの報告に失敗します。 |
|
data |
Object |
リクエストが成功した場合、空のオブジェクトが返されます。 |
|
message |
String |
レスポンスメッセージ。リクエストが成功した場合、 |
|
method |
String |
レスポンスに対応するリクエストメソッド。リクエストパラメータの method と同じです。 |
|
version |
String |
プロトコルバージョン番号。リクエストパラメータの version と同じです。 |
エラーコード: デバイスが受信するエラーコード。
メッセージ転送: ゲートウェイからの一括 TSL (Thing Specification Language) モデルデータは、サーバー側サブスクリプションまたはデータ転送を介して、お客様のサーバーまたは他のクラウドプロダクトに転送できます。サブデバイスとゲートウェイのメッセージは、転送前に個別のプロパティまたはイベントメッセージに分割されます。トピックとデータフォーマット:「デバイスプロパティの報告」と「デバイスイベントの報告」をご参照ください。
TSL (Thing Specification Language) モデルの履歴データレポート
トピックとデータ形式:
-
リクエストトピック:
/sys/${productKey}/${deviceName}/thing/event/property/history/post -
レスポンストピック:
/sys/${productKey}/${deviceName}/thing/event/property/history/post_reply
Alink リクエストデータ形式:
{
"id": "123",
"version": "1.0",
"sys":{
"ack":0
},
"method": "thing.event.property.history.post",
"params": [
{
"identity": {
"productKey": "",
"deviceName": ""
},
"properties": [
{
"Power": {
"value": "on",
"time": 1524448722000
},
"WF": {
"value": "3",
"time": 1524448722000
}
},
{
"Power": {
"value": "on",
"time": 1524448722000
},
"WF": {
"value": "3",
"time": 1524448722000
}
}
],
"events": [
{
"alarmEvent": {
"value": {
"Power": "on",
"WF": "2"
},
"time": 1524448722000
},
"alertEvent": {
"value": {
"Power": "off",
"WF": "3"
},
"time": 1524448722000
}
}
]
},
{
"identity": {
"productKey": "",
"deviceName": ""
},
"properties": [
{
"Power": {
"value": "on",
"time": 1524448722000
},
"WF": {
"value": "3",
"time": 1524448722000
}
}
],
"events": [
{
"alarmEvent": {
"value": {
"Power": "on",
"WF": "2"
},
"time": 1524448722000
},
"alertEvent": {
"value": {
"Power": "off",
"WF": "3"
},
"time": 1524448722000
}
}
]
}
]
}
Alink レスポンスデータ形式:
-
成功レスポンスの例
{ "code": 200, "data": {}, "id": "123", "message": "success", "method": "thing.event.property.history.post", "version": "1.0" } -
失敗レスポンスの例
{ "code": 5092, "data": {}, "id": "123", "message": "property not found", "method": "thing.event.property.history.post", "version": "1.0" }
パラメーターの説明:
|
パラメーター |
タイプ |
説明 |
|
id |
String |
メッセージ ID。0 から 4294967295 までの値を持つ数字の文字列です。各メッセージ ID は、現在のデバイスにおいて一意である必要があります。 |
|
version |
String |
プロトコルバージョン番号。唯一の有効な値は 1.0 です。 |
|
sys |
Object |
拡張機能パラメーター。 説明
デバイス側 SDK を使用し、拡張機能を設定しない場合、このパラメーターは省略され、デフォルト設定が適用されます。 |
|
ack |
Integer |
クラウドが応答を返すかどうかを指定します。sys 配下のフィールドです。
重要
設定の詳細:TSL (Thing Specification Language) モデルの使用例。 設定しない場合、このパラメーターは省略され、クラウドはデフォルトでレスポンスを返します。 |
|
method |
String |
リクエストメソッド。静的なフィールドです。値は |
|
params |
Object |
リクエストパラメーター。 |
|
identity |
String |
データが属するデバイスの証明書に基づくアイデンティティ情報です。これには、 説明
直接接続デバイスは、自身の履歴 TSL モデルデータのみを報告できます。ゲートウェイデバイスは、そのサブデバイスの履歴 TSL モデルデータを報告できます。ゲートウェイがサブデバイスの履歴データを報告する場合、[identity] にはサブデバイスの情報が含まれます。 |
|
properties |
Object |
プロパティです。プロパティ識別子、値 ( この例では、デバイスは 2 つのプロパティ、電源と WF (動作電流) の履歴情報を報告します。 カスタムモジュールプロパティの場合、識別子の形式は
|
|
events |
Object |
イベントです。イベント識別子、出力パラメーター ( この例では、 カスタムモジュールイベントの場合、識別子の形式はコロン区切りの
|
|
パラメーター |
タイプ |
説明 |
|
id |
String |
メッセージ ID。0 から 4294967295 までの値を持つ数字の文字列です。各メッセージ ID は、現在のデバイスにおいて一意である必要があります。 |
|
code |
Integer |
ステータスコードです。デバイス側の一般的なコードをご参照ください。 |
|
data |
Object |
リクエストが成功した場合、空のオブジェクトが返されます。 |
|
message |
String |
レスポンスメッセージ。リクエストが成功した場合、 |
|
method |
String |
レスポンスに対応するリクエストメソッド。リクエストパラメータの method と同じです。 |
|
version |
String |
プロトコルバージョン番号。リクエストパラメータの version と同じです。 |
エラーコード: デバイスが受信するエラーコード。
メッセージ転送: 履歴 TSL (Thing Specification Language) モデルデータは、サーバー側サブスクリプションまたはデータ転送を介して、お使いのサーバーまたは他のクラウドプロダクトに転送できます。トピックとデータ形式については、「履歴プロパティのレポート」と「履歴イベントのレポート」をご参照ください。
デバイスからの TSL モデルの履歴データが転送されると、プラットフォームは プロパティとイベント配下の項目ごとに個別のメッセージを作成します。各プロパティまたはイベントの履歴データは、その後、個別に転送されます。
デバイスのプロパティおよびイベントのバッチ報告
トピックとデータ形式 (上り):
-
リクエストトピック:
/sys/${productKey}/${deviceName}/thing/event/property/batch/post -
応答トピック:
/sys/${productKey}/${deviceName}/thing/event/property/batch/post_reply
Alink リクエストデータ形式:
{
"id": "123",
"version": "1.0",
"sys":{
"ack":0
},
"method": "thing.event.property.batch.post",
"params": {
"properties": {
"Power": [
{
"value": "on",
"time": 1524448722000
},
{
"value": "off",
"time": 1524448722001
}
],
"WF": [
{
"value": 3,
"time": 1524448722000
},
{
"value": 4,
"time": 1524448722009
}
]
},
"events": {
"alarmEvent": [
{
"value": {
"Power": "on",
"WF": "2"
},
"time": 1524448722000
},
{
"value": {
"Power": "on",
"WF": "2"
},
"time": 1524448722000
}
]
}
}
}
Alink 応答データ形式:
-
成功時の応答例:
{ "code": 200, "data": {}, "id": "123", "message": "success", "method": "thing.event.property.batch.post", "version": "1.0" } -
失敗時の応答例:
{ "code": 9201, "data": {}, "id": "123", "message": "device offLine", "method": "thing.event.property.batch.post", "version": "1.0" }
パラメータの説明:
|
パラメータ |
タイプ |
説明 |
|
id |
String |
メッセージ ID。0~4294967295 の範囲の数値からなる文字列です。各メッセージ ID は、現在のデバイスで一意である必要があります。 |
|
version |
String |
プロトコルバージョン番号。有効な値は 1.0 のみです。 |
|
sys |
Object |
拡張機能パラメーター。 説明
デバイス側 SDK を使用し、拡張機能を設定しない場合、このパラメーターは省略され、デフォルト設定が適用されます。 |
|
ack |
Integer |
クラウドが応答を返すかどうかを指定します。sys 配下のフィールドです。
重要
設定の詳細:TSL (Thing Specification Language) モデルの使用例。 設定しない場合、このパラメーターは省略され、クラウドはデフォルトでレスポンスを返します。 |
|
method |
String |
リクエストメソッドです。静的フィールドであり、値は |
|
params |
Object |
リクエストパラメータ。 |
|
properties |
Object |
プロパティ。プロパティ識別子、プロパティ値 value、およびプロパティが生成された時刻 time が含まれます。 この例では、デバイスは Power (電源) と WF (動作電流) の 2 つのプロパティのバッチ情報を報告します。 カスタムモジュールプロパティの場合、識別子の形式は
|
|
events |
Object |
イベント。イベント識別子、イベント出力パラメータ value、およびイベントが生成された時刻 time が含まれます。 この例では、alarmEvent のバッチ情報が、対応するパラメータ Power (電源) と WF (動作電流) と共に報告されます。 カスタムモジュールイベントの場合、識別子の形式はコロン区切りの
|
|
パラメータ |
タイプ |
説明 |
|
id |
String |
メッセージ ID。0~4294967295 の範囲の数値からなる文字列です。各メッセージ ID は、現在のデバイスで一意である必要があります。 |
|
code |
Integer |
結果のステータスコードです。詳細は、デバイス側の一般的なコードをご参照ください。 |
|
data |
Object |
リクエストが成功した場合、空のオブジェクトが返されます。 |
|
message |
String |
レスポンスメッセージ。リクエストが成功した場合、 |
|
method |
String |
レスポンスに対応するリクエストメソッド。リクエストパラメータの method と同じです。 |
|
version |
String |
プロトコルバージョン番号。リクエストパラメータの version と同じです。 |
エラーコード: デバイスが受信するエラーコード。
メッセージ転送: バッチ TSL (Thing Specification Language) モデルデータは、サーバー側サブスクリプションを介してお客様のサーバーに転送できます。プロパティとイベントのデータは、個別のメッセージとして転送されます。トピックとデータ形式については、「デバイスからのバッチプロパティ報告」および「デバイスからのバッチイベント報告」をご参照ください。