スマートホームの RunCycle トレイトのスキーマ
action.devices.traits.RunCycle
- このトレイトは、操作の継続期間を照会できるデバイスを表します。
このようなデバイスは、動作開始時の総サイクル数と、デバイスが現在稼働している各サイクルを報告します。これにより、ユーザーは次のようなクエリを実行できます。
- 乾燥機はどのサイクル?
- 食器洗い機の残りのサイクル数は?
- 乾燥機はいま何をしている?
- 洗濯はいつ終わる?
デバイスによっては、周期的ではない形式で再生時間が表示されます。サイクル形式でなくても、一定の時間動作するデバイスは残り時間を報告できます。サイクルが一定でない場合にも対応できます(例: 食器洗い機が必ずしもすべてのサイクルを使用するとは限りません)。たとえば、ユーザーは「あとどれくらい掃除機は稼働しますか?」と尋ねると、残り時間に比例した単位で時間が返されます。これは上記のデバイスにも適用されます。「私の衣服はあとどれくらい乾燥しますか?」と指定すると、時間(分)が返されます。
デバイスから情報が返されると、アシスタントの 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 |
文字列 |
必須。 オペレーションの結果。 サポートされている値:
|
currentCycleRemainingTime |
整数 |
必須。 現在のサイクルの残り時間(秒)。 |
1
|
温度計 |
失敗 |
priority |
整数 |
必須。 通知レベルを表します。現在サポートされている値は 0 で、通知を読み上げる必要があることを示します。 |
status |
文字列 |
必須。 オペレーションの結果。 サポートされている値:
|
errorCode |
文字列 |
必須。 値には、このトレイトの任意のエラーコード( |
例
デバイスの動作が完了しました。
{ "RunCycle": { "priority": 0, "status": "SUCCESS", "currentCycleRemainingTime": 0 } }
現在のサイクルの完了中にエラーが発生しました。
{ "RunCycle": { "priority": 0, "status": "FAILURE", "errorCode": "deviceStuck" } }