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

必填。

作業結果。

支援的值:

SUCCESS
currentCycleRemainingTime 整數

必要。

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

1 物件

失敗

priority 整數

必填。

代表通知層級。目前支援的值為 0,表示通知應以語音播報。

status String

必填。

作業結果。

支援的值:

FAILURE
errorCode String

必填。

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

範例

裝置已停止運轉。

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

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

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

裝置 ERRORS

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