
# 查询设备属性快照
#### 功能介绍
设备的产品模型中定义了设施云平台可向设备下发的属性，应用服务器可调用此接口向设备发送指令用以查询设备的实时属性, 并由设备将属性查询的结果同步返回给应用服务器。
注意：此接口适用于MQTT设备，暂不支持NB-IoT设备。
#### URI
GET /v1/iotfm/devices/{device_id}/properties
表1路径参数 
| 参数        | 是否必选 | 参数类型   | 描述                                                                                                                              |
|:---|:---|:---|:---|
| device_id | 是    | String | **参数说明**：设备ID，用于唯一标识一个设备，在注册设备时由设施云平台分配获得。 **取值范围**：长度不超过128，只允许字母、数字、下划线（_）、连接符（-）的组合。 |
   
#### 请求参数
表2请求Header参数 
| 参数             | 是否必选 | 参数类型   | 描述                                                                                                                                                              |
|:---|:---|:---|:---|
| X-Auth-Token   | 是    | String | **参数说明** ：用户Token。通过调用 [生成Token](https://support.huaweicloud.com/api-ocsmartcampus/ocsmartcampus_06_0008.html) 接口获取，接口返回的响应消息头中"X-Subject-Token"就是需要获取的用户Token。 |
| X-Instance-Id  | 是    | String | **参数说明**：实例ID。通过访问智能设施云平台界面后获取，智能设施云平台资源均为实例级隔离，所有业务接口必须填写正确的实例ID才能被成功调用。 **取值范围**：长度8-36，只允许大小写字母、数字和-字符的组合。          |
| X-Root-Zone-Id | 否    | String | **参数说明**：项目ID。 **取值范围**：长度不超过24，只允许字母、数字的组合。                                                                            |
   
#### 响应参数
**状态码：200**
表3响应Body参数 
| 参数        | 参数类型                                                                                                                                              | 描述                                                                                                                      |
|:---|:---|:---|
| device_id | String                                                                                                                                            | **参数说明**：设备ID，用于唯一标识一个设备，在注册设备时由物联网平台分配获得。 **取值范围**：长度不超过128，只允许字母、数字、以及_-字符的组合。 |
| services  | Array of [DeviceReportedServiceProperties] objects | **参数说明**：设备属性快照数据列表。                                                                                                    |
| metadata  | Array of [DeviceReportedServiceMetadata] objects     | **参数说明**：设备属性快照元数据列表。                                                                                                   |
   
 表4DeviceReportedServiceProperties 
| 参数         | 参数类型   | 描述                                                                                                  |
|:---|:---|:---|
| service_id | String | **参数说明**：设备命令所属的设备服务ID，在设备关联的产品模型中定义。 **取值范围**：长度不超过64的字符串。 |
| properties | Object | **参数说明**：设备影子的属性数据，Json格式，里面是一个个键值对，每个键都是产品模型中属性的参数名(property_name)，目前如样例所示只支持一层结构。                 |
   
 表5DeviceReportedServiceMetadata 
| 参数         | 参数类型                                                                                                                                               | 描述                                                                                                  |
|:---|:---|:---|
| service_id | String                                                                                                                                             | **参数说明**：设备命令所属的设备服务ID，在设备关联的产品模型中定义。 **取值范围**：长度不超过64的字符串。 |
| properties | Map\<String,[DeviceReportedServiceMetadataItem]\> | **参数说明**：设备影子的属性元数据，Json格式。                                                                         |
   
 表6DeviceReportedServiceMetadataItem 
| 参数        | 参数类型   | 描述                                                 |
|:---|:---|:---|
| timestamp | String | **参数说明**：更新时间戳，格式为："yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"。 |
   
**状态码：400**
表7响应Body参数 
| 参数         | 参数类型   | 描述                                                                       |
|:---|:---|:---|
| error_code | String | **参数说明**：错误码。 **取值范围**：长度8-36。   |
| error_msg  | String | **参数说明**：错误描述。 **取值范围**：长度2-512。 |
   
#### 请求示例
查询设备属性快照
```
GET https://{endpoint}/v1/iotfm/devices/16087212bc75410c9ad77163b4cf6aba/properties
```
#### 响应示例
**状态码：200**
OK
```
{
  "device_id" : "16087212bc75410c9ad77163b4cf6aba",
  "services" : [ {
    "service_id" : "InfoService",
    "properties" : {
      "Temperature" : "15.0",
      "Humidity" : "10.0"
    }
  } ],
  "metadata" : [ {
    "service_id" : "InfoService",
    "properties" : {
      "Temperature" : {
        "timestamp" : "2023-05-22T01:43:06.000Z"
      },
      "Humidity" : {
        "timestamp" : "2023-05-22T01:43:06.000Z"
      }
    }
  } ]
}
```
#### 状态码
| 状态码 | 描述                    |
|:---|:---|
| 200 | OK                    |
| 400 | Bad Request           |
| 403 | Forbidden             |
| 404 | Not Found             |
| 500 | Internal Server Error |
   
