スマートホームの RunCycle トレイトのスキーマ
action.devices.traits.RunCycle - このトレイトは、操作の継続時間を照会できるデバイスに使用します。
このようなデバイスは動作開始時に合計サイクル数を報告し、稼働中はデバイスの現在のサイクルを報告します。これにより、ユーザーは次のようなクエリを実行できるようになります。
- 乾燥機はどのサイクル?
 - 食器洗い機の残りのサイクル数は?
 - 乾燥機はいま何をしている?
 - 洗濯はいつ終わる?
 
デバイスによっては、経過時間がサイクル以外の形式で維持されている場合があります。サイクル形式でなくても、一定の時間動作するデバイスは残り時間を報告できます。サイクルが一定でない場合にも対応できます(例: 食器洗い機が必ずしもすべてのサイクルを使用するとは限りません)。たとえば、「あとどのくらい掃除機を使える?」と聞くと、残り時間に合わせた単位で時間量が返されます。これは上記のデバイスにも当てはまります。「私の服はあとどのくらいで乾く?」と聞くと、残り時間が分単位で返されます。
デバイスから情報が返されると、アシスタントの 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"
  }
}