智慧型住宅 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" } }