Smart Home RunCycle 特徵結構定義
action.devices.traits.RunCycle
- 這項特性代表任何持續執行可查詢作業的裝置。
這類裝置會在作業開始時回報相關週期總數,以及裝置目前處於執行中的週期。這可讓使用者執行查詢,例如:
- 我的烘衣機目前進行到哪一個週期?
- 洗碗機還剩下幾次?
- 乾衣機目前進行了什麼動作?
- 洗衣服務何時會完成?
某些裝置會設定非循環格式的時間長度。任何執行時間的裝置均可回報剩餘時間,無需循環。這項功能也能處理週期不一致的情況 (例如洗碗機不一定每次都會使用所有循環)。舉例來說,使用者可以問「吸塵器要執行多長的時間?」,而系統會傳回每單位所需時間的單位時間長度。這也適用於上列裝置;「我的衣服會烘乾多久?」會在幾分鐘內傳回時間長度。
裝置可以傳回所知道的資訊,而 Google 助理 TTS 回應則會以可用的資料構成最佳答案 (例如「洗碗機正在運中,並且會在約 20 分鐘內完成」)。
RunCycle 目前是唯讀特徵,沒有指令,僅可查詢狀態。日後可能會提供重新執行的週期或跳動週期 (適用於灑水器、不利於洗衣機)。
裝置屬性
無。
裝置狀態
具有這個特性的實體可能會在 QUERY
作業中回報下列狀態。如要進一步瞭解如何處理 QUERY
意圖,請參閱「意圖執行要求」。
狀態 | 類型 | 說明 |
---|---|---|
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 }
裝置指令
無。
裝置通知
具有這個特性的裝置可能會在裝置狀態變更時傳回下列通知酬載。如要進一步瞭解如何實作通知,請參閱「智慧住宅動作通知」。
欄位 | 類型 | 說明 |
---|---|---|
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" } }