设备属性、事件、服务
2025/11/9大约 7 分钟
设备属性、事件、服务
物模型属性上报
请求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 | sys下的扩展功能字段,表示是否返回响应数据。1:云端返回响应数据。0:云端不返回响应数据。 |
| method | String | 请求方法。例如:thing.event.property.post。 |
| params | Object | 见下方params说明 |
| time | Long | 属性上报时间戳,类型为UTC毫秒级时间。该参数为可选字段。根据您的业务场景决定消息中是否带时间戳。如果消息频繁,需根据时间戳判断消息顺序,建议消息中带有时间戳。若上传time,物联网平台的云端保存上传的时间作为属性上报时间。若不上传time,物联网平台的云端自动生成属性上报时间并保存。 |
| value | Object | 上报的属性值。若不上传time,可不上传value,直接上传参数值即可。 |
params说明:
请求参数。如以上示例中,设备上报了的两个属性Power(电源)和WF(工作电流)的信息。具体属性信息,包含属性上报时间(time)和上报的属性值(value)。
若仅传入属性值,无需上传字段time和value,params示例如下:
"params": {
"Power": "on",
"WF": 23.6
}如果是自定义模块属性,属性标识符格式为 ${模块标识符}:${属性标识符}(中间为英文冒号)。例如:
"test:Power": {
"value": "on",
"time": 1524448722000
}| 参数 | 类型 | 说明 |
|---|---|---|
| id | String | 消息ID号,String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。 |
| code | Integer | 结果状态码。 具体参考设备端通用code。说明物联网平台会对设备上报的属性做校验。通过产品的TSL描述判断上报的属性是否符合定义的属性格式。不合格的属性会直接被过滤掉,并返回失败的错误码。 |
| data | Object | 请求成功时,返回的数据固定为空。 |
| message | String | 返回结果信息。请求成功时,返回success。 |
| method | String | 响应数据对应的请求方法,与请求参数中method相同。 |
| version | String | 协议版本号,与请求参数中version相同。 |
设置设备属性
设置设备属性成功,只表示物联网平台云端下发属性设置请求成功,不保证设备端执行了该请求。所以设备端SDK成功响应云端设置设备属性值的请求后,需上报对应属性值,设备属性值才能真正设置成功。设备上报属性说明,请参见本文“设备上报属性”。
Topic和数据格式(下行):
| 数据格式(下行) | 请求和响应Topic |
|---|---|
| Xlink 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" }
参数说明:
请求参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| 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。 |
响应参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| id | String | 消息ID号,String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。 |
| code | Integer | 结果状态码,具体参考设备端通用code。 |
| data | Object | 请求成功时,返回的数据固定为空。 |
| message | String | 返回结果信息。请求成功时,返回success。 |
| version | String | 协议版本号,与请求参数中version相同。 |
设备上报事件
Topic和数据格式(上行):
| 数据格式 | 请求和响应Topic |
|---|---|
| 默认模块 Xlink JSON | 请求Topic:/sys/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post 响应Topic: /sys/${productKey}/${deviceName}/thing/event/${tsl.event.identifier}/post_reply |
| 数据格式 | 请求和响应Topic |
|---|---|
| 自定义模块 Xlink JSON | 请求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 |
以默认模块物模型为例,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"
}若请求失败,返回{}。
参数说明:
| 参数 | 类型 | 说明 |
|---|---|---|
| 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,物联网平台的云端自动生成事件上报时间并保存。 |
响应参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
| id | String | 消息ID号,String类型的数字,取值范围0~4294967295,且每个消息ID在当前设备中具有唯一性。 |
| code | Integer | 结果状态码,具体参考设备端通用code。说明物联网平台会对设备上报的事件做校验。通过产品的TSL描述判断上报的事件是否符合定义的事件格式。不合格的事件会直接被过滤掉,并返回失败的错误码。 |
| data | Object | 请求成功时,返回的数据固定为空。 |
| message | String | 返回结果信息。请求成功时,返回success。 |
| method | String | 响应数据对应的请求方法,与请求参数中method相同。 |
| version | String | 协议版本号,与请求参数中version相同。 |