全部產品
Search
文件中心

IoT Platform:裝置屬性、事件、服務

更新時間:Jun 30, 2024

當您為產品定義物模型後,裝置需要按照Alink JSON格式上報屬性事件,如果使用其他格式需要通過訊息解析功能轉化,服務端設定屬性調用服務同樣要滿足Alink JSON格式。本文為您介紹物模型資料的Alink JSON格式和Topic。

背景資訊

物模型(屬性、事件、服務)資料格式,請參見什麼是物模型

裝置的資料上報方式有兩種:ICA標準資料格式(Alink JSON)和透傳/自訂。兩者二選一,推薦您使用Alink JSON方式。

  • ICA標準資料格式(Alink JSON):裝置按照物聯網平台定義的標準資料格式產生資料,然後上報資料。具體格式,請參見本文樣本。

  • 透傳/自訂:裝置上報未經處理資料如位元據流,阿里雲物聯網平台會運行您在控制台提交的訊息解析指令碼,將未經處理資料轉成標準資料格式後,再進行業務處理。而雲端返回的是標準Alink JSON格式,返回結果經資料解析後,再推送給裝置。物模型資料透傳

重要
  • 物模型功能定義資料類型為float或double時,對應參數值(即使值為整數)至少攜帶一位小數位。例如10.0、11.1。

  • 裝置上報物模型屬性和事件數目據時,僅支援上報未來24小時內的資料。若上報的time超過該時間範圍,上報會失敗。

  • 裝置上、下行通訊中的訊息ID(id)在當前裝置中具有唯一性,且在每天內的訊息中保證唯一即可。

    物聯網平台雲端下行訊息中id用於非同步下行訊息匹配裝置端的返迴響應,由物聯網平台系統保證每天的唯一性。裝置端上行訊息中id需由裝置端自行保證每天的唯一性。

裝置上報屬性

實現裝置上報屬性的原理,請參見Alink協議中裝置上報屬性原理圖

Topic和資料格式(上行):

  • 透傳/自訂

    Topic

    資料格式

    請求Topic:/sys/${productKey}/${deviceName}/thing/model/up_raw

    請求資料是裝置上報的原始報文。

    說明
    • 通過MQTT協議透傳的資料為16進位格式。

    • 透傳的上報資料中,必須包含要求方法method參數,取值需與資料解析指令碼中定義的對應要求方法一致。例如JavaScript指令碼樣本中裝置上傳屬性資料到雲端的ALINK_PROP_REPORT_METHODthing.event.property.post

    樣本如下:

    0x00002233441232013fa00000

    響應Topic:/sys/${productKey}/${deviceName}/thing/model/up_raw_reply

    雲端返回資料格式如下:

    • 成功返回樣本

      {
          "code": 200,
          "data": {},
          "id": "123",
          "message": "success",
          "version": "1.0"
      }
    • 失敗返回樣本

      {
          "code": 6813,
          "data": {},
          "id": "123",
          "message": "topic illegal",
          "version": "1.0"
      }
  • Alink JSON

    Topic

    資料格式

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

    請求資料格式:

    {
        "id": "123",
        "version": "1.0",
        "sys":{
            "ack":0
        },
        "params": {
            "Power": {
                "value": "on",
                "time": 1524448722000
            },
            "WF": {
                "value": 23.6,
                "time": 1524448722000
            }
        },
        "method": "thing.event.property.post"
    }

    響應Topic:/sys/${productKey}/${deviceName}/thing/event/property/post_reply

    雲端返回資料格式如下:

    • 成功返回樣本

      {
          "code": 200,
          "data": {},
          "id": "123",
          "message": "success",
          "method": "thing.event.property.post",
          "version": "1.0"
      }
    • 失敗返回樣本

      {
          "code": 6813,
          "data": {},
          "id": "123",
          "message": "The format of result is error!",
          "method": "thing.event.property.post",
          "version": "1.0"
      }

參數說明:

表 1. 請求參數說明

參數

類型

說明

id

String

訊息ID號。String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

version

String

協議版本號碼,目前協議版本號碼唯一取值為1.0。

sys

Object

擴充功能的參數,其下包含各功能欄位。

說明

使用裝置端SDK開發時,如果未設定擴充功能,則無此參數,相關功能保持預設配置。

ack

Integer

sys下的擴充功能欄位,表示是否返迴響應資料。

  • 1:雲端返迴響應資料。

  • 0:雲端不返迴響應資料。

重要

