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

IoT Platform:デバイスのプロパティ、イベント、サービス

最終更新日:Jun 09, 2026

プロダクトの TSL モデルを定義した後、デバイスは Alink JSON フォーマットを使用してプロパティイベントを報告します。サーバーサイドも Alink JSON を使用してプロパティを設定し、サービスを呼び出します。デバイスがカスタムフォーマットを使用する場合は、データ解析を設定して変換してください。

背景情報

TSL モデルのデータフォーマット (プロパティ、イベント、サービス) は、「TSL モデルとは」で定義されています。

デバイスは、標準の Alink JSON フォーマット (推奨) またはパススルー/カスタムフォーマットのいずれかでデータを報告します。いずれかの方法を選択する必要があります。

  • 標準データフォーマット (Alink JSON):デバイスは、IoT Platform で定義された Alink JSON フォーマットでデータを生成し、報告します。フォーマットの例については、以下のセクションをご参照ください。

  • パススルー/カスタム:デバイスは、バイナリデータストリームなどの生データを報告します。Alibaba Cloud IoT Platform は、コンソールで送信したデータ解析スクリプトを実行して、生データを標準データフォーマットに変換してから処理します。クラウドは、標準の Alink JSON フォーマットでデータを返します。その後、応答が解析され、デバイスにプッシュされます。TSL model data pass-through

重要
  • 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"
      }

パラメータの説明:

表 1. リクエストパラメータ

パラメータ

タイプ

説明

id

String

メッセージ ID。0 から 4294967295 までの値を持つ数字の文字列です。各メッセージ ID は、現在のデバイスにおいて一意である必要があります。

version

String

プロトコルバージョン番号。有効な値は 1.0 のみです。

sys

Object

拡張機能パラメーター。

説明

デバイス側 SDK を使用し、拡張機能を設定しない場合、このパラメーターは省略され、デフォルト設定が適用されます。

ack

Integer

クラウドが応答を返すかどうかを指定します。sys 配下のフィールドです。

  • 1:クラウドがレスポンスを返します。

  • 0:クラウドがレスポンスを返しません。

重要

設定の詳細:TSL (Thing Specification Language) モデルの使用例

設定しない場合、このパラメーターは省略され、クラウドはデフォルトでレスポンスを返します。

method

String

リクエストメソッド。例: thing.event.property.post

params

Object

報告するプロパティデータ。この例では、デバイスは Power (電源) および WF (動作電流) プロパティを報告しており、それぞれに値とオプションのタイムスタンプが含まれています。

プロパティ値のみを渡す場合、time および value フィールドをアップロードする必要はありません。以下は params パラメータの例です:

"params": {
    "Power": "on",
    "WF": 23.6
}

カスタムモジュールプロパティの場合、識別子のフォーマットは ${moduleIdentifier}:${propertyIdentifier} (コロンで区切られます) です。例:

"test:Power": {
    "value": "on",
    "time": 1524448722000
}

time

Long

プロパティが報告される際の UNIX タイムスタンプ (UTC ミリ秒単位) です。

オプション。メッセージの順序が重要な場合は、タイムスタンプを含めてください。

  • time が含まれている場合、IoT Platform はそれをプロパティ報告時刻として使用します。

  • time が省略されている場合、IoT Platform は報告時刻を自動的に生成します。

value

Object

報告されるプロパティ値。

time を含めない場合、value を省略し、パラメータ値を直接報告できます。

表 2. レスポンスパラメータ

パラメータ

タイプ

説明

id

String

メッセージ ID。0 から 4294967295 までの値を持つ数字の文字列です。各メッセージ ID は、現在のデバイスにおいて一意である必要があります。

code

Integer

結果のステータスコード。デバイス側の共通コード

説明

IoT Platform は、報告されたプロパティをプロダクトの TSL 定義に対して検証します。検証に失敗したプロパティはフィルタリングされ、エラーコードが返されます。

data

Object

リクエストが成功した場合、空のオブジェクトが返されます。

message

String

レスポンスメッセージ。リクエストが成功した場合、 success が返されます。

method

String

レスポンスに対応するリクエストメソッド。リクエストパラメータの method と同じです。

version

String

プロトコルバージョン番号。リクエストパラメータの version と同じです。

エラーコード: デバイスが受信するエラーコード

メッセージ転送: 報告されたプロパティは、サーバー側サブスクリプションまたはデータ転送を介して、お客様のサーバーまたは他のクラウドプロダクトに転送できます。トピックとデータフォーマット: デバイスプロパティの報告

