鳴っているアラームをスヌーズするライフサイクルイベント次のステップリソース概要アラートに関しては、ユーザーは通常Alexa搭載製品との対話を、タイマーのセット、アラームのセット、タイマーまたはアラームの削除/キャンセルの3つの方法のいずれかで行います。ユーザーがタイマーまたはアラームをセットできるようにするには、製品にアクティブなインターネット接続が必要です。Service(AVS)にSetAlertSucceededやDeleteAlertSucceededといったアクションが実行されたことを通知するイベントの送信のために必要となります。製品は、インターネット接続が失われた場合でも、あらかじめセットされていたタイマーやアラームを処理できる必要があります。ユーザーが午前7:30のアラームを夜就寝前にセットし、製品が夜の間にインターネット接続を失った場合でも、製品は午前7:30にアラームを鳴らすことができる必要があります。インターネット接続を失った後でもタイマーやアラームが実行されることは、ユーザーエクスペリエンスにとってプラスです。設計どおりにタイマーとアラームを確実に動作させるには、製品の時計管理が重要です。AVSから送信されるすべてのディレクティブは、UTC時間で返されます。ユーザーが製品に「タイマーを3分設定して。」と言うと、AVSはユーザーのタイムゾーンを考慮して、リクエストに対応する正しいUTC時間を判断します。製品の時間がローカルで調整されている場合は、タイマーとアラームが正しく機能しない可能性があります。この理由により、Amazonでは、ネットワークタイムプロトコル(NTP)を使用して時計を同期することを推奨しています。停電の場合や再起動が必要な場合でも、製品はアラートを継続、復旧させることができる必要があります。アラートが未来の時刻に鳴るよう設定されている場合、製品はローカルでアラートをセットする必要があります。製品は、Alexaにアラートが再設定されたことを通知するイベントを送信する必要はありません。アラートが鳴るよう設定されていた時刻に、製品の電源がオフ、または再起動されている場合は、以下のルールに従う必要があります。アラートが直近30分以内に鳴るよう設定されていた場合、製品はアラートを起動し、関連するすべてのイベントを送信する必要があります。アラートが鳴るよう設定されていた時刻から30分以上経過していた場合、そのアラートは破棄され、破棄されたアラートごとに、製品からAVSにAlertStoppedを送信する必要があります。まとめると、Alexa搭載製品は以下の要件を満たす必要があります。インターネット接続が失われていても、あらかじめセットされていたアラートを実行できる。ネットワークタイムプロトコルを使用して、製品の時計を管理する。製品の電源がオフまたは再起動しても、あらかじめセットされていたアラートを実行できる。以下の例を、AVSでのタイマーとアラームの動作の仕組みについて、理解を深めるために利用してください。これらのシナリオでは、以下のように仮定しています。製品が、ユーザーの話した音声を処理し、AVSから受信したディレクティブに従って動作するよう設計されていること。製品が、クラウドで開始されるディレクティブを受信するためのダウンチャネルを確立していること。詳細については、AVSとのHTTP/2接続の管理を参照してください。製品が、イベントの発生時にAVSに通知すること。すべてのイベントが個別のイベントストリームで送信されること。音声でタイマーをセットするユーザーは5分間のタイマーをセットしようとしています。ユーザーが「タイマーを5分設定して。eventを送信します。AVSは、製品に必要なアクションを指示する一連のディレクティブで応答し、製品はそのアクションを実行する必要があります。タイマーやアラームのセットは、製品とAVSとの間の標準の対話モデルに従って行われ行われており、理解しやすいでしょう。(標準の対話モデル:質問またはリクエストをする、応答を受信してアクションを実行する、何らかのイベントが発生したことをAVSに更新する。)以下は、タイマーをセットするときのメッセージフローです。ユーザーがタイマーをセットするようリクエストすると、AVSは、製品に添付されたオーディオを再生するよう指示するSpeakディレクティブを送信します。このシナリオでは、「5分のタイマーを開始します。Alexaの音声再生が開始されると、製品はAVSにSpeechStartedイベントを送信する必要があります。Alexaの音声再生が完了すると、製品はAVSにSpeechFinishedイベントを送信する必要があります。AVSは、ダウンチャネルストリーム上でSetAlertディレクティブを製品に送信します。製品上のタイマーを5分にセットし、AVSにSetAlertSucceededイベントを送信する必要があります。製品には、タイマーのセット、およびタイマーの設定時間が過ぎたときの動作に必要なロジックが必要です。5分が経過すると、製品はユーザーにタイマーの設定時間が過ぎたことを通知し、AVSにAlertStartedイベントを送信する必要があります。Alexaアプリ、該当する場合は物理コントロール(ボタンまたはGUI)を使用して、タイマーを停止できる必要があります。Alexaアプリを使用して停止をリクエストされた場合、AVSはDeleteAlertディレクティブを製品に送信します。そのディレクティブが処理されたら、製品はAVSにAlertStoppedイベントとDeleteAlertSucceededイベントを送信する必要があります。ボタンを押すなどの物理操作でタイマーが停止された場合、製品はAVSにAlertStoppedイベントを送信する必要があります。実装が正しく行われていれば、製品でタイマーがセットされたとき、インターネット接続がなくても機能するはずですが、AVSにイベントの発生を通知するためには、接続が必要になります。そのため、製品には、インターネット接続が再確立されたときにタイマーのステータスをAVSに通知するためのロジックが必要です。下のシーケンス図は、タイマーがセットされるときに、製品とAVSとの間で想定される対話を示しています。Alexaアプリを使用してアラームをキャンセルするこのシナリオでは、アラームが正常にセットされ、ユーザーがアラームをキャンセルしようとしていると仮定します。Alexaアプリを開きます。アプリから、製品上で設定したすべてのアラーム(アクティブおよび非アクティブ)にアクセスできます。ユーザーはアラームに移動し、午前7:30にセットされたアラームをキャンセルします。DeleteAlertディレクティブは、ダウンチャネルストリーム上で製品に送信されます。Alexaアプリで実行されています。DeleteAlertを受信したら、製品はディレクティブに従って、午前7:30にセットされたアラームをキャンセルできる必要があります。これには、アラームが削除された後にAVSに送信されるDeleteAlertSucceededイベントも含まれます。Alexaアプリを使用してアラームをキャンセルするときに、製品とAVSとの間で想定される対話を示しています。繰り返しアラームをセットする製品上で繰り返しアラームをセットするプロセスは、タイマーのセットに似ています。ディレクティブとイベントのフローはシナリオ1とほぼ同じですが、繰り返しアラームがキャンセルされるまでAVSが製品に毎日SetAlertディレクティブを送信する点のみが異なります。このシーケンス図は、繰り返しアラームがセットされるときに、製品とAVSとの間で想定される対話を示しています。鳴っているアラームをスヌーズするこのシナリオでは、アラームが正常にセットされ、現在鳴っていると仮定します。スヌーズは、音声でのみ開始できます。アラームが鳴っているときにユーザーが「アレクサ、スヌーズ。」と言うと、いくつかのイベントが発生します。ユーザーが話した音声はAVSにストリーミングされ、scheduledTimeが更新された新しいSetAlertディレクティブが製品に送信されます。製品は、鳴っているアラームのtokenと新しいSetAlertディレクティブが一致しているかどうかを確認する必要があります。トークンが一致すると、製品は鳴っているアラームをキャンセルし、SetAlertディレクティブのペイロードに含まれるscheduledTimeで、新しいアラームをセットする必要があります。このシーケンス図は、アラームがスヌーズされるときに、製品とAVSとの間で想定される対話を示しています。ライフサイクルイベントこの表は、4つのユーザーアクションとAVSに送信する必要があるライフサイクルイベントを示しています。DeleteAlertFailedは、DeleteAlertディレクティブへの応答でのみ送信されます。ローカルで実行されるアクションに対しては、これらのイベントを送信しないでください。ユーザーアクションサーバーの動作アラートはアクティブか(鳴動するか)AlertStartedは送信されるかAlertStoppedは送信されるかDeleteAlertSucceeded/DeleteAlertFailedは送信されるかユーザーが「アラームを止めて。N次のステップタイマーとアラームの実装に必要なディレクティブとイベントの全リストについては、以下を参照してください。