該功能配置說明,請參見物模型使用樣本

如果未配置該功能,則無此參數,雲端預設返迴響應資料。

method

String

要求方法。例如:thing.event.property.post

params

Object

請求參數。如以上樣本中,裝置上報了的兩個屬性Power(電源)和WF(工作電流)的資訊。具體屬性資訊,包含屬性上報時間(time)和上報的屬性值(value)。

若僅傳入屬性值,無需上傳欄位timevalueparams樣本如下:

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

如果是自訂模組屬性,屬性標識符格式為${模組標識符}:${屬性標識符}(中間為英文冒號)。例如:

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

time

Long

屬性上報時間戳記,類型為UTC毫秒級時間。

該參數為可選欄位。根據您的業務情境決定訊息中是否帶時間戳記。如果訊息頻繁,需根據時間戳記判斷訊息順序,建議訊息中帶有時間戳記。

  • 若上傳time,物聯網平台的雲端儲存上傳的時間作為屬性上報時間。

  • 若不上傳time,物聯網平台的雲端自動產生屬性上報時間並儲存。

value

Object

上報的屬性值。

若不上傳time,可不上傳value,直接上傳參數值即可。

表 2. 響應參數說明

參數

類型

說明

id

String

訊息ID號,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

code

Integer

結果狀態代碼。 具體參考裝置端通用code

說明

物聯網平台會對裝置上報的屬性做校正。通過產品的TSL描述判斷上報的屬性是否符合定義的屬性格式。不合格的屬性會直接被過濾掉,並返回失敗的錯誤碼。

data

Object

請求成功時,返回的資料固定為空白。

message

String

返回結果資訊。請求成功時,返回success。

method

String

響應資料對應的要求方法,與請求參數中method相同。

version

String

協議版本號碼,與請求參數中version相同。

錯誤碼說明:物聯網平台可能返回給裝置端的錯誤碼及說明,請參見裝置端接收的錯誤碼

訊息轉寄說明:裝置上報至平台的屬性資訊,可以通過服務端訂閱雲產品流轉轉寄到您的伺服器或其他雲產品。具體Topic和資料格式,請參見裝置屬性上報

設定裝置屬性

通過調用SetDevicePropertySetDevicesProperty下發設定屬性指令到裝置。實現設定裝置屬性的原理,請參見Alink協議中設定屬性原理圖

重要

設定裝置屬性成功,只表示物聯網平台雲端下發屬性佈建要求成功,不保證裝置端執行了該請求。所以裝置端SDK成功響應雲端設定裝置屬性值的請求後,需上報對應屬性值,裝置屬性值才能真正設定成功。裝置上報屬性說明,請參見本文“裝置上報屬性”。

Topic和資料格式(下行):

資料格式(下行)

請求和響應Topic

透傳/自訂

  • 請求Topic:/sys/${productKey}/${deviceName}/thing/model/down_raw

  • 響應Topic:/sys/${productKey}/${deviceName}/thing/model/down_raw_reply

Alink JSON

  • 請求Topic:/sys/${productKey}/${deviceName}/thing/service/property/set

  • 響應Topic:/sys/${productKey}/${deviceName}/thing/service/property/set_reply

請求資料格式:

{
    "id": "123",
    "version": "1.0",
    "params": {
        "temperature": "30.5"
    },
    "method": "thing.service.property.set"
}

響應資料格式:

  • 成功返回樣本

    {
        "code": 200,
        "data": {},
        "id": "123",
        "message": "success",
        "version": "1.0"
    }
  • 失敗返回樣本

    {
        "code": 9201,
        "data": {},
        "id": "123",
        "message": "device offLine",
        "version": "1.0"
    }

參數說明:

表 3. 請求參數說明

參數

類型

說明

id

String

訊息ID號,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

version

String

協議版本號碼,目前協議版本號碼唯一取值為1.0。

params

Object

屬性設定參數。如以上樣本中,設定屬性:{ "temperature": "30.5" }

如果是自訂模組屬性,屬性標識符格式為${模組標識符}:${屬性標識符}(中間為英文冒號),例如{ "test:temperature": "30.5" }

method

String

要求方法。例如:thing.service.property.set

表 4. 響應參數說明

參數

類型

說明

id

String

訊息ID號,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

code

Integer

結果狀態代碼,具體參考裝置端通用code

data

Object

請求成功時,返回的資料固定為空白。

message

String

返回結果資訊。請求成功時,返回success。

version

String

