
# 平台查询设备属性
#### 功能介绍
用于平台向设备查询属性信息。平台可调用[查询设备属性](https://support.huaweicloud.com/api-iothub/iot_06_v5_0034.html)接口查询设备的属性数据。设备收到属性查询请求后，需要将设备的属性数据返回给平台，如果设备没回响应平台会认为属性查询请求执行超时。
![](https://support.huaweicloud.com/devg-ocsmartcampus/public_sys-resources/note_3.0-zh-cn.png)
低配置且资源受限或者对网络流量有要求的设备，不适合直接构造JSON数据与物联网平台通信时，可将原始二进制数据透传到物联网平台。通过[开发编解码插件](https://support.huaweicloud.com/devg-iothub/iot_02_9990.html)实现二进制数据到平台定义JSON格式的转换。
#### Topic
下行: $oc/devices/{device_id}/sys/properties/get/request_id={request_id}
上行: $oc/devices/{device_id}/sys/properties/get/response/request_id={request_id}
![](https://support.huaweicloud.com/devg-ocsmartcampus/public_sys-resources/note_3.0-zh-cn.png)
- {request_id}用于唯一标识这次请求。设备侧收到下行请求的topic带该参数时，上行响应的topic需要将该参数值返回给平台。
- 应用[查询设备属性](https://support.huaweicloud.com/api-iothub/iot_06_v5_0034.html)时，平台会生成唯一ID用于标识该请求。同时该唯一标识会通过平台查询设备属性下行Topic中的requst_id携带给设备。
- 设备无法提前感知该request_id，在订阅该Topic时请使用通配符"#"来替代"request_id={request_id}"即为：$oc/devices/{device_id}/sys/properties/get/#。
 
#### 下行请求参数说明
| 字段名              | 必选/可选 | 类型     | 参数描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| object_device_id | 可选    | String | **参数解释：** - 平台下发时，若为直连设备，不携带该参数。  - 平台下发时，若为网关子设备，该参数为Topic中设备的子设备ID。   |
| service_id       | 可选    | String | **参数解释：** 设备的服务ID，由创建的[产品模型](https://support.huaweicloud.com/devg-iothub/iot_02_0005.html)确定。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
   
#### 上行响应参数说明
| 字段名      | 必选/可选 | 类型                      | 参数描述                                                                                                                                        |
|:---|:---|:---|:---|
| services | 可选    | List\<ServiceProperty\> | **参数解释：** 设备服务数据列表。 |
   
ServiceProperty结构定义：
| 字段名        | 必选/可选 | 类型     | 参数描述                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| service_id | 必选    | String | **参数解释：** 设备的服务ID，由创建的[产品模型](https://support.huaweicloud.com/devg-iothub/iot_02_0005.html)确定。                                                                                                                                   |
| properties | 必选    | Object | **参数解释：** 设备服务的属性列表，具体字段在设备关联的产品模型里定义，可以设置多个字段。                                                                                                                                                                                 |
| event_time | 可选    | String | **参数解释：** 设备采集数据UTC时间（格式：yyyyMMdd'T'HHmmss'Z'），如：20161219T114920Z。 设备上报数据不带该参数或参数格式错误时，则数据上报时间以平台时间为准。 |
   
#### 下行请求示例
```
Topic: $oc/devices/{device_id}/sys/properties/get/request_id={request_id} 
数据格式：  
{
    "object_device_id": "{object_device_id}"
    "service_id": "Temperature"
}
```
 #### 上行响应示例
```
Topic：$oc/devices/{device_id}/sys/properties/get/response/request_id={request_id}
数据格式：  
{
    "services": [
        {
            "service_id": "Temperature",
            "properties": {
                "PhV_phsA": "1",
                "PhV_phsB": "2"
            },
            "event_time": "20190606T121212Z"
        }
    ]
}
```
