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

IoT Platform:データ形式

最終更新日:Jun 04, 2026

IoT Platform は、Topic データ形式に基づき、データ転送およびサーバー側サブスクリプションを通じてデータを処理・送信します。Topic は、カスタムトピック、基本通信トピック、Thing Specification Language (TSL) 通信トピックの 3 種類に分類されます。カスタムトピックのデータ形式は、お客様が定義します。本ドキュメントでは、メッセージ転送後の基本通信トピックおよび TSL 通信トピックのデータ形式について説明します。

メッセージ転送および生デバイス通信のためのトピック

通信トピックの定義、使用方法、分類については、「トピックとは」をご参照ください。

デバイス開発時には、生データ形式を指定してください。以下の点にご注意ください。

  • 基本通信トピックおよび TSL 通信トピックのデータは、Alink プロトコルに準拠する必要があります。「Alink プロトコルディレクトリの関連ドキュメント」をご参照ください。

    生デバイスデータが転送された後、データ形式は変換されます。以下の各セクションで、それぞれの変換後の形式について説明します。

  • カスタムトピックのデータ形式は、お客様が定義できます。

    生デバイスデータが転送された後も、データ形式は変更されず、カスタムトピック形式と一致します。

以下の表に、転送トピックと対応する生デバイス通信トピックを示します。

表 1. トピックの説明

トピック

説明

参照

カスタム

カスタムデータ形式でメッセージを転送するトピックは、カスタムトピックと同じ形式になります:/${productKey}/${deviceName}/user/${TopicShortName}

${TopicShortName} はカスタムトピックカテゴリを指定し、カスタムトピックのサフィックスとなります。

