智能家居“加水”特征架构
action.devices.traits.Fill - 此特征适用于支持加水的设备,例如浴缸。
设备属性
具有此特征的设备可能会报告以下
属性作为 SYNC 操作的一部分。如需详细了解如何处理 SYNC intent,请参阅 intent 执行方式。
| 属性 | 类型 | 说明 |
|---|---|---|
availableFillLevels |
对象 |
描述设备的不同加水级别。 |
levels |
数组 |
必填。 级别名称和特定于语言的同义词列表。 |
[item, ...] |
对象 |
级别名称及其特定于语言的同义词。 |
level_name |
String |
必填。 级别的内部名称。此名称可能不方便用户使用,并且将在所有语言之间共享。 |
level_values |
数组 |
必填。 每种受支持语言中级别的同义词。 |
[item, ...] |
对象 |
给定语言中级别的同义词。为了提供语言回退,至少需要一个 |
level_synonym |
数组 |
必填。 级别的同义词。此列表中的第一个字符串用作该语言中级别的规范名称。 |
[item, ...] |
String |
同义词名称。为了提供语言回退,至少需要一个 |
lang |
String |
必填。 语言代码 (ISO 639-1)。请参阅支持的语言。 |
ordered |
布尔值 |
必填。 如果为 true,则设备会处理用于表示增加或减少逻辑的其他语法,如 |
supportsFillPercent |
布尔值 |
(默认值: 如果为 true,则接受用于将级别调整为百分比的命令。 |
示例
具有基本加水或排水功能但不提供离散加水级别的设备。
{}提供离散加水级别的设备。
{
"availableFillLevels": {
"levels": [
{
"level_name": "half_level",
"level_values": [
{
"level_synonym": [
"Half",
"Half way",
"One half"
],
"lang": "en"
}
]
},
{
"level_name": "full_level",
"level_values": [
{
"level_synonym": [
"Full",
"All the way",
"Complete"
],
"lang": "en"
}
]
}
],
"ordered": true
}
}设备状态
具有此特征的实体可能会报告以下
状态作为 QUERY 操作的一部分。如需详细了解如何处理 QUERY intent,请参阅
intent 执行方式。
| 状态 | 类型 | 说明 |
|---|---|---|
isFilled |
布尔值 |
必填。 如果设备已加水至任何级别,则为 true。如果设备已完全排水,则为 false。 |
currentFillLevel |
String |
如果设置了 |
currentFillPercent |
编号 |
如果设置了 值必须介于 |
示例
浴缸加满水了吗?
{
"isFilled": true
}浴缸加满水了吗?(带级别)。
{
"isFilled": true,
"currentFillLevel": "half_level"
}设备命令
具有此特征的设备可能会响应以下
命令作为 EXECUTE 操作的一部分。如需详细了解如何处理 EXECUTE intent,请参阅 intent 执行方式。
action.devices.commands.Fill
为设备加水或排水。
参数
| 参数 | 类型 | 说明 |
|---|---|---|
fill |
布尔值 |
必填。 true 表示加水,false 表示排水。 |
fillLevel |
String |
指示要设置的 |
fillPercent |
编号 |
指示请求的级别百分比。 值必须介于 |
示例
给浴缸加水。
{
"command": "action.devices.commands.Fill",
"params": {
"fill": true
}
}给浴缸排水。
{
"command": "action.devices.commands.Fill",
"params": {
"fill": false
}
}给浴缸加一半的水。
{
"command": "action.devices.commands.Fill",
"params": {
"fill": true,
"fillLevel": "half_level"
}
}将浴缸加水级别提高一级(需要将 ordered 属性设置为 true)。
{
"command": "action.devices.commands.Fill",
"params": {
"fill": true,
"fillLevel": "full_level"
}
}