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

IoT Platform:データ形式

最終更新日:Feb 06, 2024

IoT Platformは、データ転送およびサーバー側サブスクリプション機能を提供します。 この機能を使用して、トピックのデータ形式に基づいてデータを処理および転送できます。 トピックは、カスタムトピック、基本通信のトピック、およびTSL (Thing Specification Language) 通信のトピックに分類されます。 ビジネス要件に基づいて、カスタムトピックのデータ形式を指定できます。 このトピックでは、ルールエンジンが基本通信のトピックとTSL通信のトピックのデータを変換する形式について説明します。

ルールエンジンとデバイス通信に関連するトピック

コミュニケーショントピックの定義、使用法、および分類については、「トピック」をご参照ください。

デバイスを開発するときに、デバイスによって送信される生データの形式を指定する必要があります。 以下の点にご注意ください。

  • 基本通信のトピックとTSL通信のトピックのデータは、IoT PlatformでサポートされているAlinkプロトコルに準拠している必要があります。 詳細については、「Alinkプロトコル」トピックの関連サブトピックをご参照ください。

    ルールエンジンがデバイスによって送信された生データを転送した後、生データの形式が変換されます。 データ形式の詳細については、このトピックの説明を参照してください。

  • カスタムトピックのデータ形式を指定できます。

    ルールエンジンがデバイスによって送信された生データを転送した後、生データの形式は変換されません。

次の表に、ルールエンジンがデータの転送に使用するトピックと、デバイスがデータを送信するトピック間のマッピングを示します。

表 1 トピック

トピック

説明

参考資料

カスタム

カスタム形式でデータを転送するために使用されるトピック。 このトピックの形式は、カスタムトピックの形式と同じです。 形式: /${productKey}/${deviceName}/user/${TopicShortName}

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

