IoT Platformは、データ転送およびサーバー側サブスクリプション機能を提供します。 この機能を使用して、トピックのデータ形式に基づいてデータを処理および転送できます。 トピックは、カスタムトピック、基本通信のトピック、およびTSL (Thing Specification Language) 通信のトピックに分類されます。 ビジネス要件に基づいて、カスタムトピックのデータ形式を指定できます。 このトピックでは、ルールエンジンが基本通信のトピックとTSL通信のトピックのデータを変換する形式について説明します。
ルールエンジンとデバイス通信に関連するトピック
コミュニケーショントピックの定義、使用法、および分類については、「トピック」をご参照ください。
デバイスを開発するときに、デバイスによって送信される生データの形式を指定する必要があります。 以下の点にご注意ください。
基本通信のトピックとTSL通信のトピックのデータは、IoT PlatformでサポートされているAlinkプロトコルに準拠している必要があります。 詳細については、「Alinkプロトコル」トピックの関連サブトピックをご参照ください。
ルールエンジンがデバイスによって送信された生データを転送した後、生データの形式が変換されます。 データ形式の詳細については、このトピックの説明を参照してください。
カスタムトピックのデータ形式を指定できます。
ルールエンジンがデバイスによって送信された生データを転送した後、生データの形式は変換されません。
次の表に、ルールエンジンがデータの転送に使用するトピックと、デバイスがデータを送信するトピック間のマッピングを示します。
トピック | 説明 | 参考資料 |
カスタム | カスタム形式でデータを転送するために使用されるトピック。 このトピックの形式は、カスタムトピックの形式と同じです。 形式: /${productKey}/${deviceName}/user/${TopicShortName} ${TopicShortName} は、カスタムトピックのサフィックスであるカスタムトピックカテゴリを指定します。 値には、プラス記号 (+) や数値記号 (#) などのワイルドカード文字を含めることができます。
| |
デバイスステータス変更通知 | デバイスのステータスがオンラインとオフラインの間で変化したときに通知を転送するために使用されるトピック。 形式: /as/mqtt/status/${productKey}/${deviceName} | |
TSLデータレポート | 以下のトピックを提供します。
| |
デバイスデータの送信には、次のトピックを使用します。
| ||
ライフサイクル全体のデバイス変更 | デバイスが作成、削除、無効、または有効になったときにメッセージを転送するために使用されるトピック。 形式: | |
ゲートウェイで検出されたサブデバイスデータレポート | ゲートウェイがサブデバイスを検出したときに、新しいサブデバイスに関する情報を送信および転送するために使用されるトピック。 このトピックはゲートウェイに固有です。 形式: | |
デバイスのトポロジ関係の変更 | サブデバイスとゲートウェイ間のトポロジ関係が作成または削除されたときに通知を転送するために使用されるトピック。 このトピックはゲートウェイに固有です。 形式: /${productKey}/${deviceName}/thing/topo/lifecycle | |
| ||
デバイスタグの変更 | デバイスタグが変更されたときにメッセージを転送するために使用されるトピック。 形式: /${productKey}/${deviceName}/thing/deviceinfo/update | |
| ||
TSL履歴データレポート | 以下のトピックを提供します。
| |
| ||
デバイスステータス通知 | 以下のトピックを提供します。
| |
上記のトピックは、/ota/device/progress/${productKey}/${deviceName} のトピックに対応しています。 このトピックは、更新の進行状況を送信するために使用されます。 | ||
モジュールのバージョン番号の送信 | デバイスのOTAモジュールのバージョン番号が変更されたときにメッセージを転送するために使用されるトピック。 形式: /${productKey}/${deviceName}/ota/version/post | OTAモジュールのバージョンを送信する |
上記のトピックは、/ota/device/inform/${productKey}/${deviceName} のトピックに対応しています。 このトピックは、OTAモジュールのバージョン番号を送信するために使用されます。 | ||
バッチステータス通知 | OTA更新バッチのステータスが変更されたときにIoT Platformがメッセージを送信するトピック。 形式: /${productKey}/${packageId}/${jobId}/ota/job/status | |
Jobイベント |
説明 インスタンス移行タスクの名前は、データを移行する製品の名前と同じです。 |
デバイスステータスの送信
トピック: /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 | デバイスがオンラインまたはオフラインになった時刻。 返されたメッセージは時間によってソートされません。 手動でメッセージをソートする必要があります。 たとえば、次のメッセージを順番に受信したとします。
上記のメッセージは、デバイスが切断され、再接続された後、再び切断されたことを示します。 |
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モデルを参照してください。 カスタムモジュールのプロパティを使用する場合、各プロパティの識別子は
|
位置 | ||
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 | イベントの識別子。 カスタムモジュールイベントの識別子は、
|
name | String | イベント名。 |
タイプ | String | イベントのタイプ。 サポートされているイベントの種類については、製品のTSLモデルを参照してください。 |
iotId | String | IoT Platformのデバイスの一意の識別子。 |
requestId | String | メッセージのID。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。 |
productKey | String | デバイスが属するプロダクトの一意の識別子。 |
deviceName | String | デバイスのDeviceName。 |
gmtCreate | Long | メッセージが生成された時刻。 |
値 | オブジェクト | イベントの出力パラメーター。 例: パワーとポジション。
重要
|
checkFailedData | オブジェクト | 検証に失敗したデータ。 出力パラメーターの検証に失敗した場合、checkFailedDataパラメーターには次のパラメーターが含まれます。
以下の点にご注意ください。
|
時間 | 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モデルを参照してください。 カスタムモジュールのプロパティを使用する場合、各プロパティの識別子は
|
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 | イベントの識別子。 |
値 | オブジェクト | イベントのパラメーター。 例: PowerとWF。 |
時間 | Long | イベントが送信された時刻。 デバイスがタイムスタンプを送信しない場合、IoT Platformがメッセージを受信したときを示すタイムスタンプが使用されます。 |
ライフサイクルの変更を送信
トピック: /${productKey}/${deviceName}/thing/lifecycle
このトピックを使用すると、デバイスの作成、削除、有効化、または無効化時に生成されるメッセージを受信できます。
データ形式:
{
"action": "create | delete | enable | disable" 、
"iotId": "4z819VQHk6VSLmmBJfrf00107e ****" 、
"productKey": "al5eCzh ****" 、
"deviceName": "5gJtxDVeGAkaEztpisjX" 、
"deviceSecret": "wsde ***" 、
"messageCreateTime": 1510292739881
}
パラメーター:
パラメーター | データ型 | 説明 |
アクション | String |
|
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 |
|
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 | データの検証に失敗した場合に返されるエラーメッセージ。 エラーメッセージには、失敗の原因と無効なパラメーターに関する情報が含まれています。 |
コード | メッセージ | 説明 |
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モデルを参照してください。 カスタムモジュールのプロパティを使用する場合、各プロパティの識別子は
|
位置 | ||
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 | イベントの識別子。 カスタムモジュールイベントの識別子は、
|
name | String | イベント名。 |
タイプ | String | イベントのタイプ。 サポートされているイベントの種類については、製品のTSLモデルを参照してください。 |
iotId | String | IoT Platformのデバイスの一意の識別子。 |
requestId | String | メッセージのID。 有効な値: 0 ~ 4294967295 各メッセージIDは、デバイスに対して一意である必要があります。 |
productKey | String | デバイスが属するプロダクトの一意の識別子。 |
deviceName | String | デバイスのDeviceName。 |
gmtCreate | Long | メッセージが生成された時刻。 |
値 | オブジェクト | イベントの出力パラメーター。 例: パワーとポジション。
重要
|
checkFailedData | オブジェクト | 検証に失敗したデータ。 出力パラメーターの検証に失敗した場合、checkFailedDataパラメーターには次のパラメーターが含まれます。
以下の点にご注意ください。
|
時間 | 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 | 更新のステータス。
|
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 | 更新のステータス。 値は |
ステップ | 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 | 更新バッチのステータス。 有効な値:
|
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 | タグのタイプが変わります。 有効な値:
|
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 | タスクの実行ステータス 有効な値:
|
messageCreateTime | Long | メッセージに対して生成されたタイムスタンプ。 単位:ミリ秒。 |
タイプ | String | タスクの ID を設定します。 値は |
sourceInstance | String | データの移行元のパブリックインスタンスのID。 パブリックインスタンスが以前のバージョンの場合、値は IoT Platformインスタンスの詳細については、「概要」をご参照ください。 |
targetInstance | String | データの移行先のEnterprise EditionインスタンスのID。 |
successDevices | List | 移行されるデバイスに関する情報。
|
productKey | String | デバイスが属するプロダクトの一意の識別子。 |
deviceName | String | デバイスのDeviceName。 |
iotId | String | IoT Platformのデバイスの一意の識別子。 |