デバイスプロパティの設定

SetDeviceProperty API または SetDevicesProperty API を呼び出して、デバイスにプロパティを設定する指示を送信します。デバイスプロパティの設定方法については、「Alink プロトコルでのプロパティ設定の図」をご参照ください。

重要

デバイスプロパティ設定の成功レスポンスは、IoT Platform がリクエストを送信したことのみを示しており、デバイスがそのリクエストを実行したことを保証するものではありません。デバイス SDK がレスポンスを返した後、デバイスは変更を確認するために新しいプロパティ値をレポートする必要があります。上記の「デバイスのプロパティ報告」セクションをご参照ください。

トピックとデータフォーマット (下り):

データフォーマット (下り)

リクエストとレスポンスのトピック

パススルー/カスタム

  • リクエストトピック: /sys/${productKey}/${deviceName}/thing/model/down_raw

  • レスポンストピック: /sys/${productKey}/${deviceName}/thing/model/down_raw_reply

Alink JSON

  • リクエストトピック: /sys/${productKey}/${deviceName}/thing/service/property/set

  • レスポンストピック: /sys/${productKey}/${deviceName}/thing/service/property/set_reply

リクエストデータフォーマット:

{
    "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"
    }

パラメーターの説明:

表 3. リクエストパラメーター

パラメーター

タイプ

説明

id

文字列

メッセージ ID。0~4294967295 の範囲の数字で構成される文字列です。メッセージ ID は、現在のデバイスで一意である必要があります。

version

文字列

プロトコルバージョン番号。有効な値は 1.0 のみです。

params

オブジェクト

プロパティ設定パラメーター。この例では、プロパティは次のように設定されます: { "temperature": "30.5" }

カスタムモジュールのプロパティの場合、識別子はコロン (:) で区切られた ${moduleIdentifier}:${propertyIdentifier} というフォーマットです。例: { "test:temperature": "30.5" }

method

文字列

リクエストメソッド。例: thing.service.property.set

表 4. レスポンスパラメーター

パラメーター

タイプ

説明

id

文字列

メッセージ ID。これは、リクエストパラメーターの id と同じです。

code

整数

結果のステータスコードです。「デバイス側の共通コード」をご参照ください。

data

オブジェクト

リクエストが成功した場合、空のオブジェクトが返されます。

message

String

レスポンスメッセージ。リクエストが成功した場合、 success が返されます。

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

パラメーターの説明:

表 5. リクエストパラメーター

パラメーター

タイプ

説明

id

String

メッセージ ID。0~4294967295 の範囲の数値からなる文字列です。各メッセージ ID は、現在のデバイスで一意である必要があります。

version

String

プロトコルバージョン番号。有効な値は 1.0 のみです。

sys

Object

拡張機能パラメーター。

説明

デバイス側 SDK を使用し、拡張機能を設定しない場合、このパラメーターは省略され、デフォルト設定が適用されます。

ack

Integer

クラウドが応答を返すかどうかを指定します。sys 配下のフィールドです。

  • 1:クラウドがレスポンスを返します。

  • 0:クラウドがレスポンスを返しません。

重要

設定の詳細:TSL (Thing Specification Language) モデルの使用例

設定しない場合、このパラメーターは省略され、クラウドはデフォルトでレスポンスを返します。

method

String

リクエストメソッド。

  • デフォルトモジュール

    値は thing.event.${tsl.event.identifier}.post です。

  • カスタムモジュール

    値は thing.event.${tsl.functionBlockId}:${tsl.event.identifier}.post です。

説明

${tsl.event.identifier} は TSL モデルで定義されたイベント識別子であり、${tsl.functionBlockId} はカスタムモジュール識別子です。 単一機能の TSL モデルを追加

params

Object

報告するイベントの出力パラメーターです。

value

Object

イベントの出力パラメーターの情報です。この例では、Power と WF (動作電流) の 2 つのパラメーターを示します:

{
    "Power": "on",
    "WF": "2"
}

time

Long

イベント報告時の UNIX タイムスタンプ (ミリ秒単位の UTC) です。

これはオプションフィールドです。ビジネスシナリオに基づいて、タイムスタンプを含めるかどうかを決定してください。メッセージが頻繁で、タイムスタンプによってメッセージの順序を判断する必要がある場合は、タイムスタンプを含めることを推奨します。

  • time を含める場合、IoT Platform は指定された時刻をイベント報告時刻として保存します。

  • time を含めない場合、IoT Platform はイベント報告時刻を自動的に生成して保存します。