値には、プラス記号 (+) や数値記号 (#) などのワイルドカード文字を含めることができます。

  • すべての機器 (+ ): 指定された製品のすべてのデバイスを示します。

  • /user/#: 指定されたデバイスのすべてのトピックを示します。

カスタムトピックを使用した通信

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

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

デバイスステータスの送信

TSLデータレポート

以下のトピックを提供します。

  • /${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: このトピックは、デバイスがIoT Platformコマンドへの応答として返すメッセージを転送するために使用されます。

デバイスデータの送信には、次のトピックを使用します。

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

検出されたサブデバイスに関する情報の送信

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

サブデバイスとゲートウェイ間のトポロジ関係が作成または削除されたときに通知を転送するために使用されるトピック。 このトピックはゲートウェイに固有です。 形式: /${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データの送信に使用されます。

デバイスのプロパティ、イベント、およびサービス

デバイスステータス通知

以下のトピックを提供します。

  • /${productKey}/${deviceName}/ota/upgrade: このトピックは、無線 (OTA) 更新結果を転送するために使用されます。

  • /${productKey}/${deviceName}/ota/progress/post: このトピックは、更新の進行状況を転送するために使用されます。

上記のトピックは、/ota/device/progress/${productKey}/${deviceName} のトピックに対応しています。 このトピックは、更新の進行状況を送信するために使用されます。

更新の進行状況をIoT Platformに送信

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

デバイスのOTAモジュールのバージョン番号が変更されたときにメッセージを転送するために使用されるトピック。 形式: /${productKey}/${deviceName}/ota/version/post

OTAモジュールのバージョンを送信する

上記のトピックは、/ota/device/inform/${productKey}/${deviceName} のトピックに対応しています。 このトピックは、OTAモジュールのバージョン番号を送信するために使用されます。

OTAモジュールのバージョンをIoT Platformに送信

バッチステータス通知

OTA更新バッチのステータスが変更されたときにIoT Platformがメッセージを送信するトピック。 形式: /${productKey}/${packageId}/${jobId}/ota/job/status

OTA更新バッチのステータスデータの送信

Jobイベント

/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":"オフライン" 、
    "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

デバイスの名前 有効な値:

  • オフライン

iotId

String

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

offlineReasonCode

Integer

デバイスがオフラインになったときに返されるエラーコード。 詳細については、「デバイスの動作に関連するエラーコード」をご参照ください。

productKey

String

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

deviceName

String

デバイスのDeviceName。

lastTime

String

これらのパラメータはもはや有効ではありません。

utcLastTime

String

時間

String

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

返されたメッセージは時間によってソートされません。 手動でメッセージをソートする必要があります。

たとえば、次のメッセージを順番に受信したとします。

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

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

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

上記のメッセージは、デバイスが切断され、再接続された後、再び切断されたことを示します。

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 各メッセージIDは、デバイスに対して一意である必要があります。

productKey

String

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

deviceName

String

デバイスのDeviceName。

gmtCreate

Long

メッセージが生成された時刻。

deviceType

String

デバイスの製品カテゴリ。

IoT Platformでプロダクトを作成するときに、プロダクトカテゴリを指定できます。 詳細については、「プロダクトの作成」または「CreateProduct」をご参照ください。

アイテム

オブジェクト

デバイスによって送信されたデータ。

パワー

String

プロパティの識別子。 プロパティの詳細については、製品のTSLモデルを参照してください。

カスタムモジュールのプロパティを使用する場合、各プロパティの識別子は ${モジュール識別子 }:${ プロパティ識別子} 形式になります。コロン (:) は、式の2つの部分を接続するために使用されます。 識別子がtestであるカスタムモジュールのデータ形式の例を次に示します。

{
    "items":{
        "test:Power":{
            "value":"on",
            "time":1510799670074
        },
        "test: ポジション":{
            "time":1510292697470,
            "value":{
                "latitude":39.9,
                "longitude":116.38
            }
        }
    }
}

位置

attribute_8

checkFailedData

オブジェクト

検証に失敗したデータ。

TSL定義の対象

プロパティの値

時間

Long

プロパティが提出された時刻。 デバイスがタイムスタンプを送信しない場合、IoT Platformがメッセージを受信したときを示すタイムスタンプが使用されます。

コード

Integer

データの検証に失敗した場合に返されるエラーコード。 詳細については、「デバイスのエラーコード」をご参照ください。

メッセージ

String

データの検証に失敗した場合に返されるエラーメッセージ。 エラーメッセージには、失敗の原因と無効なパラメーターに関する情報が含まれています。

デバイスイベントの送信

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

このトピックを使用して、デバイスによって送信されたイベントを取得できます。

データ形式:

{
    "identifier":"BrokenInfo",
    "name":"ダメージ率の報告" 、
    "type":"info",
    "iotId":"4z819VQHk6VSLmmBJfrf00107e ****" 、
    "requestId":"2" 、
    "productKey":"X5eCzh6 ****" 、
    "deviceName":"5gJtxDVeGAkaEztpisjX",
    "gmtCreate":1510799670074,
    "value":{
        "パワー":"オン" 、
        "Position":{
            "latitude":39.9,
            "longitude":116.38
        }
    },
    "checkFailedData" :{}、
    "time":1510799670074
} 

パラメーター:

パラメーター

データ型

説明

識別子

String

イベントの識別子。

カスタムモジュールイベントの識別子は、${モジュール識別子 }:${ イベント識別子} 形式です。 コロン (:) は、式の2つの部分を接続するために使用されます。 識別子がtestであるカスタムモジュールのデータ形式の例を次に示します。

"test:identifier":"BrokenInfo" 、

name

String

イベント名。

タイプ

String

イベントのタイプ。 サポートされているイベントの種類については、製品のTSLモデルを参照してください。

iotId

String

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

requestId

String

メッセージのID。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。

productKey

String

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

deviceName

String

デバイスのDeviceName。

gmtCreate

Long

メッセージが生成された時刻。

オブジェクト

イベントの出力パラメーター。 例: パワーポジション

{
    "パワー":"オン" 、
    "Position":{
        "latitude":39.9,
        "longitude":116.38
    }
}
重要
  • valueパラメーターには、検証に合格した出力パラメーターのみが含まれます。 この場合、checkFailedDataパラメーターは空です。

  • checkFailedDataパラメーターには、検証に失敗した出力パラメーターのみが含まれます。 この場合、valueパラメーターは空です。

checkFailedData

オブジェクト

検証に失敗したデータ。

出力パラメーターの検証に失敗した場合、checkFailedDataパラメーターには次のパラメーターが含まれます。

{
    "value":{
        "パワー":"オン" 、
        "Position":{
            "latitude":39.9,
            "longitude":116.38
        }
    },
    "time":1524448722000、
    "code":6304、
    "message":"tsl parse: params not exist -> type"
} 

以下の点にご注意ください。

  • value: オブジェクト型。 イベントの出力パラメーター。

  • time: ロングタイプ。 イベントがいつ生成されたかを示すタイムスタンプ。

  • code: 整数型。 データの検証に失敗した場合に返されるエラーコード。 詳細については、「デバイスのエラーコード」をご参照ください。

  • message: String型。 データの検証に失敗した場合に返されるエラーメッセージ。 メッセージには、失敗の原因と無効なパラメーターに関する情報が含まれています。

時間

Long

イベントが送信された時刻。 デバイスがタイムスタンプを送信しない場合、IoT Platformがメッセージを受信したときを示すタイムスタンプが使用されます。

デバイスのプロパティをバッチで送信する

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

このトピックを使用して、デバイスによってバッチで送信されるプロパティを取得できます。

データ形式:

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

パラメーター:

パラメーター

データ型

説明

productKey

String

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

deviceName

String

デバイスのDeviceName。

instanceId

String

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

requestId

String

メッセージのID。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。

アイテム

オブジェクト

デバイスによって送信されたデータ。

パワー

String

プロパティの識別子。 プロパティの詳細については、製品のTSLモデルを参照してください。

カスタムモジュールのプロパティを使用する場合、各プロパティの識別子は ${モジュール識別子 }:${ プロパティ識別子} 形式になります。コロン (:) は、式の2つの部分を接続するために使用されます。 次の例は、識別子がtestであるカスタムモジュールのデータ形式を示しています。

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

WF

TSL定義の対象

プロパティの値

時間

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

デバイスのDeviceName。

instanceId

String

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

requestId

String

メッセージのID。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。

アイテム

オブジェクト

デバイスによって送信されたデータ。

alarmEvent

List

イベントの識別子。

オブジェクト

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

例: PowerWF

時間

Long

イベントが送信された時刻。 デバイスがタイムスタンプを送信しない場合、IoT Platformがメッセージを受信したときを示すタイムスタンプが使用されます。

ライフサイクルの変更を送信

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

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

データ形式:

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

パラメーター:

パラメーター

データ型

説明

アクション

String

  • create: デバイスを作成します。

  • delete: デバイスを削除します。

  • enable: デバイスを有効にします。

  • disable: デバイスを無効にします。

iotId

String

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

productKey

String

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

deviceName

String

デバイスのDeviceName。

deviceSecret

String

デバイスのDeviceSecret。 このパラメーターは、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
} 

パラメーター:

パラメーター

データ型

説明

アクション

String

  • create: トポロジ関係を作成します。

  • delete: トポロジ関係を削除します。

  • enable: トポロジ関係を有効にします。

  • disable: トポロジ関係を無効にします。

gwIotId

String

IoT Platformのゲートウェイの一意の識別子。

gwProductKey

String

ゲートウェイが属する製品の一意の識別子。

gwDeviceName

String

ゲートウェイの名前。

デバイス

オブジェクト

トポロジ関係が変更されたサブデバイス。

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

ゲートウェイの名前。

デバイス

オブジェクト

ゲートウェイによって検出されたサブデバイス

iotId

String

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

productKey

String

サブデバイスが属する製品の一意の識別子。

deviceName

String

サブデバイスの名前

ダウンストリームリクエストへのレスポンスの送信

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

このトピックを使用して、デバイスがダウンストリームリクエストを処理した後に返される結果を取得できます。 IoT Platformは、ダウンストリーム要求を非同期でデバイスに送信します。 IoT Platformがダウンストリームリクエストを送信するときにエラーが発生した場合は、このトピックを使用してエラーメッセージを取得できます。

データ形式:

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

デバイスのDeviceName。

requestId

String

メッセージのID。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。

コード

Integer

デバイスによって返される応答コード。 詳細については、「応答コード」の表をご参照ください。

メッセージ

String

デバイスによって返されるメッセージ。

トピック

String

ダウンストリームリクエストの送信に使用されるトピックに関する情報。

データ

オブジェクト

デバイスによって返されるデータ。 デバイスがAlinkデータを返す場合、データを解析する必要はありません。 デバイスがパススルーデータを返す場合は、スクリプトを使用してデータを解析する必要があります。

checkFailedData

オブジェクト

検証に失敗したデータ。

TSL定義の対象

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

例: PicID

コード

Integer

データの検証に失敗した場合に返されるエラーコード。 詳細については、「デバイスのエラーコード」をご参照ください。

メッセージ

String

データの検証に失敗した場合に返されるエラーメッセージ。 エラーメッセージには、失敗の原因と無効なパラメーターに関する情報が含まれています。

表 1 応答コード

コード

メッセージ

説明

200

success

リクエストは成功です。

400

request error

内部エラーが発生しました。

460

request parameter error

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

429

too many requests

指定された期間内のリクエストの最大数に達しました。

9200

デバイスがアクティブ化されていない

デバイスは起動していません。

9201

device offline

デバイスがIoT Platformから切断されました。

403

request forbidden

料金滞納のため、リクエストは拒否されます。

問題のトラブルシューティング方法については、「デバイスのエラーコード」をご参照ください。

履歴プロパティを送信する

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

このトピックを使用して、デバイスによって送信された履歴プロパティを取得できます。

データ形式:

{
    "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 各メッセージIDは、デバイスに対して一意である必要があります。

productKey

String

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

deviceName

String

デバイスのDeviceName。

gmtCreate

Long

メッセージが生成された時刻。

deviceType

String

デバイスの製品カテゴリ。

IoT Platformでプロダクトを作成するときに、プロダクトカテゴリを指定できます。 詳細については、「プロダクトの作成」または「CreateProduct」をご参照ください。

アイテム

オブジェクト

デバイスによって送信されたデータ。

パワー

String

プロパティの識別子。 プロパティの詳細については、製品のTSLモデルを参照してください。

カスタムモジュールのプロパティを使用する場合、各プロパティの識別子は ${モジュール識別子 }:${ プロパティ識別子} 形式になります。コロン (:) は、式の2つの部分を接続するために使用されます。 識別子がtestであるカスタムモジュールのデータ形式の例を次に示します。

{
    "items":{
        "test:Power":{
            "value":"on",
            "time":1510799670074
        },
        "test: ポジション":{
            "time":1510292697470,
            "value":{
                "latitude":39.9,
                "longitude":116.38
            }
        }
    }
}

位置

attribute_8

checkFailedData

オブジェクト

検証に失敗したデータ。

TSL定義の対象

プロパティの値

時間

Long

プロパティが提出された時刻。 デバイスがタイムスタンプを送信しない場合、IoT Platformがメッセージを受信したときを示すタイムスタンプが使用されます。

コード

Integer

データの検証に失敗した場合に返されるエラーコード。 詳細については、「デバイスのエラーコード」をご参照ください。

メッセージ

String

データの検証に失敗した場合に返されるエラーメッセージ。 エラーメッセージには、失敗の原因と無効なパラメーターに関する情報が含まれています。

履歴イベントを送信する

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

このトピックを使用して、デバイスによって送信された履歴イベントを取得できます。

データ形式:

{
    "identifier":"BrokenInfo",
    "name":"ダメージ率の報告" 、
    "type":"info",
    "iotId":"4z819VQHk6VSLmmBJfrf00107e ***" 、
    "requestId":"2" 、
    "productKey":"X5eCzh6 ***" 、
    "deviceName":"5gJtxDVeGAkaEztpisjX",
    "value":{
        "パワー":"オン" 、
        "Position":{
            "latitude":39.9,
            "longitude":116.38
        }
    },
    "checkFailedData" :{}、
    "time":1510799670074
} 

パラメーター:

パラメーター

データ型

説明

識別子

String

イベントの識別子。

カスタムモジュールイベントの識別子は、${モジュール識別子 }:${ イベント識別子} 形式です。 コロン (:) は、式の2つの部分を接続するために使用されます。 識別子がtestであるカスタムモジュールのデータ形式の例を次に示します。

"test:identifier":"BrokenInfo" 、

name

String

イベント名。

タイプ

String

イベントのタイプ。 サポートされているイベントの種類については、製品のTSLモデルを参照してください。

iotId

String

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

requestId

String

メッセージのID。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。

productKey

String

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

deviceName

String

デバイスのDeviceName。

gmtCreate

Long

メッセージが生成された時刻。

オブジェクト

イベントの出力パラメーター。 例: パワーポジション

{
    "パワー":"オン" 、
    "Position":{
        "latitude":39.9,
        "longitude":116.38
    }
}
重要
  • valueパラメーターには、検証に合格した出力パラメーターのみが含まれます。 この場合、checkFailedDataパラメーターは空です。

  • checkFailedDataパラメーターには、検証に失敗した出力パラメーターのみが含まれます。 この場合、valueパラメーターは空です。

checkFailedData

オブジェクト

検証に失敗したデータ。

出力パラメーターの検証に失敗した場合、checkFailedDataパラメーターには次のパラメーターが含まれます。

{
    "value":{
        "パワー":"オン" 、
        "Position":{
            "latitude":39.9,
            "longitude":116.38
        }
    },
    "time":1524448722000、
    "code":6304、
    "message":"tsl parse: params not exist -> type"
} 

以下の点にご注意ください。

  • value: オブジェクト型。 イベントの出力パラメーター。

  • time: ロングタイプ。 イベントがいつ生成されたかを示すタイムスタンプ。

  • code: 整数型。 データの検証に失敗した場合に返されるエラーコード。 詳細については、「デバイスのエラーコード」をご参照ください。

  • message: String型。 データの検証に失敗した場合に返されるエラーメッセージ。 メッセージには、失敗の原因と無効なパラメーターに関する情報が含まれています。

時間

Long

イベントが送信された時刻。 デバイスがタイムスタンプを送信しない場合、IoT Platformがメッセージを受信したときを示すタイムスタンプが使用されます。

無線 (OTA) アップデートのステータスデータを送信する

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

このトピックを使用して、OTAの更新が成功または失敗したときに生成されるメッセージを受信できます。

説明

デバイスの更新タスクが保留状態にあり、デバイスで別のバッチ更新タスクを開始すると、最新の更新タスクは失敗します。 この場合、最新の更新タスクが失敗したときに生成されたメッセージはIoT Platformに送信されません。

データ形式:

{
    "iotId": "4z819VQHk6VSLmmBJfrf00107e ****" 、
    "productKey": "X5eCzh6 ****" 、
    "deviceName": "deviceName1234",
    "moduleName": "default" 、
    "status": "成功 | 失敗 | キャンセルされた" 、
    "messageCreateTime": 1571323748000、
    "srcVersion": "1.0.1" 、
    "destVersion": "1.0.2" 、
    "desc": "success" 、
    "jobId": "wahVIzGkCMuAUE2gDERM02 ****" 、
    "taskId": "y3tOmCDNgpR8F9jnVEzC01 ****"
} 

パラメーター:

パラメーター

データ型

説明

iotId

String

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

productKey

String

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

deviceName

String

デバイスのDeviceName。

moduleName

String

OTAモジュールの名前。

status

String

更新のステータス。

  • SUCCEEDED: 更新タスクは成功です。

  • FAILED: 更新タスクが失敗しました。

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

messageCreateTime

Long

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

srcVersion

String

更新前のファームウェアバージョン。

destVersion

String

更新後のファームウェアバージョン。

desc

String

更新の説明。The description of the update.

jobId

String

更新バッチのID。 このパラメーターは、更新バッチを一意に識別するために使用されます。

taskId

String

デバイス更新レコードの一意の識別子。

OTAアップデートの進捗データを送信する

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

このトピックを使用して、OTA更新の進行状況データを取得できます。

データ形式:

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

パラメーター:

パラメーター

データ型

説明

iotId

String

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

productKey

String

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

deviceName

String

デバイスのDeviceName。

moduleName

String

OTAモジュールの名前。

status

String

更新のステータス。 値はIN_PROGRESSに固定されています。

ステップ

Integer

更新の進行状況。

messageCreateTime

Long

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

srcVersion

String

更新前のファームウェアバージョン。

destVersion

String

更新後のファームウェアバージョン。

desc

String

更新の説明。The description of the update.

jobId

String

更新バッチのID。 このパラメーターは、更新バッチを一意に識別するために使用されます。

taskId

String

デバイス更新レコードの一意の識別子。

OTAモジュールのバージョンを送信する

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

このトピックを使用して、デバイスによって送信されたOTAモジュールのバージョンを取得できます。 デバイスによって送信されたバージョンが以前のバージョンと異なる場合、メッセージは転送されます。

データ形式:

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

パラメーター:

パラメーター

データ型

説明

iotId

String

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

productKey

String

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

deviceName

String

デバイスのDeviceName。

moduleName

String

OTAモジュールの名前。

moduleVersion

String

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

messageCreateTime

Long

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

OTA更新バッチのステータスデータを送信する

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

このトピックを使用して、OTA更新バッチのステータスデータを取得できます。

データ形式:

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

パラメーター:

パラメーター

データ型

説明

productKey

String

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

moduleName

String

OTAモジュールの名前。

packageId

String

更新パッケージのID。 このパラメーターの値は、CreateOTAFirmware操作を呼び出して更新パッケージを作成したときに返されるFirmwareIdパラメーターの値と同じです。

jobId

String

更新バッチのID。 このパラメーターは、更新バッチを一意に識別するために使用されます。

state

String

更新バッチのステータス。 有効な値:

  • PLANNED: 更新は開始されません。

  • IN_PROGRESS: アップデートは実行中です。

  • 完了: 更新は完了です。

  • キャンセル済み: 更新がキャンセルされました。

  • UNFINISH: 更新が完了していません。

    Enterprise Editionインスタンスの更新試行回数が上限に達した場合、更新バッチはUNFINISH状態になります。

messageCreateTime

Long

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

デバイスタグの変更を送信

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

このトピックを使用して、デバイスタグが変更されたときに生成されるメッセージを受信できます。

データ形式:

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

パラメーター:

パラメーター

データ型

説明

アクション

String

タグのタイプが変わります。 有効な値:

  • UPDATE: タグが更新されるか、タグが作成されます。

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

  • DELETEALL: すべてのタグが削除されます。

iotId

String

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

productKey

String

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

deviceName

String

デバイスのDeviceName。

deletedAttrKeyList

List

削除されたタグのキー。

このパラメーターは、actionパラメーターがDELETEに設定されている場合にのみ使用できます。

List

タグのデータ。

attrKey

String

タグのキー。

attrValue

String

タグの値。

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: タスクはロールバック中です。

  • ROLL_BACK_PAUSE: ロールバックは一時停止しています。

messageCreateTime

Long

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

タイプ

String

タスクの ID を設定します。 値はINSTANCE_UPGRADEに固定されています。

sourceInstance

String

データの移行元のパブリックインスタンスのID。 パブリックインスタンスが以前のバージョンの場合、値はiotx-oxssharez200です。

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

targetInstance

String

データの移行先のEnterprise EditionインスタンスのID。

successDevices

List

移行されるデバイスに関する情報。

  • フェーズデータ移行タスクまたはフルスケールデータ移行タスクを実行する場合、パラメーターの値には、パブリックインスタンスからEnterprise Editionインスタンスに移行されるデバイスに関する情報が含まれます。

  • データ移行タスクをロールバックする場合、パラメーターの値には、Enterprise Editionインスタンスからパブリックインスタンスに移行されるデバイスに関する情報が含まれます。

productKey

String

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

deviceName

String

デバイスのDeviceName。

iotId

String

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