協議版本號碼,與請求參數中version相同。

錯誤碼說明:物聯網平台可能返回給裝置端的錯誤碼及說明,請參見裝置端接收的錯誤碼

訊息轉寄說明:屬性設定的結果,可以通過服務端訂閱雲產品流轉轉寄到您的伺服器或其他雲產品。具體Topic和資料格式,請參見裝置下行指令結果

裝置上報事件

實現裝置上報事件的原理,請參見Alink協議中裝置上報事件原理圖

Topic和資料格式(上行):

  • 透傳/自訂

    Topic

    資料格式

    請求Topic:/sys/${productKey}/${deviceName}/thing/model/up_raw

    請求資料是裝置上報的原始報文。

    說明

    透傳的上報資料中,必須包含要求方法method參數,取值需與資料解析指令碼中定義的對應要求方法一致。例如,取值為thing.event.${tsl.event.identifier}.post

    樣本如下:

    0xff0000007b00

    響應Topic:/sys/${productKey}/${deviceName}/thing/model/up_raw_reply

    雲端返回資料格式如下:

    • 成功返回樣本

      {
          "code": 200,
          "data": {},
          "id": "123",
          "message": "success",
          "version": "1.0"
      }
    • 失敗返回樣本

      {
          "code": 6813,
          "data": {},
          "id": "123",
          "message": "topic illegal",
          "version": "1.0"
      }
  • Alink JSON

    物模型模組

    Topic

    資料格式

    預設模組

    • 請求Topic:/sys/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post

    • 響應Topic:/sys/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post_reply

    以預設模組物模型為例,Alink請求資料格式:

    {
        "id": "123",
        "version": "1.0",
        "sys":{
            "ack":0
        },
        "params": {
            "value": {
                "Power": "on",
                "WF": "2"
            },
            "time": 1524448722000
        },
        "method": "thing.event.${tsl.event.identifier}.post"
    }

    Alink響應資料格式:

    {
        "code": 200,
        "data": {},
        "id": "123",
        "message": "success",
        "method": "thing.event.${tsl.event.identifier}.post",
        "version": "1.0"
    }

    若請求失敗,返回{}

    自訂模組

    • 請求Topic:/sys/${productKey}/${deviceName}/thing/event/${tsl.functionBlockId}:${tsl.event.identifier}/post

    • 響應Topic:/sys/${productKey}/${deviceName}/thing/event/${tsl.functionBlockId}:${tsl.event.identifier}/post_reply

參數說明:

表 5. 請求參數說明

參數

類型

說明

id

String

訊息ID號。String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

version

String

協議版本號碼,目前協議版本號碼唯一取值為1.0。

sys

Object

擴充功能的參數,其下包含各功能欄位。

說明

使用裝置端SDK開發時,如果未設定擴充功能,則無此參數,相關功能保持預設配置。

ack

Integer

sys下的擴充功能欄位,表示是否返迴響應資料。

  • 1:雲端返迴響應資料。

  • 0:雲端不返迴響應資料。

重要

該功能配置說明,請參見物模型使用樣本

如果未配置該功能,則無此參數,雲端預設返迴響應資料。

method

String

要求方法。

  • 預設模組

    取值為thing.event.${tsl.event.identifier}.post

  • 自訂模組

    取值為thing.event.${tsl.functionBlockId}:${tsl.event.identifier}.post

說明

${tsl.event.identifier}為物模型中定義的事件標識符,${tsl.functionBlockId}為自訂模組的標識符。更多資訊,請參見單個添加物模型

params

Object

上報事件的輸出參數。

value

Object

事件的輸出參數資訊。如以上樣本中的兩個參數Power(電源)和WF(工作電流)的資訊。

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

time

Long

事件上報的時間戳記,類型為UTC毫秒級時間。

該參數為可選欄位。根據您的業務情境決定訊息中是否帶時間戳記。如果訊息頻繁,需根據時間戳記判斷訊息順序,建議訊息中帶有時間戳記。

  • 若上傳time,物聯網平台的雲端儲存上傳的時間作為事件上報時間。

  • 若不上傳time,物聯網平台的雲端自動建置事件上報時間並儲存。

表 6. 響應參數說明

參數

類型

說明

id

String

訊息ID號,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

code

Integer

結果狀態代碼,具體參考裝置端通用code

說明

物聯網平台會對裝置上報的事件做校正。通過產品的TSL描述判斷上報的事件是否符合定義的事件格式。不合格的事件會直接被過濾掉,並返回失敗的錯誤碼。

