全部產品
Search
文件中心

IoT Platform:資料格式

更新時間:Jun 30, 2024

物聯網平台的雲產品流轉和服務端訂閱,是基於Topic中的資料格式來處理和傳遞資料的。Topic可分為自訂Topic、基礎通訊Topic和物模型Topic,其中自訂Topic中的資料格式由您定義。本文介紹基礎通訊Topic和物模型通訊Topic資料經過訊息轉寄後的資料格式。

訊息轉寄與裝置原始通訊的Topic說明

通訊Topic的定義、使用和分類說明,請參見什麼是Topic

裝置上報的未經處理資料格式,需您在裝置端完成開發。其中:

  • 基礎通訊Topic和物模型通訊Topic資料必須符合物聯網平台支援的Alink協議。詳細說明,請參見Alink協議目錄下對應文檔

    裝置上報未經處理資料經過訊息轉寄後,會進行資料格式轉化。具體格式說明,請參見下文描述。

  • 自訂Topic資料由您自訂資料格式。

    裝置上報未經處理資料經過訊息轉寄後,不會進行資料格式轉化,與您自訂Topic資料格式相同。

裝置未經處理資料通訊Topic,對應訊息轉寄裝置資料的通訊Topic說明如下表。

表 1. Topic說明

Topic

說明

相關文檔

自訂

流轉自訂資料格式訊息的Topic,與自訂Topic的格式相同。格式為:/${productKey}/${deviceName}/user/${TopicShortName}

其中${TopicShortName}為自訂的Topic類,即自訂Topic的尾碼。