この値には、プラス記号 (+) やシャープ記号 (#) を含むワイルドカード文字を使用できます。

  • すべての機器 (+):指定されたプロダクトのすべてのデバイスを示します。

  • /user/#:指定されたデバイスのすべてのカスタムトピック。

カスタムトピックによる通信の利用

デバイスステータス変更通知

デバイスのステータスがオンラインとオフラインの間で変化した際に通知を転送するトピックです。形式:/as/mqtt/status/${productKey}/${deviceName}

デバイスのオンライン・オフラインステータス

TSL Data Reporting

以下を含みます:

  • デバイスがプロパティデータを送信するトピック:/${productKey}/${deviceName}/thing/event/property/post

  • デバイスが送信したイベントデータを転送するトピック:/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post

  • デバイスから一括プロパティデータを転送するトピック:/${productKey}/${deviceName}/thing/property/batch/post

  • デバイスから一括イベントデータを転送するトピック:/${productKey}/${deviceName}/thing/event/batch/post

  • デバイスがクラウドコマンドに対する応答メッセージを送信するトピック:/${productKey}/${deviceName}/thing/downlink/reply/message

生デバイスデータを送信するための以下のトピックが使用されます:

  • /sys/${productKey}/${deviceName}/thing/event/property/post:このトピックはデバイスプロパティの送信に使用されます。

  • /sys/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post および /sys/${productKey}/${deviceName}/thing/event/${tsl.functionBlockId}:${tsl.event.identifier}/post:これらのトピックはデバイスイベントの送信に使用されます。

  • /sys/${productKey}/${deviceName}/thing/event/property/batch/post:このトピックはデバイスプロパティおよびイベントの一括送信に使用されます。

デバイスライフサイクル全体における変更

デバイスが作成、削除、無効化、有効化された際にメッセージを転送するトピックです。形式:/${productKey}/${deviceName}/thing/lifecycle

デバイスライフサイクルの変更

ゲートウェイが検出したサブデバイスデータレポート

トピック /${productKey}/${deviceName}/thing/list/found は、ゲートウェイデバイスが IoT Platform に検出したサブデバイスの情報を報告するために使用されます。

ゲートウェイによるサブデバイスの検出

デバイストポロジー関係の変更

サブデバイスとゲートウェイ間のトポロジー関係が作成または削除された際に通知を転送するトピックです。このトピックはゲートウェイ専用です。形式:/${productKey}/${deviceName}/thing/topo/lifecycle

デバイストポロジー関係の変更

デバイスはトピック /sys/${productKey}/${deviceName}/thing/topo/change を使用して生データを送信します。

トポロジー関係の変更をゲートウェイに通知

デバイスタグ変更

デバイスタグ更新を転送するトピックは /${productKey}/${deviceName}/thing/deviceinfo/update です。

デバイスタグの変更

デバイスは以下のトピックを使用して生データを送信します:/sys/${productKey}/${deviceName}/thing/deviceinfo/update

タグの送信

TSL 履歴データレポート

以下を含みます:

  • /${productKey}/${deviceName}/thing/event/property/history/post:このトピックは履歴プロパティを転送するために使用されます。

  • /${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/history/post:このトピックは履歴イベントを転送するために使用されます。

/sys/${productKey}/${deviceName}/thing/event/property/history/post:このトピックは履歴 TSL データを送信するために使用されます。

Thing Specification Language モデルの履歴データを報告する方法

ファームウェアアップデートのデバイスステータス通知

以下を含みます:

  • デバイスからのファームウェアアップデート結果を転送するトピックは /${productKey}/${deviceName}/ota/upgrade です。

  • デバイスがファームウェアアップデートの進捗状況を報告するトピックは /${productKey}/${deviceName}/ota/progress/post です。

デバイスは以下のトピックにアップグレードの進捗状況を報告します:/ota/device/progress/${productKey}/${deviceName}

デバイスアップグレード進捗の報告

モジュールバージョン番号の送信

更新された OTA モジュールバージョンを報告するトピック:/${productKey}/${deviceName}/ota/version/post

OTA モジュールバージョン変更のお知らせ

デバイスは以下のトピックを使用して OTA モジュールバージョンを報告します:/ota/device/inform/${productKey}/${deviceName}

デバイスが OTA モジュールのバージョンをレポートする

一括ステータス通知

IoT Platform は、ファームウェアアップデートの一括処理のステータス変更通知を以下のトピックに公開します:/${productKey}/${packageId}/${jobId}/ota/job/status

ファームウェアアップデート一括処理のステータス通知

ジョブイベント

以下のトピックを含みます:

  • デバイスジョブステータス通知:/sys/uid/${uid}/job/${jobId}/lifecycle

  • インスタンス移行ジョブステータス通知:/sys/uid/${uid}/distribution/${jobId}/lifecycle

    説明

    移行対象のプロダクト名が、インスタンス移行ジョブの名前として使用されます。

デバイスのオンライン・オフラインステータス

トピック:/as/mqtt/status/${productKey}/${deviceName}

このトピックを通じて、デバイスのオンラインまたはオフラインステータスを取得します。

デバイスがオンラインになった場合のデータ形式:

{
    "status":"online",
    "iotId":"4z819VQHk6VSLmmBJfrf00107e****",
    "productKey":"al12345****",
    "deviceName":"deviceName1234",
    "time":"2018-08-31 15:32:28.205",
    "utcTime":"2018-08-31T07:32:28.205Z",
    "lastTime":"2018-08-31 15:32:28.195",
    "utcLastTime":"2018-08-31T07:32:28.195Z",
    "clientIp":"192.0.2.1"
}

デバイスがオフラインになった場合のデータ形式:

{
    "status":"offline",
    "iotId":"4z819VQHk6VSLmmBJfrf00107e****",
    "offlineReasonCode":427,
    "productKey":"al12345****",
    "deviceName":"deviceName1234",
    "time":"2018-08-31 15:32:28.205",
    "utcTime":"2018-08-31T07:32:28.205Z",
    "lastTime":"2018-08-31 15:32:28.195",
    "utcLastTime":"2018-08-31T07:32:28.195Z",
    "clientIp":"192.0.2.1"
}

パラメーターの説明:

パラメーター

タイプ

説明

status

String

デバイスのステータス。

  • online:オンライン。

  • offline:オフライン。

iotId

String

IoT Platform 内でのデバイスの一意な識別子。

offlineReasonCode

Integer

デバイスがオフラインになった際に返されるエラーコード。「デバイス動作エラーコード」をご参照ください。

productKey

String

デバイスが属するプロダクトの一意な識別子。

deviceName

String

デバイスの名前。

lastTime

String

非推奨。使用されません。

utcLastTime

String

time

String

デバイスがオンラインまたはオフラインになった時刻。

メッセージはオンライン/オフライン時刻順に並んでいません。time 値でソートしてください。

たとえば、以下の 3 つのメッセージを順に受信したとします。

  1. オンライン:2018-08-31 10:02:28.195

  2. オフライン:2018-08-31 10:01:28.195

  3. オフライン:2018-08-31 10:03:28.195

これらの 3 つのメッセージから、デバイスはオフラインになり、その後オンラインになり、再びオフラインになったことがわかります。

utcTime

String

デバイスがオンラインまたはオフラインになった協定世界時 (UTC) 時刻。

clientIp

String

デバイスのパブリック IP アドレス。

デバイスプロパティの送信

トピック:/${productKey}/${deviceName}/thing/event/property/post

このトピックを使用して、デバイスが送信したプロパティを取得します。

データ形式:

{
    "iotId":"4z819VQHk6VSLmmBJfrf00107e****",
    "requestId":"2",
    "productKey":"al12345****",
    "deviceName":"deviceName1234",
    "gmtCreate":1510799670074,
    "deviceType":"Ammeter",
    "items":{
        "Power":{
            "value":"on",
            "time":1510799670074
        },
        "Position":{
            "time":1510292697470,
            "value":{
                "latitude":39.9,
                "longitude":116.38
            }
        }
    },
    "checkFailedData":{
        "attribute_8":{
            "time": 1510292697470,
            "value": 715665571,
            "code":6304,
            "message":"tsl parse: params not exist -> attribute_8"
        }
    }
}

パラメーターの説明:

パラメーター

タイプ

説明

iotId

String

IoT Platform 内でのデバイスの一意な識別子。

requestId

String

生デバイスメッセージの Id。0 ~ 4294967295 の範囲の数値文字列で、デバイスごとに一意である必要があります。

productKey

String

デバイスが属するプロダクトの一意な識別子。

deviceName

String

デバイスの名前。

gmtCreate

Long

データ転送メッセージが生成された時刻。

deviceType

String

デバイスのカテゴリ。

プロダクト作成時に選択したカテゴリです。「プロダクトの作成」または「CreateProduct」をご参照ください。

items

Object

デバイスデータ。

Power

String

プロパティ識別子。プロパティ名については、プロダクトの TSL 説明をご参照ください。

プロパティがカスタムモジュールプロパティの場合、プロパティ識別子は ${ModuleIdentifier}:${PropertyIdentifier} 形式になります(区切り文字としてコロン : を使用)。たとえば、カスタム TSL モデルモジュールの識別子が test の場合、データ形式は次のようになります。

{
    "items":{
        "test:Power":{
            "value":"on",
            "time":1510799670074
        },
        "test:Position":{
            "time":1510292697470,
            "value":{
                "latitude":39.9,
                "longitude":116.38
            }
        }
    }
}

Position

attribute_8

checkFailedData

Object

TSL モデルデータ検証に失敗したデータ。

value

TSL で定義

プロパティ値。

time

Long

プロパティが報告された時刻。デバイスが報告しなかった場合は、IoT Platform がデータを生成した時刻がデフォルトで使用されます。

code

Integer

データが TSL モデル検証に失敗した際に返されるエラーコード。「デバイスのエラーコード」をご参照ください。

message

String

データが TSL モデル検証に失敗した際に返されるエラーメッセージで、失敗原因と無効なパラメーターを含みます。

デバイスイベントの送信

トピック:/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post

このトピックを使用して、デバイスが送信したイベント情報を取得します。

データ形式:

{
    "identifier":"BrokenInfo",
    "name":"Damage Rate Submission",
    "type":"info",
    "iotId":"4z819VQHk6VSLmmBJfrf00107e****",
    "requestId":"2",
    "productKey":"X5eCzh6****",
    "deviceName":"5gJtxDVeGAkaEztpisjX",
    "gmtCreate":1510799670074,
    "value":{
        "Power":"on",
        "Position":{
            "latitude":39.9,
            "longitude":116.38
        }
    },
    "checkFailedData":{},
    "time":1510799670074
}

パラメーターの説明:

パラメーター

タイプ

説明

identifier

String

イベントの識別子。

イベントがカスタムモジュールイベントの場合、イベント識別子は ${ModuleIdentifier}:${EventIdentifier} 形式になります(区切り文字としてコロン : を使用)。たとえば、カスタム TSL モデルモジュールの識別子が test の場合、データ形式は次のようになります。

"test:identifier":"BrokenInfo",

name

String

イベントの名前。

type

String

イベントタイプ。イベントタイプについては、プロダクトの TSL 説明をご参照ください。

iotId

String

IoT Platform 内でのデバイスの一意な識別子。

requestId

String

生デバイスメッセージの Id。0 ~ 4294967295 の範囲の数値文字列で、デバイスごとに一意である必要があります。

productKey

String

デバイスが属するプロダクトの一意な識別子。

deviceName

String

デバイスの名前。

gmtCreate

Long

データ転送メッセージが生成された時刻。

value

Object

イベントの出力パラメーター情報。例では、Power および Position の 2 つのパラメーターに関する情報が表示されています。

{
    "Power":"on",
    "Position":{
        "latitude":39.9,
        "longitude":116.38
    }
}
重要
  • イベントのすべての出力パラメーターが検証に合格した場合にのみ、すべての出力パラメーターが value パラメーターに表示されます。この場合、checkFailedData パラメーターは空になります。

  • イベントのいずれかの出力パラメーターが検証に失敗した場合、すべての出力パラメーターが checkFailedData パラメーターに表示されます。この場合、value パラメーターは空になります。

checkFailedData

Object

TSL モデルデータ検証に失敗したデータ。

イベントの出力パラメーターが検証に失敗した場合、checkFailedData パラメーターは次のようになります。

{
    "value":{
        "Power":"on",
        "Position":{
            "latitude":39.9,
            "longitude":116.38
        }
    },
    "time":1524448722000,
    "code":6304,
    "message":"tsl parse: params not exist -> type"
}

ここで:

  • value:Object。イベントの出力パラメーター情報。

  • time:Long。イベントが生成されたタイムスタンプ。

  • code:Integer。データが TSL モデル検証に失敗した際に返されるエラーコード。「デバイスのエラーコード」をご参照ください。

  • message:String。データが TSL モデル検証に失敗した際に返されるエラーメッセージで、失敗原因と無効なパラメーターを含みます。

time

Long

イベントが報告された時刻。デバイスが報告しなかった場合は、IoT Platform がデータを生成した時刻がデフォルトで使用されます。

デバイスプロパティの一括送信

トピック:/${productKey}/${deviceName}/thing/property/batch/post

このトピックを使用して、デバイスが一括送信したプロパティを取得します。

データ形式:

{
    "productKey": "al12345****",
    "deviceName": "deviceName1234",
    "instanceId": "iot-0***",
    "requestId": "2",
    "items": {
        "Power": [
            {
                "value": "on",
                "time": 1524448722000
            },
            {
                "value": "off",
                "time": 1524448722001
            }
        ],
        "WF": [
            {
                "value": 3,
                "time": 1524448722000
            },
            {
                "value": 4,
                "time": 1524448722009
            }
        ]
    }
}

パラメーターの説明:

パラメーター

タイプ

説明

productKey

String

デバイスが属するプロダクトの一意な識別子。

deviceName

String

デバイスの名前。

instanceId

String

デバイスが属するインスタンスの ID。

requestId

String

生デバイスメッセージの Id。0 ~ 4294967295 の範囲の数値文字列で、デバイスごとに一意である必要があります。

items

Object

デバイスデータ。

Power

String

プロパティ識別子。プロパティ名については、プロダクトの TSL 説明をご参照ください。

プロパティがカスタムモジュールプロパティの場合、プロパティ識別子は ${ModuleIdentifier}:${PropertyIdentifier} 形式になります(区切り文字としてコロン : を使用)。たとえば、カスタム TSL モデルモジュールの識別子が test の場合、データ形式は次のようになります。

{
    "items":{
        "test:Power":[
            {
                "value":"on",
                "time":1510799670074
            },
            {
                "value": "off", 
                "time": 1524448722001
            }
        ],
        "test:WF":[
            {
                "value": 3, 
                "time": 1524448722000
            },
            {
                "value": 4, 
                "time": 1524448722009
            }
        ]
    }
}

WF

value

TSL で定義

プロパティ値。

time

Long

プロパティが報告された時刻。デバイスが報告しなかった場合は、IoT Platform がデータを生成した時刻がデフォルトで使用されます。

デバイスイベントの一括送信

トピック:/${productKey}/${deviceName}/thing/event/batch/post

このトピックを使用して、デバイスが一括送信したイベントを取得します。

データ形式:

{
    "productKey": "al12345****",
    "deviceName": "deviceName1234",
    "instanceId": "iot-0***",
    "requestId": "2",
    "items": {
        "alarmEvent": [
            {
                "value": {
                    "Power": "on",
                    "WF": "2"
                },
                "time": 1524448722000
            },
            {
                "value": {
                    "Power": "on",
                    "WF": "2"
                },
                "time": 1524448723000
            }
        ]
    }
}

パラメーターの説明:

パラメーター

タイプ

説明

productKey

String

デバイスが属するプロダクトの一意な識別子。

deviceName

String

デバイスの名前。

instanceId

String

デバイスが属するインスタンスの ID。

requestId

String

生デバイスメッセージの Id。0 ~ 4294967295 の範囲の数値文字列で、デバイスごとに一意である必要があります。

items

Object

デバイスデータ。

alarmEvent

List

イベントの識別子。

value

Object

イベントのパラメーター。

上記の例では、Power および WF がイベントのパラメーター名です。

time

Long

イベントが報告された時刻。デバイスが報告しなかった場合は、IoT Platform がデータを生成した時刻がデフォルトで使用されます。

デバイスライフサイクルの変更

トピック:/${productKey}/${deviceName}/thing/lifecycle

このトピックを使用して、デバイスが作成、削除、有効化、無効化された際に生成されるメッセージを受信します。

データ形式:

{
    "action": "create|delete|enable|disable",
    "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
    "productKey": "al5eCzh****",
    "deviceName": "5gJtxDVeGAkaEztpisjX",
    "deviceSecret": "wsde***", 
    "messageCreateTime": 1510292739881 
}

パラメーターの説明:

パラメーター

タイプ

説明

action

String

  • create:デバイスが作成されました。

  • delete:デバイスが削除されました。

  • enable:デバイスが有効化されました。

  • disable:デバイスが無効化されました。

iotId

String

IoT Platform 内でのデバイスの一意な識別子。

productKey

String

プロダクトの一意な識別子。

deviceName

String

デバイスの名前。

deviceSecret

String

デバイスシークレット。action パラメーターが create に設定されている場合にのみ、このパラメーターが含まれます。

messageCreateTime

Integer

メッセージが生成されたタイムスタンプ。単位:ミリ秒。

デバイストポロジーの変更

トピック:/${productKey}/${deviceName}/thing/topo/lifecycle

このトピックを使用して、サブデバイスとゲートウェイ間のトポロジー関係の追加および削除に関する情報を受信します。

データ形式:

{
    "action" : "create|delete|enable|disable",
    "gwIotId": "dfaejVQHk6VSLmmBJfrf00107e****",
    "gwProductKey": "al5eCzh****",
    "gwDeviceName": "deviceName1234",
    "devices": [
        {
            "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
            "productKey": "ala4Czh****",
            "deviceName": "deviceName1234"
        }
    ],
    "messageCreateTime": 1510292739881
}

パラメーターの説明:

パラメーター

タイプ

説明

action

String

  • create:トポロジー関係が追加されました。

  • delete:トポロジー関係が削除されました。

  • enable:トポロジー関係が有効化されました。

  • disable:トポロジー関係が無効化されました。

gwIotId

String

IoT Platform 内でのゲートウェイデバイスの一意な識別子。

gwProductKey

String

ゲートウェイプロダクトの一意な識別子。

gwDeviceName

String

ゲートウェイデバイスの名前。

devices

Object

変更されたサブデバイスのリスト。

iotId

String

IoT Platform 内でのサブデバイスの一意な識別子。

productKey

String

サブデバイスプロダクトの一意な識別子。

deviceName

String

サブデバイスの名前。

messageCreateTime

Integer

メッセージが生成されたタイムスタンプ。単位:ミリ秒。

ゲートウェイによるサブデバイスの検出

トピック:/${productKey}/${deviceName}/thing/list/found

一部のシナリオでは、ゲートウェイがサブデバイスを検出し、その情報を報告できます。このトピックを使用して、報告された情報を取得できます。

データ形式:

{
    "gwIotId":"dfaew9VQHk6VSLmmBJfrf00107e****",
    "gwProductKey":"al12345****",
    "gwDeviceName":"deviceName1234",
    "devices":[
        {
            "iotId":"4z819VQHk6VSLmmBJfrf00107e****",
            "productKey":"alr56g9****",
            "deviceName":"deviceName1234"
        }
    ]
}

パラメーターの説明:

パラメーター

タイプ

説明

gwIotId

String

IoT Platform 内でのゲートウェイデバイスの一意な識別子。

gwProductKey

String

ゲートウェイプロダクトの一意な識別子。

gwDeviceName

String

ゲートウェイデバイスの名前。

devices

Object

検出されたサブデバイスのリスト。

iotId

String

IoT Platform 内でのサブデバイスの一意な識別子。

productKey

String

サブデバイスが属するプロダクトの一意な識別子。

deviceName

String

サブデバイスの名前。

ダウンストリームコマンドの結果

トピック:/${productKey}/${deviceName}/thing/downlink/reply/message

デバイスが非同期プロパティ設定およびサービス呼び出しコマンドを処理した後に返される結果を取得します。コマンド送信時にエラーが発生した場合、このトピックはエラーメッセージも返します。

データ形式:

{
    "gmtCreate":1510292739881,
    "iotId":"4z819VQHk6VSLmmBJfrf00107e****",
    "productKey":"al12355****",
    "deviceName":"deviceName1234",
    "requestId":"2",
    "code":200,
    "message":"success",
    "topic":"/sys/al12355****/deviceName1234/thing/service/property/set",
    "data":{},
    "checkFailedData":{
        "value": {
            "PicID": "15194139"
        },
        "code":6304,
        "message":"tsl parse: params not exist -> PicID"
    }
}

パラメーターの説明:

パラメーター

タイプ

説明

gmtCreate

Long

UTC タイムスタンプ。

iotId

String

IoT Platform 内でのデバイスの一意な識別子。

productKey

String

デバイスが属するプロダクトの一意な識別子。

deviceName

String

デバイスの名前。

requestId

String

生デバイスメッセージの Id。0 ~ 4294967295 の範囲の数値文字列で、デバイスごとに一意である必要があります。

code

Integer

デバイスが返す結果コード。「結果コード」表をご参照ください。

message

String

デバイスが返す結果コード情報。

topic

String

デバイスにコマンドを送信するために使用されたトピックに関する情報。

data

Object

デバイスが返す結果。Alink 形式データの場合、デバイス処理結果がそのまま返されます。パススルー形式データの場合、スクリプトによる変換が必要です。

checkFailedData

Object

TSL モデルデータ検証に失敗したデータ。

value

TSL で定義

TSL モデルデータ検証に失敗したプロパティ値またはサービスパラメーター値。

上記の例では、PicID が検証に失敗したパラメーターの名前です。

code

Integer

データが TSL モデル検証に失敗した際に返されるエラーコード。「デバイスのエラーコード」をご参照ください。

message

String

データが TSL モデル検証に失敗した際に返されるエラーメッセージで、失敗原因と無効なパラメーターを含みます。

表 1. 結果コード

code

message

説明

200

success

リクエストが成功しました。

400

request error

処理中に内部サービスエラーが発生しました。

460

request parameter error

リクエストパラメーターが無効です。デバイスが入力パラメーターの検証に失敗しました。

429

too many requests

リクエストが頻繁すぎます。

9200

device not actived

デバイスがアクティブ化されていません。

9201

device offline

デバイスがオフラインです。

403

request forbidden

支払い遅延によりリクエストが禁止されています。

これらのエラーを解決するには、「デバイスのエラーコード」をご参照ください。

履歴プロパティの送信

トピック:/${productKey}/${deviceName}/thing/event/property/history/post

このトピックを使用して、デバイスが送信した TSL モデルの履歴プロパティデータを取得します。

データ形式:

{
    "iotId":"4z819VQHk6VSLmmBJfrf00107e****",
    "requestId":"2",
    "productKey":"12345****",
    "deviceName":"deviceName1234",
    "gmtCreate":1510799670074,
    "deviceType":"Ammeter",
    "items":{
        "Power":{
            "value":"on",
            "time":1510799670074
        },
        "Position":{
            "time":1510292697470,
            "value":{
                "latitude":39.9,
                "longitude":116.38
            }
        }
    },
    "checkFailedData":{
        "attribute_8":{
            "time": 1510292697470,
            "value": 715665571,
            "code":6304,
            "message":"tsl parse: params not exist -> attribute_8"
        }
    }
}

パラメーターの説明:

パラメーター

タイプ

説明

iotId

String

IoT Platform 内でのデバイスの一意な識別子。

requestId

String

生デバイスメッセージの Id。0 ~ 4294967295 の範囲の数値文字列で、デバイスごとに一意である必要があります。

productKey

String

デバイスが属するプロダクトの一意な識別子。

deviceName

String

デバイスの名前。

gmtCreate

Long

データ転送メッセージが生成された時刻。

deviceType

String

デバイスのカテゴリ。

プロダクト作成時に選択したカテゴリです。「プロダクトの作成」または「CreateProduct」をご参照ください。

items

Object

デバイスデータ。

Power

String

プロパティ識別子。プロパティ名については、プロダクトの TSL 説明をご参照ください。

プロパティがカスタムモジュールプロパティの場合、プロパティ識別子は ${ModuleIdentifier}:${PropertyIdentifier} 形式になります(区切り文字としてコロン : を使用)。たとえば、カスタム TSL モデルモジュールの識別子が test の場合、データ形式は次のようになります。

{
    "items":{
        "test:Power":{
            "value":"on",
            "time":1510799670074
        },
        "test:Position":{
            "time":1510292697470,
            "value":{
                "latitude":39.9,
                "longitude":116.38
            }
        }
    }
}

Position

attribute_8

checkFailedData

Object

TSL モデルデータ検証に失敗したデータ。

value

TSL で定義

プロパティ値。

time

Long

プロパティが報告された時刻。デバイスが報告しなかった場合は、IoT Platform がデータを生成した時刻がデフォルトで使用されます。

code

Integer

データが TSL モデル検証に失敗した際に返されるエラーコード。「デバイスのエラーコード」をご参照ください。

message

String

データが TSL モデル検証に失敗した際に返されるエラーメッセージで、失敗原因と無効なパラメーターを含みます。

履歴イベントの送信

トピック:/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/history/post

このトピックを使用して、デバイスが送信した履歴イベントデータを取得します。

データ形式:

{
    "identifier":"BrokenInfo",
    "name":"Damage Rate Submission",
    "type":"info",
    "iotId":"4z819VQHk6VSLmmBJfrf00107e***",
    "requestId":"2",
    "productKey":"X5eCzh6***",
    "deviceName":"5gJtxDVeGAkaEztpisjX",
    "value":{
        "Power":"on",
        "Position":{
            "latitude":39.9,
            "longitude":116.38
        }
    },
    "checkFailedData":{},
    "time":1510799670074
}

パラメーターの説明:

パラメーター

タイプ

説明

identifier

String

イベントの識別子。

イベントがカスタムモジュールイベントの場合、イベント識別子は ${ModuleIdentifier}:${EventIdentifier} 形式になります(区切り文字としてコロン : を使用)。たとえば、カスタム TSL モデルモジュールの識別子が test の場合、データ形式は次のようになります。

"test:identifier":"BrokenInfo",

name

String

イベントの名前。

type

String

イベントタイプ。イベントタイプについては、プロダクトの TSL 説明をご参照ください。

iotId

String

IoT Platform 内でのデバイスの一意な識別子。

requestId

String

生デバイスメッセージの Id。0 ~ 4294967295 の範囲の数値文字列で、デバイスごとに一意である必要があります。

productKey

String

デバイスが属するプロダクトの一意な識別子。

deviceName

String

デバイスの名前。

gmtCreate

Long

データ転送メッセージが生成された時刻。

value

Object

イベントの出力パラメーター情報。例では、Power および Position の 2 つのパラメーターに関する情報が表示されています。

{
    "Power":"on",
    "Position":{
        "latitude":39.9,
        "longitude":116.38
    }
}
重要
  • イベントのすべての出力パラメーターが検証に合格した場合にのみ、すべての出力パラメーターが value パラメーターに表示されます。この場合、checkFailedData パラメーターは空になります。

  • イベントのいずれかの出力パラメーターが検証に失敗した場合、すべての出力パラメーターが checkFailedData パラメーターに表示されます。この場合、value パラメーターは空になります。

checkFailedData

Object

TSL モデルデータ検証に失敗したデータ。

イベントの出力パラメーターが検証に失敗した場合、checkFailedData パラメーターは次のようになります。

{
    "value":{
        "Power":"on",
        "Position":{
            "latitude":39.9,
            "longitude":116.38
        }
    },
    "time":1524448722000,
    "code":6304,
    "message":"tsl parse: params not exist -> type"
}

内訳:

  • value:Object。イベントの出力パラメーター情報。

  • time:Long。イベントが生成されたタイムスタンプ。

  • code:Integer。データが TSL モデル検証に失敗した際に返されるエラーコード。「デバイスのエラーコード」をご参照ください。

  • message:String。データが TSL モデル検証に失敗した際に返されるエラーメッセージで、失敗原因と無効なパラメーターを含みます。

time

Long

イベントが報告された時刻。デバイスが報告しなかった場合は、IoT Platform がデータを生成した時刻がデフォルトで使用されます。

ファームウェアアップデートのステータス通知

トピック:/${productKey}/${deviceName}/ota/upgrade

デバイスのアップデートが成功または失敗したことを示すファームウェアアップデートステータスメッセージを受信します。

説明

デバイスに未完了のアップデートタスクがある場合に一括更新を開始すると、一括更新は失敗します。この場合、IoT Platform は失敗メッセージを転送しません。

データ形式:

{
    "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
    "productKey": "X5eCzh6****",
    "deviceName": "deviceName1234",
    "moduleName": "default",
    "status": "SUCCEEDED|FAILED|CANCELED",
    "messageCreateTime": 1571323748000,
    "srcVersion": "1.0.1",
    "destVersion": "1.0.2",
    "desc": "success",
    "jobId": "wahVIzGkCMuAUE2gDERM02****",
    "taskId": "y3tOmCDNgpR8F9jnVEzC01****"
}

パラメーターの説明:

パラメーター

タイプ

説明

iotId

String

デバイスの一意な識別子。

productKey

String

デバイスが属するプロダクトの一意な識別子。

deviceName

String

デバイスの名前。

moduleName

String

OTA モジュールの名前。

status

String

アップデートステータス。

  • SUCCEEDED:アップデートが成功しました。

  • FAILED:アップデートに失敗しました。

  • CANCELED:アップデートがキャンセルされました。

messageCreateTime

Long

メッセージが生成されたタイムスタンプ。単位:ミリ秒。

srcVersion

String

アップデート前のバージョン。

destVersion

String

アップデートの送信先バージョン。

desc

String

アップデートステータスの説明。

jobId

String

アップデート一括処理 ID。アップデート一括処理を一意に識別します。

taskId

String

デバイスアップデートレコードの一意な識別子。

ファームウェアアップデートの進捗通知

トピック:/${productKey}/${deviceName}/ota/progress/post

このトピックを使用して、ファームウェアアップデートの進捗メッセージを取得します。

データ形式:

{
    "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
    "productKey": "X5eCzh6****",
    "deviceName": "deviceName1234",
    "moduleName":"default",
    "status":"IN_PROGRESS",
    "step": "90",
    "messageCreateTime": 1571323748000,
    "srcVersion":"1.0.1",
    "destVersion":"1.0.2",
    "desc": "success",
    "jobId": "wahVIzGkCMuAUE2gDERM02****",
    "taskId": "y3tOmCDNgpR8F9jnVEzC01****"
}

パラメーターの説明:

パラメーター

タイプ

説明

iotId

String

デバイスの一意な識別子。

productKey

String

デバイスが属するプロダクトの一意な識別子。

deviceName

String

デバイスの名前。

moduleName

String

OTA モジュールの名前。

status

String

アップデートステータス。値は IN_PROGRESS(進行中)に固定されています。

step

Integer

デバイスが報告するアップデートの進捗状況。

messageCreateTime

Long

メッセージが生成されたタイムスタンプ。単位:ミリ秒。

srcVersion

String

アップデート前のバージョン。

destVersion

String

アップデートの送信先バージョン。

desc

String

アップデートステータスの説明。

jobId

String

アップデート一括処理 ID。アップデート一括処理を一意に識別します。

taskId

String

デバイスアップデートレコードの一意な識別子。

OTA モジュールバージョン変更通知

トピック:/${productKey}/${deviceName}/ota/version/post

このトピックを使用して、デバイスが報告する OTA モジュールバージョン番号を取得します。デバイスが新しい OTA モジュールバージョン番号を報告すると、メッセージが転送されます。

データ形式:

{
    "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
    "deviceName": "deviceName1234",
    "productKey": "X5eCzh6****",
    "moduleName": "BarcodeScanner",
    "moduleVersion": "1.0.3",
    "messageCreateTime": 1571323748000
}

パラメーターの説明:

パラメーター

タイプ

説明

iotId

String

デバイスの一意な識別子。

productKey

String

デバイスが属するプロダクトの一意な識別子。

deviceName

String

デバイスの名前。

moduleName

String

モジュールの名前。

moduleVersion

String

モジュールのバージョン番号。

messageCreateTime

Long

メッセージが生成されたタイムスタンプ。単位:ミリ秒。

ファームウェアアップデート一括処理のステータス通知

トピック:/${productKey}/${packageId}/${jobId}/ota/job/status

このトピックを使用して、ファームウェアアップデート一括処理のステータス変更メッセージを取得します。

データ形式:

{
    "productKey": "X5eCzh6****",
    "moduleName": "BarcodeScanner",
    "packageId": "wahVIzGkCMuAUE2***",
    "jobId": "wahVIzGkCMuAUE2gDERM02****",
    "state": "IN_PROGRESS",
    "messageCreateTime": 1571323748000
}

パラメーターの説明:

パラメーター

タイプ

説明

productKey

String

デバイスが属するプロダクトの一意な識別子。

moduleName

String

モジュールの名前。

packageId

String

アップデートパッケージの ID です。このパラメーターの値は、アップデートパッケージを作成するために CreateOTAFirmware 操作を呼び出した際に返される FirmwareId パラメーターの値と同じです。

jobId

String

アップデート一括処理 ID。アップデート一括処理を一意に識別します。

state

String

アップデート一括処理のステータス。有効な値:

  • PLANNED:アップデートが開始されていません。

  • IN_PROGRESS:アップデートが進行中です。

  • COMPLETED:アップデートが完了しました。

  • CANCELED:タスクがキャンセルされました。

  • UNFINISH:未完了。

    エンタープライズインスタンスの利用可能なアップグレード数が不足している場合、アップデート一括処理のステータスは UNFINISH になります。

messageCreateTime

Long

メッセージが生成されたタイムスタンプ。単位:ミリ秒。

デバイスタグの変更

トピック:/${productKey}/${deviceName}/thing/deviceinfo/update

このトピックを使用して、デバイスタグの変更に関する情報を取得します。

データ形式:

{
    "action": "UPDATE|DELETE|DELETEALL"
    "iotId": "4z819VQHk6VSLmmBJfrf00107e****",
    "productKey": "X5eCzh6****",
    "deviceName": "deviceName1234",
    "deletedAttrKeyList": ["abc", "def", "rng"],
    "value": [
        {
            "attrKey": "tagKey",
            "attrValue": "tagValue"
        }
    ],
    "messageCreateTime": 1510799670074
}

パラメーターの説明:

パラメーター

タイプ

説明

action

String

タグ変更のタイプ。有効な値:

  • UPDATE:タグが更新または追加されました。

  • DELETE:指定されたタグが削除されました。

  • DELETEALL:すべてのタグがクリアされました。

iotId

String

デバイスの一意な識別子。

productKey

String

デバイスが属するプロダクトの一意な識別子。

deviceName

String

デバイスの名前。

deletedAttrKeyList

List

削除されたタグのキーのリスト。

action パラメーターが DELETE に設定されている場合にのみ、このパラメーターが表示されます。

value

List

タグデータ。

attrKey

String

タグキー。

attrValue

String

タグ値。

messageCreateTime

Long

メッセージが生成されたタイムスタンプ。単位:ミリ秒。

デバイスジョブステータス通知

トピック:/sys/uid/${uid}/job/${jobId}/lifecycle

このトピックを使用して、デバイスジョブのステータス変更メッセージを受信します。デバイスジョブには、一括プロパティ設定ジョブ、一括サービス呼び出しジョブ、カスタムジョブが含まれます。

トピック内の ${uid} は、お客様の Alibaba Cloud アカウント ID です。ID を確認するには、IoT Platform コンソール にログインし、プロフィール画像をクリックして セキュリティ設定 ページに移動してください。

データ形式:

{
    "jobId": "4z819VQHk6VSLmm***ee200",
    "jobType": "CUSTOM_JOB",
    "status": "INITIALIZING",
    "messageCreateTime": 1510292739881
}

パラメーターの説明:

パラメーター

タイプ

説明

jobId

String

ジョブ ID。ジョブの一意な識別子。

jobType

String

ジョブタイプ。

  • SET_PROPERTY:デバイスプロパティを一括設定するジョブ。

  • INVOKE_SERVICE:デバイスサービスを一括呼び出すジョブ。

  • CUSTOM_JOB:カスタムジョブ。

status

String

ジョブステータス。有効な値:

  • INITIALIZING:ジョブが初期化中です。

  • WAITING:ジョブがスケジューリング待ちです。

  • IN_PROGRESS:ジョブが進行中です。

  • COMPLETED:ジョブが完了しました。

  • CANCELLING:ジョブがキャンセル中です。

  • CANCELLED:キャンセルされました。

  • REMOVING:ジョブが削除中です。

messageCreateTime

Long

メッセージが生成されたタイムスタンプ。単位:ミリ秒。

インスタンス移行ジョブステータス通知

トピック:/sys/uid/{uid}/distribution/{jobId}/lifecycle

このトピックを使用して、インスタンス移行ジョブのステータス変更メッセージを取得します。

トピック内の ${uid} は、お客様の Alibaba Cloud アカウント ID です。アカウント ID を確認するには、IoT Platform コンソール にログインし、プロフィール画像にマウスポインターを合わせて アカウント ID を確認してください。

データ形式:

{
    "jobId": "4z819VQHk6VSLmmxxxxxxxxxxee200",
    "status": "GRAY_EXECUTING",
    "messageCreateTime": 1510292739881,
    "type":"INSTANCE_UPGRADE",
    "sourceInstance":"iotx-oxssharez200",
    "targetInstance":"iot-es5v4***",
    "successDevices":[
        {
            "productKey":"al12***",
            "deviceName":"deviceName1",
            "iotId":"4z81frf00107e***"
        }
    ]
}

パラメーターの説明:

パラメーター

タイプ

説明

jobId

String

ジョブ ID。ジョブの一意な識別子。

status

String

ジョブステータス。有効な値:

  • GRAY_EXECUTING:グレースケール移行中。

  • GRAY_FINISHED:グレースケール移行完了。

  • ALL_EXECUTING:フル移行中。

  • ALL_FINISHED:フル移行完了。

  • ALL_PAUSE:移行一時停止。

  • ROLL_BACK_EXECUTING:ロールバック中。

  • BATCH_ROLL_BACK_EXECUTING:一括ロールバック中。

  • ROLL_BACK_PAUSE:ロールバック一時停止。

messageCreateTime

Long

メッセージが生成されたタイムスタンプ。単位:ミリ秒。

type

String

ジョブタイプ。値は INSTANCE_UPGRADE に固定されています。

sourceInstance

String

インスタンス移行のソースパブリックインスタンスの ID。旧バージョンのパブリックインスタンスの ID は iotx-oxssharez200 です。

インスタンスの詳細については、「インスタンスの概要」をご参照ください。

targetInstance

String

インスタンス移行の送信先エンタープライズインスタンスの ID。

successDevices

List

正常に移行されたデバイスに関する情報:

  • ステータスが GRAY_EXECUTING または ALL_EXECUTING の場合、このパラメーターは、ソースパブリックインスタンスから送信先エンタープライズインスタンスに正常に移行されたデバイスを示します。

  • ステータスが ROLL_BACK_EXECUTING または BATCH_ROLL_BACK_EXECUTING の場合、このパラメーターは、エンタープライズインスタンスからパブリックインスタンスに正常に移行されたデバイスを示します。

移行プロセス中に successDevices パラメーターが空になることがあります。これは、ジョブステータスが変更されジョブが開始されたものの、まだデバイスが移行されていないことを示しています。

productKey

String

デバイスが属するプロダクトの一意な識別子。

deviceName

String

デバイスの名前。

iotId

String

IoT Platform 内でのデバイスの一意な識別子。