data

Object

請求成功時,返回的資料固定為空白。

message

String

返回結果資訊。請求成功時,返回success。

method

String

響應資料對應的要求方法,與請求參數中method相同。

version

String

協議版本號碼,與請求參數中version相同。

Alink格式樣本:假設產品中定義了一個alarm事件,它的TSL描述如下。參數說明,請參見什麼是物模型

{
    "schema": "https://iot-tsl.oss-cn-shanghai.aliyuncs.com/schema.json",
    "link": "/sys/${productKey}/airCondition/thing/",
    "profile": {
        "productKey": "${productKey}",
        "deviceName": "airCondition"
    },
    "events": [
        {
            "identifier": "alarm",
            "name": "alarm",
            "desc": "風扇警報",
            "type": "alert",
            "required": true,
            "outputData": [
                {
                    "identifier": "errorCode",
                    "name": "錯誤碼",
                    "dataType": {
                        "type": "text",
                        "specs": {
                            "length": "255"
                        }
                    }
                }
            ],
            "method": "thing.event.alarm.post"
        }
    ]
}

當裝置上報事件時,Alink請求資料格式:

{
    "id": "123",
    "version": "1.0",
    "params": {
        "value": {
            "errorCode": "error"
        },
        "time": 1524448722000
    },
    "method": "thing.event.alarm.post"
}

錯誤碼說明:物聯網平台可能返回給裝置端的錯誤碼及說明,請參見裝置端接收的錯誤碼

訊息轉寄說明:裝置上報至平台的事件資訊,可以通過服務端訂閱雲產品流轉轉寄到您的伺服器或其他雲產品。具體Topic和資料格式,請參見裝置上報事件

裝置服務調用(非同步呼叫)

物聯網平台支援同步調用和非同步呼叫。物模型定義服務時,需設定此項。實現裝置服務調用的原理,請參見Alink協議中服務調用原理圖

  • 同步方式:通過InvokeThingServiceInvokeThingsService介面調用服務,物聯網平台直接使用RRPC同步方式下行推送請求。此時,服務選擇為同步調用方式,物聯網平台訂閱RRPC對應Topic。裝置RRPC的整合方式,請參見什麼是RRPC

  • 非同步方式:通過InvokeThingServiceInvokeThingsService介面調用服務,物聯網平台採用非同步方式下行推送請求,裝置也採用非同步方式返回結果。此時,服務選擇為非同步呼叫方式,物聯網平台訂閱此處的非同步響應Topic。

Topic和資料格式(下行):

資料格式(下行)

請求和響應Topic

透傳/自訂

  • 請求Topic:/sys/${productKey}/${deviceName}/thing/model/down_raw

  • 響應Topic:/sys/${productKey}/${deviceName}/thing/model/down_raw_reply

Alink JSON

  • 預設模組

    • 請求Topic:/sys/${productKey}/${deviceName}/thing/service/${tsl.service.identifier}

    • 響應Topic:/sys/${productKey}/${deviceName}/thing/service/${tsl.service.identifier}_reply

  • 自訂模組

    • 請求Topic:/sys/${productKey}/${deviceName}/thing/service/${tsl.functionBlockId}:${tsl.service.identifier}

    • 響應Topic:/sys/${productKey}/${deviceName}/thing/service/${tsl.functionBlockId}:${tsl.service.identifier}_reply

Alink請求資料格式:

{
    "id": "123",
    "version": "1.0",
    "params": {
        "Power": "on",
        "WF": "2"
    },
    "method": "thing.service.${tsl.service.identifier}"
}

響應資料格式:

  • 成功返回樣本:

    {
        "code": 200,
        "data": {},
        "id": "123",
        "message": "success",
        "version": "1.0"
    }
  • 失敗返回樣本:

    {
        "code": 9201,
        "data": {},
        "id": "123",
        "message": "device offLine",
        "version": "1.0"
    }

參數說明:

表 7. 請求參數說明

參數

類型

說明

id

String

訊息ID號,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

version

String

協議版本號碼,目前協議版本號碼唯一取值為1.0。

params

Object

服務調用參數。包含服務識別符和服務的值。如以上樣本中的兩個參數Power(電源)和WF(工作電流)。

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

method

String

要求方法。

  • 預設模組

    取值為thing.service.${tsl.service.identifier}

  • 自訂模組

    取值為thing.service.${tsl.functionBlockId}:${tsl.service.identifier}