支援使用萬用字元(+)和(#):

  • 全部裝置(+):指定產品下所有裝置。

  • /user/#:指定裝置的所有自訂Topic。

使用自訂Topic通訊

裝置狀態變化通知

流轉裝置上下線狀態變更訊息的Topic:/as/mqtt/status/${productKey}/${deviceName}

裝置上下線狀態

物模型資料上報

包含:

  • 流轉裝置上報屬性資料的Topic:/${productKey}/${deviceName}/thing/event/property/post

  • 流轉裝置上報事件數目據的Topic:/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post

  • 流轉裝置批量上報屬性資料的Topic:/${productKey}/${deviceName}/thing/property/batch/post

  • 流轉裝置批量上報事件數目據的Topic:/${productKey}/${deviceName}/thing/event/batch/post

  • 流轉裝置響應雲端命令返回訊息的Topic:/${productKey}/${deviceName}/thing/downlink/reply/message

對應裝置上報未經處理資料的Topic如下:

  • 裝置上報屬性的Topic:/sys/${productKey}/${deviceName}/thing/event/property/post

  • 裝置上報事件的Topic:/sys/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post/sys/${productKey}/${deviceName}/thing/event/${tsl.functionBlockId}:{tsl.event.identifier}/post

  • 裝置批量上報屬性、事件數目據的Topic:/sys/${productKey}/${deviceName}/thing/event/property/batch/post

裝置生命週期變更

流轉裝置建立、刪除、禁用、啟用等訊息的Topic:/${productKey}/${deviceName}/thing/lifecycle

裝置生命週期變更

網關發現子裝置上報

網關裝置特有的Topic:/${productKey}/${deviceName}/thing/list/found,將發現的子裝置資訊上報給物聯網平台,然後進行流轉。

網關發現子裝置

裝置拓撲關係變更

網關裝置特有Topic:/${productKey}/${deviceName}/thing/topo/lifecycle,流轉子裝置和網關之間的拓撲關係建立和解除訊息的Topic。

裝置拓撲關係變更

對應裝置上報未經處理資料的Topic:/sys/${productKey}/${deviceName}/thing/topo/change

通知網關拓撲關係變化

裝置標籤變更

流轉裝置標籤資訊變更的Topic:/${productKey}/${deviceName}/thing/deviceinfo/update

裝置標籤變更

對應裝置上報未經處理資料的Topic:/sys/${productKey}/${deviceName}/thing/deviceinfo/update

上報標籤資訊

物模型歷史資料上報

包含:

  • 流轉裝置上報歷史屬性資料的Topic:/${productKey}/${deviceName}/thing/event/property/history/post

  • 流轉裝置上報歷史事件數目據的Topic:/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/history/post

對應裝置上報物模型歷史資料的Topic:/sys/${productKey}/${deviceName}/thing/event/property/history/post

物模型歷史資料上報

OTA升級裝置狀態通知

包含:

  • 流轉裝置上報OTA升級結果的Topic:/${productKey}/${deviceName}/ota/upgrade

  • 流轉裝置上報OTA升級進度的Topic:/${productKey}/${deviceName}/ota/progress/post

對應裝置上報升級進度的Topic:/ota/device/progress/${productKey}/${deviceName}

裝置上報升級進度

OTA模組版本號碼上報

流轉裝置上報OTA模組版本號碼變更的Topic:/${productKey}/${deviceName}/ota/version/post

OTA模組版本號碼變更通知

對應裝置上報OTA模組版本的Topic:/ota/device/inform/${productKey}/${deviceName}

裝置上報OTA模組版本

OTA升級批次狀態通知

物聯網平台通知OTA升級批次狀態變化的Topic:/${productKey}/${packageId}/${jobId}/ota/job/status

OTA升級批次狀態通知

任務事件

包含:

  • 流轉裝置任務狀態通知的Topic:/sys/uid/${uid}/job/${jobId}/lifecycle

  • 流轉執行個體遷移任務狀態通知的Topic:/sys/uid/${uid}/distribution/${jobId}/lifecycle

    說明

    遷移產品的名稱為執行個體遷移的任務名稱。

裝置上下線狀態

Topic:/as/mqtt/status/${productKey}/${deviceName}

通過該Topic擷取裝置的上下線狀態。

裝置上線的資料格式:

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

裝置在平台內的唯一標識。

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。

裝置屬性上報

Topic:/${productKey}/${deviceName}/thing/event/property/post

通過該Topic擷取裝置上報的屬性資訊。

資料格式:

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

裝置在平台內的唯一標識。

requestId

String

裝置上報訊息的未經處理資料中的Id,String類型的數字,取值範圍為0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

productKey

String

裝置所屬產品的唯一標識。

deviceName

String

裝置名稱。

gmtCreate

Long

資料流轉訊息產生時間。

deviceType

String

裝置所屬品類。

該品類是您在物聯網平台建立產品時選擇的品類。具體說明,請參見建立產品CreateProduct

items

Object

裝置資料。

Power

String

屬性標識符。產品所具有的屬性名稱請參見產品的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

未通過物模型資料校正的資料。

value

根據TSL定義

屬性值。

time

Long

上報屬性的時間,如果裝置沒有上報資料,預設採用在物聯網平台產生的時間。

code

Integer

資料未通過物模型資料校正時,返回的錯誤碼。詳細說明,請參見裝置端接收的錯誤碼

message

String

資料未通過物模型資料校正時,返回的錯誤碼資訊,包含錯誤原因和具體的錯誤參數。

裝置事件上報

Topic:/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post

通過該Topic擷取裝置上報的事件資訊。

資料格式:

{
    "identifier":"BrokenInfo",
    "name":"損壞率上報",
    "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

事件的標識符。

如果是自訂模組事件,事件標識符格式為${模組標識符}:${事件標識符}(中間為半形冒號)。例如,物模型自訂模組標識符為test,資料格式為:

"test:identifier":"BrokenInfo",

name

String

事件的名稱。

type

String

事件類型,事件類型參見產品的TSL描述。

iotId

String

裝置在平台內的唯一標識。

requestId

String

裝置上報訊息的未經處理資料中的Id,String類型的數字,取值範圍為0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

productKey

String

裝置所屬產品的唯一標識。

deviceName

String

裝置名稱。

gmtCreate

Long

資料流轉訊息產生時間。

value

Object

事件的輸出參數資訊。如以上樣本中的兩個參數Power(電源)和Position(位置)的資訊。

{
    "Power":"on",
    "Position":{
        "latitude":39.9,
        "longitude":116.38
    }
}
重要
  • 僅當事件的輸出參數均通過檢驗時,輸出參數均顯示在value中。此時checkFailedData為空白。

  • 當事件的輸出參數有任一參數未通過檢驗時,輸出參數均顯示在checkFailedData中。此時value為空白。

checkFailedData

Object

未通過物模型資料校正的資料資訊。

若事件的輸出參數未通過檢驗,則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類型。資料未通過物模型資料校正時,返回的錯誤碼。詳細說明,請參見裝置端接收的錯誤碼

  • message:String類型。資料未通過物模型資料校正時,返回的錯誤碼資訊,包含錯誤原因和具體的錯誤參數。

time

Long

上報事件的時間,如果裝置沒有上報資料,預設採用物聯網平台產生的時間。

裝置屬性批量上報

Topic:/${productKey}/${deviceName}/thing/property/batch/post

通過該Topic擷取裝置批量上報的屬性資訊。

資料格式:

{
    "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,String類型的數字,取值範圍為0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

items

Object

裝置資料。

Power

String

屬性標識符。產品所具有的屬性名稱請參見產品的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

上報屬性的時間,如果裝置沒有上報資料,預設採用在物聯網平台產生的時間。

裝置事件批量上報

Topic:/${productKey}/${deviceName}/thing/event/batch/post

通過該Topic擷取裝置批量上報的事件資訊。

資料格式:

{
    "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,String類型的數字,取值範圍為0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

items

Object

裝置資料。

alarmEvent

List

事件的標識符。

value

Object

事件的參數。

以上樣本中,PowerWF是事件的參數名稱。

time

Long

上報事件的時間,如果裝置沒有上報資料,預設採用在物聯網平台產生的時間。

裝置生命週期變更

Topic:/${productKey}/${deviceName}/thing/lifecycle

通過該Topic獲得裝置建立、刪除、禁用、啟用等訊息。

資料格式:

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

參數說明:

參數

類型

說明

action

String

  • create:建立裝置。

  • delete:刪除裝置。

  • enable:啟用裝置。

  • disable:禁用裝置。

iotId

String

裝置在平台內的唯一標識。

productKey

String

產品的唯一標識。

deviceName

String

裝置名稱。

deviceSecret

String

裝置密鑰,僅在actioncreate時包含。

messageCreateTime

Integer

訊息產生時間戳記,單位為毫秒。

裝置拓撲關係變更

Topic:/${productKey}/${deviceName}/thing/topo/lifecycle

通過該Topic獲得子裝置和網關之間拓撲關係建立和解除資訊。

資料格式:

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

網關裝置在平台內的唯一標識。

gwProductKey

String

網關產品的唯一標識。

gwDeviceName

String

網關裝置名稱。

devices

Object

變更的子裝置列表。

iotId

String

子裝置在平台內的唯一標識。

productKey

String

子裝置產品的唯一標識。

deviceName

String

子裝置名稱。

messageCreateTime

Integer

訊息產生時間戳記,單位毫秒。

網關發現子裝置

Topic:/${productKey}/${deviceName}/thing/list/found

在一些情境中網關能夠檢測到子裝置,並將檢測到的子裝置資訊上報。此時可以通過該Topic擷取到上報的資訊。

資料格式:

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

參數說明:

參數

類型

說明

gwIotId

String

網關裝置在平台內的唯一標識。

gwProductKey

String

網關產品的唯一標識。

gwDeviceName

String

網關裝置名稱。

devices

Object

發現的子裝置列表。

iotId

String

子裝置在平台內的唯一標識。

productKey

String

子裝置所屬產品的唯一標識。

deviceName

String

子裝置名稱。

裝置下行指令結果

Topic:/${productKey}/${deviceName}/thing/downlink/reply/message

通過該Topic可以擷取,通過非同步方式下發屬性設定和服務調用指令給裝置,裝置進行處理後返回的結果資訊。如果下髮指令過程中出現錯誤,也可以通過該Topic得到指令下發的錯誤資訊。

資料格式:

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

裝置在平台內的唯一標識。

productKey

String

裝置所屬產品的唯一標識。

deviceName

String

裝置名稱。

requestId

String

裝置上報訊息的未經處理資料中的Id,String類型的數字,取值範圍為0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

code

Integer

裝置回複的結果狀態代碼,說明參見下表結果狀態代碼

message

String

裝置回複的結果狀態代碼資訊。

topic

String

下髮指令給裝置的Topic資訊。

data

Object

裝置返回的結果。Alink格式資料直接返回裝置處理結果,透傳格式資料則需要經過指令碼轉換。

checkFailedData

Object

未通過物模型資料校正的資料。

value

根據TSL定義

未通過物模型資料校正的屬性值、服務參數值。

以上樣本中,PicID是未通過檢驗的參數名稱。

code

Integer

資料未通過物模型資料校正時,返回的錯誤碼。詳細說明,請參見裝置端接收的錯誤碼

message

String

資料未通過物模型資料校正時,返回的錯誤碼資訊,包含錯誤原因和具體的錯誤參數。

表 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

由於欠費導致請求被禁止。

錯誤碼相應解決辦法,請參見裝置端接收的錯誤碼

歷史屬性上報

Topic:/${productKey}/${deviceName}/thing/event/property/history/post

通過該Topic擷取裝置上報的物模型歷史屬性資料。

資料格式:

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

裝置在平台內的唯一標識。

requestId

String

裝置上報訊息的未經處理資料中的Id,String類型的數字,取值範圍為0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

productKey

String

裝置所屬產品的唯一標識。

deviceName

String

裝置名稱。

gmtCreate

Long

資料流轉訊息產生時間。

deviceType

String

裝置所屬品類。

該品類是您在物聯網平台建立產品時選擇的品類。具體說明,請參見建立產品CreateProduct

items

Object

裝置資料。

Power

String

屬性標識符。產品所具有的屬性名稱請參見產品的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

未通過物模型資料校正的資料。

value

根據TSL定義

屬性值。

time

Long

上報屬性的時間,如果裝置沒有上報資料,預設採用在物聯網平台產生的時間。

code

Integer

資料未通過物模型資料校正時,返回的錯誤碼。詳細說明,請參見裝置端接收的錯誤碼

message

String

資料未通過物模型資料校正時,返回的錯誤碼資訊,包含錯誤原因和具體的錯誤參數。

歷史事件上報

Topic:/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/history/post

通過該Topic擷取裝置上報的歷史事件數目據。

資料格式:

{
    "identifier":"BrokenInfo",
    "name":"損壞率上報",
    "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

事件的標識符。

如果是自訂模組事件,事件標識符格式為${模組標識符}:${事件標識符}(中間為半形冒號)。例如,物模型自訂模組標識符為test,資料格式為:

"test:identifier":"BrokenInfo",

name

String

事件的名稱。

type

String

事件類型,事件類型參見產品的TSL描述。

iotId

String

裝置在平台內的唯一標識。

requestId

String

裝置上報訊息的未經處理資料中的Id,String類型的數字,取值範圍為0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

productKey

String

裝置所屬產品的唯一標識。

deviceName

String

裝置名稱。

gmtCreate

Long

資料流轉訊息產生時間。

value

Object

事件的輸出參數資訊。如以上樣本中的兩個參數Power(電源)和Position(位置)的資訊。

{
    "Power":"on",
    "Position":{
        "latitude":39.9,
        "longitude":116.38
    }
}
重要
  • 僅當事件的輸出參數均通過檢驗時,輸出參數均顯示在value中。此時checkFailedData為空白。

  • 當事件的輸出參數有任一參數未通過檢驗時,輸出參數均顯示在checkFailedData中。此時value為空白。

checkFailedData

Object

未通過物模型資料校正的資料資訊。

若事件的輸出參數未通過檢驗,則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類型。資料未通過物模型資料校正時,返回的錯誤碼。詳細說明,請參見裝置端接收的錯誤碼

  • message:String類型。資料未通過物模型資料校正時,返回的錯誤碼資訊,包含錯誤原因和具體的錯誤參數。

time

Long

上報事件的時間,如果裝置沒有上報資料,預設採用物聯網平台產生的時間。

OTA升級狀態通知

Topic:/${productKey}/${deviceName}/ota/upgrade

通過該Topic獲得OTA升級狀態訊息,即裝置OTA升級成功或失敗的訊息。

說明

如果裝置有未完成的升級任務,又對該裝置發起批量升級任務,後發起的升級任務將升級失敗。這種情況下,物聯網平台不流轉升級失敗訊息。

資料格式:

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

裝置ID,裝置的唯一識別碼。

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

裝置升級記錄的唯一識別碼。

OTA升級進度通知

Topic:/${productKey}/${deviceName}/ota/progress/post

通過該Topic獲得OTA升級中進度訊息。

資料格式:

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

裝置ID,裝置的唯一識別碼。

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模組版本號碼變更通知

Topic:/${productKey}/${deviceName}/ota/version/post

通過該Topic獲得裝置上報的OTA模組版本號碼。當裝置上報OTA模組版本號碼,且版本號碼有變更時進行轉寄。

資料格式:

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

參數說明:

參數

類型

說明

iotId

String

裝置ID,裝置的唯一識別碼。

productKey

String

裝置所屬產品的唯一標識。

deviceName

String

裝置名稱。

moduleName

String

模組名稱。

moduleVersion

String

模組版本號碼。

messageCreateTime

Long

訊息產生時間戳記,單位毫秒。

OTA升級批次狀態通知

Topic:/${productKey}/${packageId}/${jobId}/ota/job/status

通過該Topic獲得OTA升級批次狀態變更訊息。

資料格式:

{
    "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:未完成。

    企業執行個體下升級次數不足時,升級批次狀態為未完成。

messageCreateTime

Long

訊息產生時間戳記,單位毫秒。

裝置標籤變更

Topic:/${productKey}/${deviceName}/thing/deviceinfo/update

通過該Topic獲得裝置的標籤變更資訊。

資料格式:

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

裝置ID,裝置的唯一識別碼。

productKey

String

裝置所屬產品的唯一標識。

deviceName

String

裝置名稱。

deletedAttrKeyList

List

刪除標籤key的列表。

僅當actionDELETE時,顯示該參數。

value

List

標籤資料。

attrKey

String

標籤Key。

attrValue

String

標籤Value。

messageCreateTime

Long

訊息產生時間戳記,單位毫秒。

執行個體遷移任務的狀態通知

Topic:/sys/uid/{uid}/distribution/{jobId}/lifecycle

通過該Topic獲得執行個體遷移任務狀態的變更訊息。

其中,${uid}為阿里雲帳號ID,可登入物聯網平台控制台,將滑鼠指標移動到帳號頭像,查看帳號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

裝置在平台內的唯一標識。