表 6. 応答パラメーター

パラメーター

タイプ

説明

id

String

メッセージ ID。0~4294967295 の範囲の数値からなる文字列です。各メッセージ ID は、現在のデバイスで一意である必要があります。

code

Integer

結果のステータスコードです。 デバイス側の一般的なコード

説明

IoT Platform は、報告されたイベントをプロダクトの TSL 定義に基づいて検証します。検証に失敗したイベントはフィルタリングされ、エラーコードが返されます。

data

Object

リクエストが成功した場合、空のオブジェクトが返されます。

message

String

レスポンスメッセージ。リクエストが成功した場合、 success が返されます。

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 はこのセクションで説明する非同期応答トピックをサブスクライブします。

トピックとデータフォーマット (下り):

ダウンリンクデータフォーマット

リクエストとレスポンスのトピック

パススルー/カスタム

  • リクエストトピック: /sys/${productKey}/${deviceName}/thing/model/down_raw

  • レスポンストピック: /sys/${productKey}/${deviceName}/thing/model/down_raw_reply

Alink JSON

  • デフォルトモジュール

    • リクエストトピック: /sys/${productKey}/${deviceName}/thing/service/${tsl.service.identifier}

    • レスポンストピック: /sys/${productKey}/${deviceName}/thing/service/${tsl.service.identifier}_reply

  • カスタムモジュール

    • リクエストトピック: /sys/${productKey}/${deviceName}/thing/service/${tsl.functionBlockId}:${tsl.service.identifier}

    • レスポンストピック: /sys/${productKey}/${deviceName}/thing/service/${tsl.functionBlockId}:${tsl.service.identifier}_reply

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"
    }

パラメーターの説明:

表 7. リクエストパラメーター

パラメーター

タイプ

説明

id

String

メッセージ ID。0 から 4294967295 までの値を持つ数字の文字列です。各メッセージ ID は、現在のデバイスに対して一意である必要があります。

version

String

プロトコルバージョン番号。有効な値は 1.0 のみです。

params

Object

サービス呼び出しパラメーター。サービス識別子とサービスの値が含まれます。この例では、Power と WF (動作電流) の 2 つのパラメーターを示しています。

{
    "Power": "on",
    "WF": "2"
}

method

String

リクエストメソッド。

  • デフォルトモジュール

    値は thing.service.${tsl.service.identifier} です。

  • カスタムモジュール

    値は thing.service.${tsl.functionBlockId}:${tsl.service.identifier} です。

説明

${tsl.service.identifier} は TSL モデルで定義されたサービス識別子、${tsl.functionBlockId} はカスタムモジュールの識別子です。単一機能の TSL モデルの追加

表 8. レスポンスパラメーター

パラメーター

タイプ

説明

id

String

メッセージ ID。0 から 4294967295 までの値を持つ数字の文字列です。各メッセージ ID は、現在のデバイスに対して一意である必要があります。

code

Integer

ステータスコード。デバイス側の一般的なコード

data

Object

レスポンス情報。

data パラメーターの値は TSL モデルの定義によって異なります。サービスが結果を返さない場合、data の値は空のオブジェクト {} です。サービスが結果を返す場合、返されるデータはサービスの定義に厳密に従います。

message

String