說明

${tsl.service.identifier}為物模型中定義的服務識別符,${tsl.functionBlockId}為自訂模組的標識符。更多資訊,請參見單個添加物模型

表 8. 返回參數說明

參數

類型

說明

id

String

訊息ID號,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

code

Integer

結果狀態代碼,具體參考裝置端通用code

data

Object

返回的結果資訊。

data參數的值和物模型定義相關。如果服務沒有返回結果,則data的值為空白。如果服務有返回結果,則返回的資料會嚴格遵循服務的定義。

message

String

返回結果資訊。請求成功時,返回success。

version

String

協議版本號碼,與請求參數中version相同。

Alink格式樣本:例如產品中定義了服務SetWeight,它的TSL描述如下:

{
    "schema": "https://iotx-tsl.oss-ap-southeast-1.aliyuncs.com/schema.json",
    "profile": {
        "productKey": "testProduct01"
    },
    "services": [
        {
            "outputData": [
                {
                    "identifier": "OldWeight",
                    "dataType": {
                        "specs": {
                            "unit": "kg",
                            "min": "0",
                            "max": "200",
                            "step": "1"
                        },
                        "type": "double"
                    },
                    "name": "OldWeight"
                },
                {
                    "identifier": "CollectTime",
                    "dataType": {
                        "specs": {
                            "length": "2048"
                        },
                        "type": "text"
                    },
                    "name": "CollectTime"
                }
            ],
            "identifier": "SetWeight",
            "inputData": [
                {
                    "identifier": "NewWeight",
                    "dataType": {
                        "specs": {
                            "unit": "kg",
                            "min": "0",
                            "max": "200",
                            "step": "1"
                        },
                        "type": "double"
                    },
                    "name": "NewWeight"
                }
            ],
            "method": "thing.service.SetWeight",
            "name": "設定重量",
            "required": false,
            "callType": "async"
        }
    ]
}

當調用服務時,Alink請求資料格式:

{
    "method": "thing.service.SetWeight",
    "id": "105917531",
    "params": {
        "NewWeight": 100.8
    },
    "version": "1.0"
}

Alink響應資料格式:

{
    "id": "105917531",
    "code": 200,
    "data": {
        "CollectTime": "1536228947682",
        "OldWeight": 100.101
    }
    "message": "success",
    "version": "1.0"
}

錯誤碼說明:物聯網平台可能返回給裝置端的錯誤碼及說明,請參見裝置端接收的錯誤碼

訊息轉寄說明:非同步呼叫的結果,可以通過服務端訂閱雲產品流轉轉寄到您的伺服器或其他雲產品。對應Topic和資料格式,請參見裝置下行指令結果

網關批量上報資料

網關類型的裝置可以批量上報屬性和事件,也可以代其子裝置批量上報屬性和事件。

說明
  • 一次最多可上報200個屬性,20個事件。

  • 一次最多可為20個子裝置上報資料。

Topic和資料格式(上行):

  • 透傳/自訂

    Topic

    資料格式

    請求Topic:/sys/${productKey}/${deviceName}/thing/model/up_raw

    請求資料是裝置上報的原始報文。

    說明

    透傳的上報資料中,必須包含要求方法method參數,取值需與資料解析指令碼中定義的對應要求方法一致。例如,取值為thing.event.property.pack.post

    樣本如下:

    0xff0000007b00

    響應Topic:/sys/${productKey}/${deviceName}/thing/model/up_raw_reply

    雲端返回資料格式如下:

    • 成功返回樣本

      {
          "code": 200,
          "data": {},
          "id": "123",
          "message": "success",
          "version": "1.0"
      }
    • 失敗返回樣本

      {
          "code": 6813,
          "data": {},
          "id": "123",
          "message": "topic illegal",
          "version": "1.0"
      }
  • Alink JSON

    請求和響應Topic

    請求和響應資料

    請求Topic:/sys/${productKey}/${deviceName}/thing/event/property/pack/post

    Alink請求資料格式:

    {
        "id": "123",
        "version": "1.0",
        "sys":{
            "ack":0
        },
        "params": {
            "properties": {
                "Power": {
                    "value": "on",
                    "time": 1524448722000
                },
                "WF": {
                    "value": { },
                    "time": 1524448722000
                }
            },
            "events": {
                "alarmEvent1": {
                    "value": {
                        "param1": "on",
                        "param2": "2"
                    },
                    "time": 1524448722000
                },
                "alertEvent2": {
                    "value": {
                        "param1": "on",
                        "param2": "2"
                    },
                    "time": 1524448722000
                }
            },
            "subDevices": [
                {
                    "identity": {
                        "productKey": "",
                        "deviceName": ""
                    },
                    "properties": {
                        "Power": {
                            "value": "on",
                            "time": 1524448722000
                        },
                        "WF": {
                            "value": { },
                            "time": 1524448722000
                        }
                    },
                    "events": {
                        "alarmEvent1": {
                            "value": {
                                "param1": "on",
                                "param2": "2"
                            },
                            "time": 1524448722000
                        },
                        "alertEvent2": {
                            "value": {
                                "param1": "on",
                                "param2": "2"
                            },
                            "time": 1524448722000
                        }
                    }
                }
            ]
        },
        "method": "thing.event.property.pack.post"
    }

    響應Topic:/sys/${productKey}/${deviceName}/thing/event/property/pack/post_reply

    Alink響應資料格式:

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

    若請求失敗,返回{}

