# 发现设备

发现设备消息用于查找用户可用的智能设备、可以使用的场景，有DiscoverAppliancesRequest和DiscoverAppliancesResponse两个指令。DiscoverAppliancesRequest指令是发出查找设备请求，DiscoverAppliancesResponse指令回复查找到的设备。\
如果客户平台的用户设备信息变更时,可以通过右转提供的异步接口发送通知，触发更新用户设备信息同步到右转主机。

## DiscoverAppliancesRequest

当用户查找设备时，右转主机会将该消息发送给智能家居服务商。另外，用户每次在右转主机刷新或其他情况下获取设备时，此消息会触发一次。

### Header信息

| **属性**    | **取值**                           |
| --------- | -------------------------------- |
| name      | DiscoverAppliancesRequest        |
| namespace | YouZhuan.ConnectedHome.Discovery |

### Payload信息

| **属性**      | **描述**                                                                                     | **是否必须** |
| ----------- | ------------------------------------------------------------------------------------------ | -------- |
| accessToken | 设备云端获取的access token。                                                                       | 是        |
| openUid     | <p>被授权的开放ID，设备云端需要将该字段与用户账号一一对应起来存储，</p><p>其它协议中如果需要携带openUid字段时，则需要返回用户账号对应的openUid值，</p> | 是        |

### 请求消息示例

```markup
{
    "header": {
        "namespace": "YouZhuan.ConnectedHome.Discovery",
        "name": "DiscoverAppliancesRequest",
        "messageId": "6d6d6e14-8aee-473e-8c24-0d31ff9c17a2",
        "payloadVersion": "1"
    },
    "payload": {
        "accessToken": "[OAuth Token here]",
        "openUid": "account_YouZhuan_company"
    }
}
```

## DiscoverAppliancesResponse

当用户请求智能家居服务查找可用设备或可用场景时，智能家居服务需要返回DiscoverAppliancesResponse消息。 如果查找到设备时，会返回设备的相关信息，包括actions、applianceTypes、additionalApplianceDetails、applianceId、friendlyDescription、friendlyName等属性信息。如果没有找到设备时，会返回空数组。

### Header信息

| **属性**    | **取值**                           |
| --------- | -------------------------------- |
| name      | DiscoverAppliancesResponse       |
| namespace | YouZhuan.ConnectedHome.Discovery |

### Payload信息

设备信息

| **属性**                                                  | **描述**                                                                                                                                                                                                                                                  | **是否必须** |
| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- |
| discoveredAppliances                                    | <p>以对象数组返回客户关联设备云帐户的设备、场景。</p><p>如客户关联帐户没有设备、场景则返回空数组。</p><p>如果在发现过程中出现错误，字段值设置为null,</p>                                                                                                                                                               | 是        |
| discoveredAppliance.applianceTypes                      | [支持的设备](/dev-link-host/zhi-neng-jia-ju-xie-yi/mu-qian-zhi-chi-de-she-bei.md)、场景类型。                                                                                                                                                                      | 是        |
| discoveredAppliance.applianceId                         | 设备标识符。标识符在用户拥有的所有设备上必须是唯一的。此外，标识符需要在同一设备的多个发现请求之间保持一致。                                                                                                                                                                                                  | 是        |
| discoveredAppliance.modelName                           | 设备型号名称                                                                                                                                                                                                                                                  | 是        |
| discoveredAppliance.version                             | 供应商提供的设备版本                                                                                                                                                                                                                                              | 是        |
| discoveredAppliance.friendlyName                        | 用户用来识别设备的名称                                                                                                                                                                                                                                             | 是        |
| discoveredAppliance.friendlyDescription                 | 设备相关的描述                                                                                                                                                                                                                                                 | 是        |
| discoveredAppliance.isReachable                         | 设备当前是否能够到达true表示设备当前可以到达，false表示当前设备不能到达。                                                                                                                                                                                                               | 是        |
| discoveredAppliance.actions                             | 设备支持的操作类型数组。详细情况请参见[ 设备操作类型](/dev-link-host/zhi-neng-jia-ju-xie-yi/zhi-chi-de-cao-zuo-lei-xing.md)。                                                                                                                                                     | 是        |
| discoveredAppliance.additionalApplianceDetails          | 提供给设备云使用，存放设备或场景相关的附加信息，是键值对。                                                                                                                                                                                                                           | 是        |
| discoveredAppliance.manufacturerName                    | 设备厂商的名字                                                                                                                                                                                                                                                 | 是        |
| discoveredAppliance.attributes                          | 设备的属性信息。当设备没有属性信息时，协议中不需要传入该字段。详细信息请参考[设备属性](https://dueros.baidu.com/didp/doc/dueros-bot-platform/dbp-smart-home/protocol/attributes.md)及[设备属性上报](https://dueros.baidu.com/didp/doc/dueros-bot-platform/dbp-smart-home/protocol/attributes-report.md)。 | 是        |
| discoveredAppliance.attribute.name                      | 属性名称                                                                                                                                                                                                                                                    | 是        |
| discoveredAppliance.attribute.value                     | 属性值                                                                                                                                                                                                                                                     | 是        |
| discoveredAppliance.attribute.scale                     | 属性值的单位名称，支持数字、字母和下划线                                                                                                                                                                                                                                    | 是        |
| discoveredAppliance.attribute.timestampOfSample         | 属性值取样的时间戳，单位是秒                                                                                                                                                                                                                                          | 是        |
| discoveredAppliance.attribute.uncertaintyInMilliseconds | 属性值取样的时间误差，单位是ms。如果设备使用的是轮询时间间隔的取样方式，那么uncertaintyInMilliseconds就等于时间间隔。如温度传感器每1秒取样1次，那么uncertaintyInMilliseconds的值就是1000。                                                                                                                              | 是        |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.youzhuan.net/dev-link-host/zhi-neng-jia-ju-xie-yi/fa-xian-she-bei.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