レスポンスメッセージ。リクエストが成功した場合、 success が返されます。

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/post

    Alink リクエストデータフォーマット:

    {
        "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_reply

    Alink レスポンスデータフォーマット:

    {
        "code": 200,
        "data": {},
        "id": "123",
        "message": "success",
        "method": "thing.event.property.pack.post",
        "version": "1.0"
    }

    リクエストが失敗した場合、{} が返されます。

パラメーターの説明:

表 9. リクエストパラメーター

パラメーター

タイプ

説明

id

String

メッセージ ID。0〜4294967295 の範囲の数値からなる文字列です。各メッセージ ID は、現在のデバイス内で一意である必要があります。

version

String

プロトコルバージョン番号。有効な値は 1.0 のみです。

sys

Object

拡張機能パラメーター。

説明

デバイス側 SDK を使用し、拡張機能を設定しない場合、このパラメーターは省略され、デフォルト設定が適用されます。

ack

Integer

クラウドが応答を返すかどうかを指定します。sys 配下のフィールドです。

  • 1:クラウドがレスポンスを返します。

  • 0:クラウドがレスポンスを返しません。

重要

設定の詳細:TSL (Thing Specification Language) モデルの使用例

設定しない場合、このパラメーターは省略され、クラウドはデフォルトでレスポンスを返します。

params

Object

リクエストパラメーター。

properties

Object

プロパティ。プロパティ識別子、プロパティ値 value、およびプロパティの生成時刻 time が含まれます。

time パラメーターはオプションです。ビジネスシナリオに基づいてタイムスタンプを含めるかどうかを決定してください。メッセージが頻繁で、タイムスタンプによってメッセージの順序を決定する必要がある場合は、タイムスタンプを含めることを推奨します。

この例では、デバイスは 2 つのプロパティ、電源と WF (動作電流) の情報を報告します。

カスタムモジュールプロパティの場合、識別子の形式は ${moduleIdentifier}:${propertyIdentifier} です (コロンで区切られます)。 例:

"test:Power": {
    "value": "on",
    "time": 1524448722000
}

events

Object

イベント。イベント識別子、イベント出力パラメーター value、およびイベントの生成時刻 time が含まれます。

time パラメーターはオプションです。ビジネスシナリオに基づいてタイムスタンプを含めるかどうかを決定してください。メッセージが頻繁で、タイムスタンプによってメッセージの順序を決定する必要がある場合は、タイムスタンプを含めることを推奨します。

この例では、alarmEvent1alertEvent2 の 2 つのイベントを、対応するパラメーター param1param2 と共に報告します。

カスタムモジュールイベントの場合、識別子の形式はコロン区切りの ${moduleIdentifier}:${eventIdentifier} です。 例:

"test:alarmEvent1": {
    "value": {
        "param1": "on",
        "param2": "2"
    },
    "time": 1524448722000
}

subDevices

Array

サブデバイス情報。

productKey

String

サブデバイスの ProductKey。

deviceName

String

サブデバイスの名前。

method

文字列

リクエストパラメーター。値: thing.event.property.pack.post

表 10. レスポンスパラメーター

パラメーター

タイプ

説明

id

String

メッセージ ID。0〜4294967295 の範囲の数値からなる文字列です。各メッセージ ID は、現在のデバイス内で一意である必要があります。

code

Integer

レスポンスコード。値が 200 の場合は成功を示します。

説明

システムは、デバイス、トポロジー、および報告されたプロパティとイベントを、プロダクトの TSL (Thing Specification Language) モデル定義と照合して検証します。これらのチェックのいずれかが失敗した場合、データの報告に失敗します。

data

Object

リクエストが成功した場合、空のオブジェクトが返されます。

message

String

レスポンスメッセージ。リクエストが成功した場合、 success が返されます。

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"
    }

パラメーターの説明:

表 11. リクエストパラメーター

パラメーター

タイプ

説明

id

String

メッセージ ID。0 から 4294967295 までの値を持つ数字の文字列です。各メッセージ ID は、現在のデバイスにおいて一意である必要があります。

version

String

プロトコルバージョン番号。唯一の有効な値は 1.0 です。

sys

Object

拡張機能パラメーター。

説明

デバイス側 SDK を使用し、拡張機能を設定しない場合、このパラメーターは省略され、デフォルト設定が適用されます。

ack

Integer

クラウドが応答を返すかどうかを指定します。sys 配下のフィールドです。

  • 1:クラウドがレスポンスを返します。

  • 0:クラウドがレスポンスを返しません。

重要

設定の詳細:TSL (Thing Specification Language) モデルの使用例

設定しない場合、このパラメーターは省略され、クラウドはデフォルトでレスポンスを返します。

method

String

リクエストメソッド。静的なフィールドです。値は thing.event.property.history.post です。

params

Object

リクエストパラメーター。

identity

String

データが属するデバイスの証明書に基づくアイデンティティ情報です。これには、productKey パラメーターと deviceName パラメーターが含まれます。

説明

直接接続デバイスは、自身の履歴 TSL モデルデータのみを報告できます。ゲートウェイデバイスは、そのサブデバイスの履歴 TSL モデルデータを報告できます。ゲートウェイがサブデバイスの履歴データを報告する場合、[identity] にはサブデバイスの情報が含まれます。

properties

Object

プロパティです。プロパティ識別子、値 (value)、およびプロパティが生成された時刻 (time) が含まれます。

この例では、デバイスは 2 つのプロパティ、電源と WF (動作電流) の履歴情報を報告します。

