當您為產品定義物模型後,裝置需要按照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_METHOD
值thing.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" }
參數說明:
參數 | 類型 | 說明 |
id | String | 訊息ID號。String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
version | String | 協議版本號碼,目前協議版本號碼唯一取值為1.0。 |
sys | Object | 擴充功能的參數,其下包含各功能欄位。 說明 使用裝置端SDK開發時,如果未設定擴充功能,則無此參數,相關功能保持預設配置。 |
ack | Integer | |
method | String | 要求方法。例如: |
params | Object | 請求參數。如以上樣本中,裝置上報了的兩個屬性Power(電源)和WF(工作電流)的資訊。具體屬性資訊,包含屬性上報時間(time)和上報的屬性值(value)。 若僅傳入屬性值,無需上傳欄位time和value,params樣本如下:
如果是自訂模組屬性,屬性標識符格式為
|
time | Long | 屬性上報時間戳記,類型為UTC毫秒級時間。 該參數為可選欄位。根據您的業務情境決定訊息中是否帶時間戳記。如果訊息頻繁,需根據時間戳記判斷訊息順序,建議訊息中帶有時間戳記。
|
value | Object | 上報的屬性值。 若不上傳time,可不上傳value,直接上傳參數值即可。 |
參數 | 類型 | 說明 |
id | String | 訊息ID號,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
code | Integer | 結果狀態代碼。 具體參考裝置端通用code。 說明 物聯網平台會對裝置上報的屬性做校正。通過產品的TSL描述判斷上報的屬性是否符合定義的屬性格式。不合格的屬性會直接被過濾掉,並返回失敗的錯誤碼。 |
data | Object | 請求成功時,返回的資料固定為空白。 |
message | String | 返回結果資訊。請求成功時,返回success。 |
method | String | 響應資料對應的要求方法,與請求參數中method相同。 |
version | String | 協議版本號碼,與請求參數中version相同。 |
錯誤碼說明:物聯網平台可能返回給裝置端的錯誤碼及說明,請參見裝置端接收的錯誤碼。
訊息轉寄說明:裝置上報至平台的屬性資訊,可以通過服務端訂閱、雲產品流轉轉寄到您的伺服器或其他雲產品。具體Topic和資料格式,請參見裝置屬性上報。
設定裝置屬性
通過調用SetDeviceProperty或SetDevicesProperty下發設定屬性指令到裝置。實現設定裝置屬性的原理,請參見Alink協議中設定屬性原理圖。
設定裝置屬性成功,只表示物聯網平台雲端下發屬性佈建要求成功,不保證裝置端執行了該請求。所以裝置端SDK成功響應雲端設定裝置屬性值的請求後,需上報對應屬性值,裝置屬性值才能真正設定成功。裝置上報屬性說明,請參見本文“裝置上報屬性”。
Topic和資料格式(下行):
資料格式(下行) | 請求和響應Topic |
透傳/自訂 |
|
Alink JSON |
|
請求資料格式:
{
"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" }
參數說明:
參數 | 類型 | 說明 |
id | String | 訊息ID號,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
version | String | 協議版本號碼,目前協議版本號碼唯一取值為1.0。 |
params | Object | 屬性設定參數。如以上樣本中,設定屬性: 如果是自訂模組屬性,屬性標識符格式為 |
method | String | 要求方法。例如: |
參數 | 類型 | 說明 |
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
參數說明:
參數 | 類型 | 說明 |
id | String | 訊息ID號。String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
version | String | 協議版本號碼,目前協議版本號碼唯一取值為1.0。 |
sys | Object | 擴充功能的參數,其下包含各功能欄位。 說明 使用裝置端SDK開發時,如果未設定擴充功能,則無此參數,相關功能保持預設配置。 |
ack | Integer | |
method | String | 要求方法。
說明
|
params | Object | 上報事件的輸出參數。 |
value | Object | 事件的輸出參數資訊。如以上樣本中的兩個參數Power(電源)和WF(工作電流)的資訊。
|
time | Long | 事件上報的時間戳記,類型為UTC毫秒級時間。 該參數為可選欄位。根據您的業務情境決定訊息中是否帶時間戳記。如果訊息頻繁,需根據時間戳記判斷訊息順序,建議訊息中帶有時間戳記。
|
參數 | 類型 | 說明 |
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協議中服務調用原理圖。
同步方式:通過InvokeThingService或InvokeThingsService介面調用服務,物聯網平台直接使用RRPC同步方式下行推送請求。此時,服務選擇為同步調用方式,物聯網平台訂閱RRPC對應Topic。裝置RRPC的整合方式,請參見什麼是RRPC。
非同步方式:通過InvokeThingService或InvokeThingsService介面調用服務,物聯網平台採用非同步方式下行推送請求,裝置也採用非同步方式返回結果。此時,服務選擇為非同步呼叫方式,物聯網平台訂閱此處的非同步響應Topic。
Topic和資料格式(下行):
資料格式(下行) | 請求和響應Topic |
透傳/自訂 |
|
Alink JSON |
|
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" }
參數說明:
參數 | 類型 | 說明 |
id | String | 訊息ID號,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
version | String | 協議版本號碼,目前協議版本號碼唯一取值為1.0。 |
params | Object | 服務調用參數。包含服務識別符和服務的值。如以上樣本中的兩個參數Power(電源)和WF(工作電流)。
|
method | String | 要求方法。
說明
|
參數 | 類型 | 說明 |
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" }
若請求失敗,返回
{}
。
參數說明:
參數 | 類型 | 說明 |
id | String | 訊息ID號。String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
version | String | 協議版本號碼,目前協議版本號碼唯一取值為1.0。 |
sys | Object | 擴充功能的參數,其下包含各功能欄位。 說明 使用裝置端SDK開發時,如果未設定擴充功能,則無此參數,相關功能保持預設配置。 |
ack | Integer | |
params | Object | 請求參數。 |
properties | Object | 屬性,包含屬性標識符、屬性值value和屬性產生的時間time。 其中,time參數為可選欄位。根據您的業務情境決定訊息中是否帶時間戳記。如果訊息頻繁,需根據時間戳記判斷訊息順序,建議訊息中帶有時間戳記。 如以上樣本中,裝置上報了的兩個屬性Power(電源)和WF(工作電流)的資訊。 如果是自訂模組屬性,屬性標識符格式為
|
events | Object | 事件,包含事件標識符、事件輸出參數value和事件產生的時間time。 其中,time參數為可選欄位。根據您的業務情境決定訊息中是否帶時間戳記。如果訊息頻繁,需根據時間戳記判斷訊息順序,建議訊息中帶有時間戳記。 如以上樣本中,上報了兩個事件alarmEvent1(警示事件1)和alarmEvent2(警示事件2),及對應事件參數param1和param2的資訊。 如果是自訂模組事件,事件標識符格式為
|
subDevices | Object | 子裝置資訊。 |
productKey | String | 子裝置產品的Productkey。 |
deviceName | String | 子裝置名稱。 |
method | String | 請求參數。取值: |
參數 | 類型 | 說明 |
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" }
參數說明:
參數 | 類型 | 說明 |
id | String | 訊息ID號。String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
version | String | 協議版本號碼,目前協議版本號碼唯一取值為1.0。 |
sys | Object | 擴充功能的參數,其下包含各功能欄位。 說明 使用裝置端SDK開發時,如果未設定擴充功能,則無此參數,相關功能保持預設配置。 |
ack | Integer | |
method | String | 要求方法。取固定值: |
params | Object | 請求參數。 |
identity | String | 資料所屬裝置的身份認證資訊,包含參數productKey和deviceName。 說明 直連裝置僅能上報自己的物模型歷史資料。網關裝置可以上報其子裝置的物模型歷史資料。網關上報子裝置歷史資料時,identity為子裝置的資訊。 |
properties | Object | 屬性,包含屬性標識符、屬性值value和屬性產生的時間time。 如以上樣本中,裝置上報了的兩個屬性Power(電源)和WF(工作電流)的歷史資訊。 如果是自訂模組屬性,屬性標識符格式為
|
events | Object | 事件,包含事件標識符、事件輸出參數value和事件產生的時間time。 如以上樣本中,上報了事件alarmEvent(警示事件)及對應事件參數Power(電源)和WF(工作電流)的歷史資訊。 如果是自訂模組事件,事件標識符格式為
|
參數 | 類型 | 說明 |
id | String | 訊息ID號,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
code | Integer | 結果狀態代碼,具體參考裝置端通用code。 |
data | Object | 請求成功時,返回的資料固定為空白。 |
message | String | 返回結果資訊。請求成功時,返回success。 |
method | String | 響應資料對應的要求方法,與請求參數中method相同。 |
version | String | 協議版本號碼,與請求參數中version相同。 |
錯誤碼說明:物聯網平台可能返回給裝置端的錯誤碼及說明,請參見裝置端接收的錯誤碼。
裝置批量上報屬性、事件
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" }
參數說明:
參數 | 類型 | 說明 |
id | String | 訊息ID號。String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
version | String | 協議版本號碼,目前協議版本號碼唯一取值為1.0。 |
sys | Object | 擴充功能的參數,其下包含各功能欄位。 說明 使用裝置端SDK開發時,如果未設定擴充功能,則無此參數,相關功能保持預設配置。 |
ack | Integer | |
method | String | 要求方法。取固定值: |
params | Object | 請求參數。 |
properties | Object | 屬性,包含屬性標識符、屬性值value和屬性產生的時間time。 如以上樣本中,裝置上報了的兩個屬性Power(電源)和WF(工作電流)的批量資訊。 如果是自訂模組屬性,屬性標識符格式為
|
events | Object | 事件,包含事件標識符、事件輸出參數value和事件產生的時間time。 如以上樣本中,上報了事件alarmEvent(警示事件)及對應事件參數Power(電源)和WF(工作電流)的批量資訊。 如果是自訂模組事件,事件標識符格式為
|
參數 | 類型 | 說明 |
id | String | 訊息ID號,String類型的數字,取值範圍0~4294967295,且每個訊息ID在當前裝置中具有唯一性。 |
code | Integer | 結果狀態代碼,具體參考裝置端通用code。 |
data | Object | 請求成功時,返回的資料固定為空白。 |
message | String | 返回結果資訊。請求成功時,返回success。 |
method | String | 響應資料對應的要求方法,與請求參數中method相同。 |
version | String | 協議版本號碼,與請求參數中version相同。 |
錯誤碼說明:物聯網平台可能返回給裝置端的錯誤碼及說明,請參見裝置端接收的錯誤碼。
訊息轉寄說明:裝置批量上報至平台的物模型資料,可以通過服務端訂閱轉寄到您的伺服器。屬性和事件數目據分為兩條訊息進行轉寄,具體Topic和資料格式,請參見裝置屬性批量上報、裝置事件批量上報。