# 百分比

以下这些消息类型，以增加或减少百分比的形式设置目标设备的属性。

- SetPercentageRequest
- SetPercentageConfirmation
- IncrementPercentageRequest
- IncrementPercentageConfirmation
- DecrementPercentageRequest
- DecrementPercentageConfirmation



## SetPercentageRequest

**示例语句**：   
“小微，设置{设备名}到50%”   
**目的**：请求以指定的百分比调整指定设备的数值设置。 从Smart Home Skill API发送到技能适配器。

**Header**

| 属性      | 值                   |
| --------- | -------------------- |
| name      | SetPercentageRequest |
| namespace | SmartHome.Control    |

**Payload**

| 属性                                 | 描述                                                         | 是否必需             |
| ------------------------------------ | ------------------------------------------------------------ | -------------------- |
| accessToken                          | 与客户的设备云账户相关的访问令牌。                           | 是                   |
| appliance object                     | 执行操作的设备。                                             | 是                   |
| appliance.applianceID                | 设备标识符。 标识符在技术适配器的域内的最终用户拥有的所有设备上必须是唯一的。 此外，标识符需要在同一设备的多个发现请求之间保持一致。 标识符可以包含任何字母或数字和以下特殊字符：_ - = # ; : ? @ &。 该值不能超过256个字符。 | 是                   |
| appliance.additionalApplianceDetails | 提供关于技能适配器使用的设备的附加信息的字符串名称/值对。 该属性的内容不能超过5000字节。 而且，Smart Home Skill API即不理解也不使用这些数据。 | 是，但列表可以为空。 |
| percentageState                      | 设置的百分比，精度可达两位小数。 范围从0.00到100.00（含）。  | 否                   |

*SetPercentageRequest*示例：

```
    {
        "header": {
            "messageId": "9422676d-2356-4aa7-aa88-c642f12bfcd6",
            "name": " SetPercentageRequest",
            "namespace": "SmartHome.Control",
            "payloadVersion": "2"
        },
        "payload": {
            "accessToken": "[OAuth token here]",
            "appliance": {
                "additionalApplianceDetails": {},
                "applianceId": "[Device ID]"
            },
            "percentageState": {
                "value": 50.0
            }
        }
    }
```



## SetPercentageConfirmation

***小微响应示例*：“好的”   
**目的**：表示设备已成功调整了指定的百分比。 这是对*SetPercentageRequest*的预期响应，并从技能适配器发送到Smart Home Skill API。

**Header**

| 属性      | 值                        |
| --------- | ------------------------- |
| name      | SetPercentageConfirmation |
| namespace | SmartHome.Control         |

**Payload**

| 属性                        | 描述                             | 是否必需 |
| --------------------------- | -------------------------------- | -------- |
| status对象                  | 调整了指定的百分比后设备的状态。 | 是       |
| status.percentageStateValue | 表示设置的百分比。               | 是       |

*SetPercentageConfirmation*示例：

```
    {
        "header": {
            "messageId": "9422676d-2356-4aa7-aa88-c642f12bfcd6",
            "name": " SetPercentageConfirmation",
            "namespace": "SmartHome.Control",
            "payloadVersion": "2"
        },
        "payload": {
            "status": {
               "percentageStateValue": 50.0  
            }
        }
    }
```

## IncrementPercentageRequest

**示例语句**：   
“小微，{设备名}调高20%”   
**目的**：以指定增加的百分比调整指定设备的数值设置。 从Smart Home Skill API发送到技能适配器。

**Header**

| 属性      | 值                         |
| --------- | -------------------------- |
| name      | IncrementPercentageRequest |
| namespace | SmartHome.Control          |

**Payload**

| 属性                                 | 描述                                                         | 是否必需             |
| ------------------------------------ | ------------------------------------------------------------ | -------------------- |
| accessToken                          | 与客户的设备云账户相关的访问令牌。                           | 是                   |
| appliance object                     | 执行操作的设备。                                             | 是                   |
| appliance.applianceID                | 设备标识符。 标识符在技术适配器的域内的最终用户拥有的所有设备上必须是唯一的。 此外，标识符需要在同一设备的多个发现请求之间保持一致。 标识符可以包含任何字母或数字和以下特殊字符：_ - = # ; : ? @ &。 该值不能超过256个字符。 | 是                   |
| appliance.additionalApplianceDetails | 提供关于技能适配器使用的设备的附加信息的字符串名称/值对。 该属性的内容不能超过5000字节。 而且，Smart Home Skill API即不理解也不使用这些数据。 | 是，但列表可以为空。 |
| deltaPercentage                      | 对于此指令，deltaPercentage将添加到当前百分比设置中。 例如，如果设备当前设置为40％，则deltaPercentage值为15表示设备在请求完成后将被设置为55％。是double类型，范围介于0.00和100.00之间（含）。如果deltaPercentage值在允许的范围内，但超出了目标设备允许的最大值，则返回ValueOutOfRangeError，并且不会更改设备设置。 | 是                   |

