智能家居 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" } }
SUCCESS