智能家居 RunCycle 特征架构
action.devices.traits.RunCycle
- 此特征表示在操作期间可以持续使用的任何设备。
此类设备会在运行开始时报告其周期总数,以及设备当前在运行的每个周期。这可让用户进行查询,例如:
- 我的烘干机目前处于哪个程序阶段?
- 洗碗机还剩几个周期?
- 烘干机正在做什么?
- 何时清洗?
某些设备包含非循环时长。任何运行了指定时间的设备都可以报告其剩余时间,而无需使用周期。这还可以处理周期不一致的情况(例如,洗碗机可能并不总是使用所有周期)。例如,用户可能会问“我的吸尘器运行多长时间?”,该方法将按剩余时长的相应比例返回时间单位。这同样适用于上面列出的设备;我的衣服烘干多长时间?将返回分钟数。
设备可以返回他们知道的信息,Google 助理 TTS 响应将根据可用的数据形成最佳答案(例如,洗碗机正在工作,大约 20 分钟后就会完成。)
RunCycle 目前是只读特征,没有命令,只有要查询的状态。将来,可能会存在重新运行周期或跳过周期的机制(适用于洒水器,不适合洗衣机)。
设备属性
无。
设备状态
具有此特征的实体可能会在 QUERY
操作中报告以下状态。如需详细了解如何处理 QUERY
intent,请参阅 intent 执行方式。
州 | 类型 | 说明 |
---|---|---|
currentRunCycle |
数组 |
必填。 包含每种受支持语言的当前周期的同义词。 |
[item, ...] |
对象 |
循环同义词名称。 |
currentCycle |
String |
必填。 正在执行的当前周期。 |
nextCycle |
String |
(可选)要执行的下一个周期。 |
lang |
String |
必填。 指定周期名称的语言代码。请参阅支持的语言。 |
currentTotalRemainingTime |
整数 |
必填。 剩余操作时间(以秒为单位)。 |
currentCycleRemainingTime |
整数 |
必填。 当前周期的剩余时间(以秒为单位)。 |
示例
设备再漂洗 5 分钟,将在 20 分钟后完成。
{ "currentRunCycle": [ { "currentCycle": "rinse", "lang": "en" } ], "currentTotalRemainingTime": 1200, "currentCycleRemainingTime": 300 }
将设备再漂洗 5 分钟,之后再旋转设备。
{ "currentRunCycle": [ { "currentCycle": "rinse", "nextCycle": "spin", "lang": "en" } ], "currentTotalRemainingTime": 600, "currentCycleRemainingTime": 300 }
设备命令
无。
设备通知
在设备状态发生变化时,具有此特征的设备可能会返回以下通知载荷。如需详细了解如何实现通知,请参阅智能家居 Action 的通知。
字段 | 类型 | 说明 |
---|---|---|
RunCycle |
必填。 通知负载。 |
|
支持以下功能之一: | ||
0
|
对象 |
成功 |
priority |
整数 |
必填。 表示通知级别。目前支持的值为 0,表示应大声读出通知。 |
status |
String |
必填。 操作结果。 支持的值:
|
currentCycleRemainingTime |
整数 |
必填。 当前周期的剩余时间(以秒为单位)。 |
1
|
对象 |
失败 |
priority |
整数 |
必填。 表示通知级别。目前支持的值为 0,表示应大声读出通知。 |
status |
String |
必填。 操作结果。 支持的值:
|
errorCode |
String |
必填。 该值可以是此特征的任何错误代码,例如 |
示例
设备已完成运行。
{ "RunCycle": { "priority": 0, "status": "SUCCESS", "currentCycleRemainingTime": 0 } }
完成当前周期时出错。
{ "RunCycle": { "priority": 0, "status": "FAILURE", "errorCode": "deviceStuck" } }