*IncrementPercentageRequest*示例：

```
    {
        "header": {
            "messageId": "9422676d-2356-4aa7-aa88-c642f12bfcd6",
            "name": "IncrementPercentageRequest",
            "namespace": "SmartHome.Control",
            "payloadVersion": "2"
        },
        "payload": {
            "accessToken": "[OAuth token here]",
            "appliance": {
                "additionalApplianceDetails": {},
                "applianceId": "[Device ID]"
            },
            "deltaPercentage": {
                "value": 10.0
            }
        }
    }
```



## IncrementPercentageConfirmation

***小微响应示例*：“好的”   
**目的**：表示设备成功增加了指定的百分比。 这是对*IncrementPercentageRequest*的预期响应，并从技能适配器发送到Smart Home Skill API。

**Header**

| 属性      | 值                              |
| --------- | ------------------------------- |
| name      | IncrementPercentageConfirmation |
| namespace | SmartHome.Control               |

**Payload**

| 属性                        | 描述                             | 是否必需 |
| --------------------------- | -------------------------------- | -------- |
| status对象                  | 调整了指定的百分比后设备的状态。 | 是       |
| status.percentageStateValue | 表示设置的百分比。               | 是       |

*IncrementPercentageConfirmation*示例：

```
    {
        "header": {
            "messageId": "9422676d-2356-4aa7-aa88-c642f12bfcd6",
            "name": " IncrementPercentageConfirmation",
            "namespace": "SmartHome.Control",
            "payloadVersion": "2"
        },
        "payload": {
            "status": {
               "percentageStateValue": 50.0  
            }
        }
    }
```



## DecrementPercentageRequest

**示例语句**：   
“小微，{设备名}调低20%”   
**目的**：以指定减小的百分比调整指定设备的数值设置。 从Smart Home Skill API发送到技能适配器。

**Header**

| 属性      | 值                         |
| --------- | -------------------------- |
| name      | DecrementPercentageRequest |
| namespace | SmartHome.Control          |

**Payload**

| 属性                                 | 描述                                                         | 是否必需             |
| ------------------------------------ | ------------------------------------------------------------ | -------------------- |
| accessToken                          | 与客户的设备云账户相关的访问令牌。                           | 是                   |
| appliance object                     | 执行操作的设备。                                             | 是                   |
| appliance.applianceID                | 设备标识符。 标识符在技术适配器的域内的最终用户拥有的所有设备上必须是唯一的。 此外，标识符需要在同一设备的多个发现请求之间保持一致。 标识符可以包含任何字母或数字和以下特殊字符：_ - = # ; : ? @ &。 该值不能超过256个字符。 | 是                   |
| appliance.additionalApplianceDetails | 提供关于技能适配器使用的设备的附加信息的字符串名称/值对。 该属性的内容不能超过5000字节。 而且，Smart Home Skill API即不理解也不使用这些数据。 | 是，但列表可以为空。 |
| deltaPercentage                      | 对于此指令，deltaPercentage将添加到当前百分比设置中。 例如，如果设备当前设置为40％，则deltaPercentage值为15表示设备在请求完成后将被设置为25％。是double类型，范围介于0.00和100.00之间（含）。如果deltaPercentage值在允许的范围内，但超出了目标设备允许的最小值，则返回ValueOutOfRangeError，并且不会更改设备设置。 | 是                   |

*DecrementPercentageRequest*示例：

```
    {
        "header": {
            "messageId": "9422676d-2356-4aa7-aa88-c642f12bfcd6",
            "name": " DecrementPercentageRequest",
            "namespace": "SmartHome.Control",
            "payloadVersion": "2"
        },
        "payload": {
            "accessToken": "[OAuth token here]",
            "appliance": {
                "additionalApplianceDetails": {},
                "applianceId": "[Device ID]"
            },
            "deltaPercentage": {
                "value": 15.0
            }
        }
    }
```

## DecrementPercentageConfirmation

***小微响应示例*：“好的”   
**目的**：表示设备成功减少了指定的百分比。 这是对*DecrementPercentageRequest*的预期响应，并从技能适配器发送到Smart Home Skill API。

**Header**

| 属性      | 值                              |
| --------- | ------------------------------- |
| name      | DecrementPercentageConfirmation |
| namespace | SmartHome.Control               |

**Payload**

| 属性                        | 描述                             | 是否必需 |
| --------------------------- | -------------------------------- | -------- |
| status对象                  | 调整了指定的百分比后设备的状态。 | 是       |
| status.percentageStateValue | 表示设置的百分比。               | 是       |

*DecrementPercentageConfirmation*示例：

```
    {
        "header": {
            "messageId": "9422676d-2356-4aa7-aa88-c642f12bfcd6",
            "name": "DecrementPercentageConfirmation",
            "namespace": "SmartHome.Control",
            "payloadVersion": "2"
        },
        "payload": {
            "status": {
               "percentageStateValue": 50.0  
            }
        }
    }
```

###