カスタムモジュールプロパティの場合、識別子の形式は ${moduleIdentifier}:${propertyIdentifier} です (コロンで区切られます)。 例:

"test:Power": {
    "value": "on",
    "time": 1524448722000
}

events

Object

イベントです。イベント識別子、出力パラメーター (value)、およびイベントが生成された時刻 (time) が含まれます。

この例では、alarmEventalertEvent の履歴情報が、対応するパラメーターである電源と WF (動作電流) と共に報告されます。

カスタムモジュールイベントの場合、識別子の形式はコロン区切りの ${moduleIdentifier}:${eventIdentifier} です。 例:

"test:alarmEvent": {
    "value": {
        "Power": "on", 
        "WF": "2"
    }, 
    "time": 1524448722000
}
表 12. レスポンスパラメーター

パラメーター

タイプ

説明

id

String

メッセージ ID。0 から 4294967295 までの値を持つ数字の文字列です。各メッセージ ID は、現在のデバイスにおいて一意である必要があります。

code

Integer

ステータスコードです。デバイス側の一般的なコードをご参照ください。

data

Object

リクエストが成功した場合、空のオブジェクトが返されます。

message

String

レスポンスメッセージ。リクエストが成功した場合、 success が返されます。

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"
    }

パラメータの説明:

表 13. リクエストパラメータ

パラメータ

タイプ

説明

id

String

メッセージ ID。0~4294967295 の範囲の数値からなる文字列です。各メッセージ ID は、現在のデバイスで一意である必要があります。

version

String

プロトコルバージョン番号。有効な値は 1.0 のみです。

sys

Object

拡張機能パラメーター。

説明

デバイス側 SDK を使用し、拡張機能を設定しない場合、このパラメーターは省略され、デフォルト設定が適用されます。

ack

Integer

クラウドが応答を返すかどうかを指定します。sys 配下のフィールドです。

  • 1:クラウドがレスポンスを返します。

  • 0:クラウドがレスポンスを返しません。

重要

設定の詳細:TSL (Thing Specification Language) モデルの使用例

設定しない場合、このパラメーターは省略され、クラウドはデフォルトでレスポンスを返します。

method

String

リクエストメソッドです。静的フィールドであり、値は thing.event.property.batch.post です。

params

Object

リクエストパラメータ。

properties

Object

プロパティ。プロパティ識別子、プロパティ値 value、およびプロパティが生成された時刻 time が含まれます。

この例では、デバイスは Power (電源) と WF (動作電流) の 2 つのプロパティのバッチ情報を報告します。

カスタムモジュールプロパティの場合、識別子の形式は ${moduleIdentifier}:${propertyIdentifier} です (コロンで区切られます)。 例:

"test:Power": {
    "value": "on",
    "time": 1524448722000
}

events

Object

イベント。イベント識別子、イベント出力パラメータ value、およびイベントが生成された時刻 time が含まれます。

この例では、alarmEvent のバッチ情報が、対応するパラメータ Power (電源) と WF (動作電流) と共に報告されます。

カスタムモジュールイベントの場合、識別子の形式はコロン区切りの ${moduleIdentifier}:${eventIdentifier} です。 例:

"test:alarmEvent": {
    "value": {
        "Power": "on", 
        "WF": "2"
    }, 
    "time": 1524448722000
}
表 14. 応答パラメータ

パラメータ

タイプ

説明

id

String

メッセージ ID。0~4294967295 の範囲の数値からなる文字列です。各メッセージ ID は、現在のデバイスで一意である必要があります。

code

Integer

結果のステータスコードです。詳細は、デバイス側の一般的なコードをご参照ください。

data

Object

リクエストが成功した場合、空のオブジェクトが返されます。

message

String

レスポンスメッセージ。リクエストが成功した場合、 success が返されます。

method

String

レスポンスに対応するリクエストメソッド。リクエストパラメータの method と同じです。

version

String

プロトコルバージョン番号。リクエストパラメータの version と同じです。

エラーコード: デバイスが受信するエラーコード

メッセージ転送: バッチ TSL (Thing Specification Language) モデルデータは、サーバー側サブスクリプションを介してお客様のサーバーに転送できます。プロパティとイベントのデータは、個別のメッセージとして転送されます。トピックとデータ形式については、「デバイスからのバッチプロパティ報告」および「デバイスからのバッチイベント報告」をご参照ください。

参考資料

TSL モデルにおけるプロパティの報告、履歴データの報告、およびプロパティのバッチ報告の違い