參數說明:

表 9. 請求參數說明

參數

類型

說明

id

String

訊息ID號。String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

version

String

協議版本號碼,目前協議版本號碼唯一取值為1.0。

sys

Object

擴充功能的參數,其下包含各功能欄位。

說明

使用裝置端SDK開發時,如果未設定擴充功能,則無此參數,相關功能保持預設配置。

ack

Integer

sys下的擴充功能欄位,表示是否返迴響應資料。

  • 1:雲端返迴響應資料。

  • 0:雲端不返迴響應資料。

重要

該功能配置說明,請參見物模型使用樣本

如果未配置該功能,則無此參數,雲端預設返迴響應資料。

params

Object

請求參數。

properties

Object

屬性,包含屬性標識符、屬性值value和屬性產生的時間time

其中,time參數為可選欄位。根據您的業務情境決定訊息中是否帶時間戳記。如果訊息頻繁,需根據時間戳記判斷訊息順序,建議訊息中帶有時間戳記。

如以上樣本中,裝置上報了的兩個屬性Power(電源)和WF(工作電流)的資訊。

如果是自訂模組屬性,屬性標識符格式為${模組標識符}:${屬性標識符}(中間為英文冒號)。例如:

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

events

Object

事件,包含事件標識符、事件輸出參數value和事件產生的時間time

其中,time參數為可選欄位。根據您的業務情境決定訊息中是否帶時間戳記。如果訊息頻繁,需根據時間戳記判斷訊息順序,建議訊息中帶有時間戳記。

如以上樣本中,上報了兩個事件alarmEvent1(警示事件1)和alarmEvent2(警示事件2),及對應事件參數param1和param2的資訊。

如果是自訂模組事件,事件標識符格式為${模組標識符}:${事件標識符}(中間為英文冒號)。例如:

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

subDevices

Object

子裝置資訊。

productKey

String

子裝置產品的Productkey。

deviceName

String

子裝置名稱。

method

String

請求參數。取值:thing.event.property.pack.post

表 10. 響應參數說明

參數

類型

說明

id

String

訊息ID,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

code

Integer

返回結果,200代表成功。

說明

系統會校正裝置、拓撲關係、及上報的屬性和事件都否符合產品物模型(TSL)中的定義。如果其中任何一項校正不通過,則上報資料失敗。

data

Object

請求成功時,返回的資料固定為空白。

message

String

返回結果資訊。請求成功時,返回success。

method

String

響應資料對應的要求方法,與請求參數中method相同。

version

String

協議版本號碼,與請求參數中version相同。

錯誤碼說明:物聯網平台可能返回給裝置端的錯誤碼及說明,請參見裝置端接收的錯誤碼

訊息轉寄說明:網關批量上報至平台的物模型資料,可以通過服務端訂閱雲產品流轉轉寄到您的伺服器或其他雲產品。網關批量上報資料的訊息轉寄會將子裝置和網關裝置的訊息分別分為單個屬性或事件訊息進行轉寄,具體Topic和資料格式,請參見裝置屬性上報裝置事件上報

物模型歷史資料上報

Topic和資料格式(上行):

  • 請求Topic:/sys/${productKey}/${deviceName}/thing/event/property/history/post

  • 響應Topic:/sys/${productKey}/${deviceName}/thing/event/property/history/post_reply

Alink請求資料格式:

{
    "id": "123", 
    "version": "1.0",
    "sys":{
        "ack":0
    }, 
    "method": "thing.event.property.history.post", 
    "params": [
        {
            "identity": {
                "productKey": "", 
                "deviceName": ""
            }, 
            "properties": [
                {
                    "Power": {
                        "value": "on", 
                        "time": 1524448722000
                    }, 
                    "WF": {
                        "value": "3", 
                        "time": 1524448722000
                    }
                }, 
                {
                    "Power": {
                        "value": "on", 
                        "time": 1524448722000
                    }, 
                    "WF": {
                        "value": "3", 
                        "time": 1524448722000
                    }
                }
            ], 
            "events": [
                {
                    "alarmEvent": {
                        "value": {
                            "Power": "on", 
                            "WF": "2"
                        }, 
                        "time": 1524448722000
                    }, 
                    "alertEvent": {
                        "value": {
                            "Power": "off", 
                            "WF": "3"
                        }, 
                        "time": 1524448722000
                    }
                }
            ]
        }, 
        {
            "identity": {
                "productKey": "", 
                "deviceName": ""
            }, 
            "properties": [
                {
                    "Power": {
                        "value": "on", 
                        "time": 1524448722000
                    }, 
                    "WF": {
                        "value": "3", 
                        "time": 1524448722000
                    }
                }
            ], 
            "events": [
                {
                    "alarmEvent": {
                        "value": {
                            "Power": "on", 
                            "WF": "2"
                        }, 
                        "time": 1524448722000
                    }, 
                    "alertEvent": {
                        "value": {
                            "Power": "off", 
                            "WF": "3"
                        }, 
                        "time": 1524448722000
                    }
                }
            ]
        }
    ]
}

Alink響應資料格式:

  • 成功返回樣本

    {
        "code": 200,
        "data": {},
        "id": "123",
        "message": "success",
        "method": "thing.event.property.history.post",
        "version": "1.0"
    }
  • 失敗返回樣本

    {
        "code": 5092,
        "data": {},
        "id": "123",
        "message": "property not found",
        "method": "thing.event.property.history.post",
        "version": "1.0"
    }

參數說明:

表 11. 請求參數說明

參數

類型

說明

id

String

訊息ID號。String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

version

String

協議版本號碼,目前協議版本號碼唯一取值為1.0。

sys

Object

擴充功能的參數,其下包含各功能欄位。

說明

使用裝置端SDK開發時,如果未設定擴充功能,則無此參數,相關功能保持預設配置。

ack

Integer

sys下的擴充功能欄位,表示是否返迴響應資料。

  • 1:雲端返迴響應資料。

  • 0:雲端不返迴響應資料。

重要

該功能配置說明,請參見物模型使用樣本

如果未配置該功能,則無此參數,雲端預設返迴響應資料。

method

String

要求方法。取固定值:thing.event.property.history.post

params

Object

請求參數。

identity

String

資料所屬裝置的身份認證資訊,包含參數productKeydeviceName

說明

直連裝置僅能上報自己的物模型歷史資料。網關裝置可以上報其子裝置的物模型歷史資料。網關上報子裝置歷史資料時,identity為子裝置的資訊。

properties

Object

屬性,包含屬性標識符、屬性值value和屬性產生的時間time

如以上樣本中,裝置上報了的兩個屬性Power(電源)和WF(工作電流)的歷史資訊。

如果是自訂模組屬性,屬性標識符格式為${模組標識符}:${屬性標識符}(中間為英文冒號)。例如:

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

events

Object

事件,包含事件標識符、事件輸出參數value和事件產生的時間time

如以上樣本中,上報了事件alarmEvent(警示事件)及對應事件參數Power(電源)和WF(工作電流)的歷史資訊。

如果是自訂模組事件,事件標識符格式為${模組標識符}:${事件標識符}(中間為英文冒號)。例如:

"test:alarmEvent": {
    "value": {
        "Power": "on", 
        "WF": "2"
    }, 
    "time": 1524448722000
}
表 12. 響應參數說明

參數

類型

說明

id

String

訊息ID號,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

code

Integer

結果狀態代碼,具體參考裝置端通用code

data

Object

請求成功時,返回的資料固定為空白。

message

String

返回結果資訊。請求成功時,返回success。

method

String

響應資料對應的要求方法,與請求參數中method相同。

version

String

協議版本號碼,與請求參數中version相同。

錯誤碼說明:物聯網平台可能返回給裝置端的錯誤碼及說明,請參見裝置端接收的錯誤碼

