歡迎來到 Google Home 開發人員中心,你可以在這裡學習如何學習智慧型住宅動作。注意事項:您將在 Actions 主控台建構動作。

智慧型住宅 Cycle Trait 結構定義

action.devices.traits.RunCycle - 這個特性代表有運作時間,可供查詢作業持續進行的裝置。

這類裝置會在作業開始時回報其週期總數,以及裝置執行期間的週期。這樣做可讓使用者執行查詢,例如:

  • 我的乾燥週期為何?
  • 洗碗機剩下多少循環?
  • 烘衣機的用途為何?
  • 清洗何時完成?

某些裝置會以非週期性格式顯示時間長度。只要裝置執行特定時間,就能回報剩餘時間,而不必浪費。這個方法也能處理生命週期不一致的情況 (例如洗碗機不一定會一律使用所有週期)。比方說,使用者可能會問「吸塵器跑多久了?」,這樣就能回傳剩餘的時間單位。上述情況也適用於上述裝置。衣服烘乾多久之後,會以分鐘為單位?

裝置可以傳回自己知道的內容,而 Google 助理 TTS 回應會盡可能在可用資料中提供最佳答案 (例如洗碗機正在執行,並在 20 分鐘內完成)。

RunCycle 目前為唯讀特性 - 沒有指令,只有查詢狀態。未來,可能有一些機制可重新執行週期或略過週期 (適用於灑水器、用於洗衣機)。

裝置屬性

無。

裝置狀態

具有這個特性的實體可能會在 QUERY 作業中回報下列狀態。如要進一步瞭解如何處理 QUERY 意圖,請參閱意圖執行要求

類型 說明
currentRunCycle 陣列

必要。

含有目前支援的語言的現行週期同義詞。

[item, ...] 物件

週期同義詞名稱。

currentCycle 字串

必要。

正在執行目前的週期。

nextCycle 字串

選用設定。下一個循環執行。

lang 字串

必要。

指定週期名稱的語言代碼。請參閱「支援的語言」。

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 字串

必要。

作業結果。

支援的值:

SUCCESS
currentCycleRemainingTime 整數

必要。

目前週期剩餘時間 (以秒為單位)。

1 物件

失敗

priority 整數

必要。

代表通知層級。目前支援的值為 0,表示系統應朗讀通知內容。

status 字串

必要。

作業結果。

支援的值:

FAILURE
errorCode 字串

必要。

這個值可以是這項特徵的任何錯誤代碼,例如 deviceStuck

範例

裝置正在執行。

{
  "RunCycle": {
    "priority": 0,
    "status": "SUCCESS",
    "currentCycleRemainingTime": 0
  }
}

完成目前的週期時發生錯誤。

{
  "RunCycle": {
    "priority": 0,
    "status": "FAILURE",
    "errorCode": "deviceStuck"
  }
}

裝置 ERRORS

請參閱錯誤和例外狀況的完整清單。