訊息轉寄說明:裝置上報至平台的物模型歷史資料,可以通過服務端訂閱雲產品流轉轉寄到您的伺服器或其他雲產品。具體Topic和資料格式,請參見歷史屬性上報歷史事件上報

重要

轉寄裝置上報的物模型歷史資料時,會根據上報的propertiesevents下屬性、事件個數構建對應數量訊息,分別轉寄每個屬性或事件的歷史資料。

裝置批量上報屬性、事件

Topic和資料格式(上行):

  • 請求Topic:/sys/${productKey}/${deviceName}/thing/event/property/batch/post

  • 響應Topic:/sys/${productKey}/${deviceName}/thing/event/property/batch/post_reply

Alink請求資料格式:

{
    "id": "123", 
    "version": "1.0",
    "sys":{
        "ack":0
    }, 
    "method": "thing.event.property.batch.post", 
    "params": {
        "properties": {
            "Power": [
                {
                    "value": "on", 
                    "time": 1524448722000
                },
                {
                    "value": "off", 
                    "time": 1524448722001
                }
            ], 
            "WF": [
                {
                    "value": 3, 
                    "time": 1524448722000
                },
                {
                    "value": 4, 
                    "time": 1524448722009
                }
            ]
        }, 
        "events": {
            "alarmEvent": [
                {
                    "value": {
                        "Power": "on", 
                        "WF": "2"
                    }, 
                    "time": 1524448722000
                },
                {
                    "value": {
                        "Power": "on", 
                        "WF": "2"
                    }, 
                    "time": 1524448722000
                }
            ]
        }
    }
}

Alink響應資料格式:

  • 成功返回樣本:

    {
        "code": 200,
        "data": {},
        "id": "123",
        "message": "success",
        "method": "thing.event.property.batch.post",
        "version": "1.0"
    }
  • 失敗返回樣本:

    {
        "code": 9201,
        "data": {},
        "id": "123",
        "message": "device offLine",
        "method": "thing.event.property.batch.post",
        "version": "1.0"
    }

參數說明:

表 13. 請求參數說明

參數

類型

說明

id

String

訊息ID號。String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

version

String

協議版本號碼,目前協議版本號碼唯一取值為1.0。

sys

Object

擴充功能的參數,其下包含各功能欄位。

說明

使用裝置端SDK開發時,如果未設定擴充功能,則無此參數,相關功能保持預設配置。

ack

Integer

sys下的擴充功能欄位,表示是否返迴響應資料。

  • 1:雲端返迴響應資料。

  • 0:雲端不返迴響應資料。

重要

該功能配置說明,請參見物模型使用樣本

如果未配置該功能,則無此參數,雲端預設返迴響應資料。

method

String

要求方法。取固定值:thing.event.property.batch.post

params

Object

請求參數。

properties

Object

屬性,包含屬性標識符、屬性值value和屬性產生的時間time

如以上樣本中,裝置上報了的兩個屬性Power(電源)和WF(工作電流)的批量資訊。

如果是自訂模組屬性,屬性標識符格式為${模組標識符}:${屬性標識符}(中間為英文冒號)。例如:

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

events

Object

事件,包含事件標識符、事件輸出參數value和事件產生的時間time

如以上樣本中,上報了事件alarmEvent(警示事件)及對應事件參數Power(電源)和WF(工作電流)的批量資訊。

如果是自訂模組事件,事件標識符格式為${模組標識符}:${事件標識符}(中間為英文冒號)。例如:

"test:alarmEvent": {
    "value": {
        "Power": "on", 
        "WF": "2"
    }, 
    "time": 1524448722000
}
表 14. 響應參數說明

參數

類型

說明

id

String

訊息ID號,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。

code

Integer

結果狀態代碼,具體參考裝置端通用code

data

Object

請求成功時,返回的資料固定為空白。

message

String

返回結果資訊。請求成功時,返回success。

method

String

響應資料對應的要求方法,與請求參數中method相同。

version

String

協議版本號碼,與請求參數中version相同。

錯誤碼說明:物聯網平台可能返回給裝置端的錯誤碼及說明,請參見裝置端接收的錯誤碼

訊息轉寄說明:裝置批量上報至平台的物模型資料,可以通過服務端訂閱轉寄到您的伺服器。屬性和事件數目據分為兩條訊息進行轉寄,具體Topic和資料格式,請參見裝置屬性批量上報裝置事件批量上報

相關文檔

物模型的屬性上報、歷史資料上報、批量屬性上報有什麼區別