状態レポートのテストツールを使用する
状態レポートのテストツールを使用して、スマートホームスキルのテストやデバッグができます。状態レポートのテストツールを使うことで、スキルと開発者アカウントに関連付けられたスマートホームデバイスのすべてのプロパティについて、現在の値を確認できます。各状態の値がStateReport
リクエストからのものか、あるいはChangeReport
などのプロアクティブレポートからのものかを確認できます。その他のテストツールの詳細については、スマートホームスキルのテストとデバッグを参照してください。
Alexaはエンドポイントの状態についての情報をリクエストするために、ReportState
ディレクティブを送信します。AlexaがReportState
ディレクティブを送信したら、スキルは応答としてStateReport
イベントを送信します。また、ChangeReport
イベント、ディレクティブ応答イベント、エラー応答イベントについても、プロアクティブにAlexaに対して状態をレポートします。プロアクティブにレポートするプロパティは検出応答で指定します。状態レポートの詳細については、状態レポートについてを参照してください。
前提条件
状態レポートのテストツールを使用するには、スマートホームデバイスのプロパティが変更されたときにスマートホームスキルがAlexaにChangeReport
イベントを送信する必要があります。デバイスがサポートするインターフェースで定義しているすべてのプロパティについて、検出応答でproactivelyReported
をtrue
に設定する必要があります。スキルが、一部のプロパティにのみプロアクティブレポートをサポートしている場合、状態レポートのテストツールを使用することはできません。
状態レポートのテストツールにアクセスする
状態レポートのテストツールにアクセスするには、Alexaチームにアクセスをリクエストしてください。
状態レポートのテストツールにアクセスする方法
- テストするスマートホームスキルの開発者アカウントでAlexa開発者コンソールにサインインします。
- カスタマー詳細ページでcustomer IDを書き留めます。必要なのは、vendor IDではなくcustomer IDです。
- Alexa開発者向け問い合わせ窓口を開きます。
- 大カテゴリーで、Alexaスキルの開発を選択します。
- 小カテゴリーで、テストと呼び出しを選択します。
- 件名には、
Requesting access to the state reporting test tool
と入力します。 - お問い合わせ内容の詳細には、
Requesting access to the state reporting test tool for customer ID <コピーしたcustomer ID>
と記入します。
ツールへのアクセスが可能になった時点、または追加情報が必要な場合に、Amazonからご連絡します。
複数メンバーを登録した家族アカウントなど、それぞれ個別のAmazonアカウントから同じデバイスを操作するシナリオも考えられます。同じデバイスでスキルを有効にしたすべてのAmazonアカウントについてChangeReport
イベントの送信をテストするには、複数のテストアカウントが必要です。上記の手順を2つ目以降のアカウントについても実施し、このシナリオをテストしてください。
Alexaアプリでスキルを有効にする
状態レポートのテストツールは、既存のウェブベースのAlexaアプリのアドオンです。必ず該当するリージョンのAlexaアプリを使用し、ツールへのアクセスをリクエストしたときと同じアカウントを使用してサインインするようにしてください。
Alexaアプリでスキルを有効にする方法
-
利用しているリージョンでウェブベースのAlexaアプリにログインします。リージョンと対応するURLのリストは次のとおりです。
- 米国:alexa.amazon.com
- 英国:alexa.amazon.co.uk
- ドイツ:alexa.amazon.de
- 日本:alexa.amazon.co.jp
- カナダ:alexa.amazon.ca
- オーストラリア:alexa.amazon.com.au
- インド:alexa.amazon.in
- スペイン:alexa.amazon.es
- フランス:alexa.amazon.fr
- イタリア:alexa.amazon.it
- アプリで、スキルを探します。
- スキルを選択し、スキルページの右上隅にある有効なスキルを選択します。
- 開発スキルまでスクロールして、スキルを見つけます。
- 有効にするを選択して、スキルを有効にします。スキルをデバイス制御クラウドにアカウントリンクするためのページにリダイレクトされます。後でアカウントリンクを削除する場合は、スキルタブでスキルを無効にしてください。
状態情報を確認する
状態情報を表示する方法
- Alexaアプリで、スマートホーム、デバイスの順に選択します。
-
デバイスごとに、拡張デバイス情報を確認できます。情報は次のように表示されます。
機能の状態の各行は、スマートデバイス機能インターフェースのプロパティを表します。各行には、次の情報が含まれます。
- プロパティの名前と現在の値
- プロパティの現在の値のタイムスタンプ
- 現在のタイムスタンプが不確実な期間(ミリ秒)
- DeepQuery - 最後に設定された値が
StateReport
からの場合はTrue
、最後に設定された値がChangeReport
などのプロアクティブレポートからの場合はFalse
変更レポートの問題をトラブルシューティングする
スキルに変更レポートを実装している場合、状態レポートのテストツールのプロパティがDeepQuery: False
(最後に設定された値がChangeReport
であることを示す値)と表示される必要があります。
変更レポートを正常に実装しているにもかかわらず、DeepQuery: True
と指定されている場合は、以下の項目を確認してください。
-
新たに検出されたデバイスでは、Alexaの状態のキャッシュが空になっている場合があります。ブラウザでAlexaアプリを更新してください。
StateReport
イベントを送信しない場合、ChangeReport
を送信してキャッシュに書き込みます。 -
すべてのデバイスのプロパティで
proactivelyReported
がtrue
になっていること、およびすべてのプロパティがChangeReport
でレポートされるようになっていることを確認します。 -
EndpointHealthインターフェースを実装している場合、
connectivity
プロパティをStateReport
、ChangeReport
の各イベントに含めてください。 -
サポートするインターフェースで定義したプロパティのみがレポート対象になっていることを確認します。たとえば、ディレクティブのパラメーターをプロパティとしてレポートしないでください。詳細については、デバイスでサポートする各インターフェースのドキュメントを参照してください。
-
ThermostatControllerインターフェースを実装しているスキルの場合、デバイスがサポートするサーモスタットモードをサイクルで切り替え、Alexaがデータをキャッシュできるようにします。
他のシナリオをテストする
デバイスのすべてのプロパティがDeepQuery: False
であることを確認したら、ChangeReport
イベントをトリガーするデバイスのシナリオをすべてテストします。シナリオごとに、目的のプロパティ値が状態レポートのテストツールに表示されることを確認してください。
以下に、テストが可能なシナリオをいくつか挙げます。
-
Alexaを使用せずに、デバイスの状態を変更します。たとえば、別のアプリケーションや物理デバイスコントロールを使用して、デバイスのオン/オフを切り替えたり、設定を変更したりします。この操作によって、スキルからAlexaに1つ以上の
ChangeReport
イベントが送信されます。ブラウザでAlexaアプリを更新し、DeepQuery: False
になっていること、予想どおりのプロパティ値が表示されることを確認してください。 -
EndpointHealthインターフェースを実装している場合、
ChangeReport
イベントでconnectivity
プロパティが正しくレポートされていることを確認します。デバイスの電源を切り、デバイス接続のポーリング間隔またはハートビート間隔が過ぎるまで待機します。スキルから接続状態が変更されたことがレポートされたら、ブラウザを更新してAlexaアプリを確認します。その後、端末の電源を再度オンにし、Alexaアプリをもう一度確認してください。注: ツールでEndpointHealth
のテスト時にスキルの応答がエラーの場合、問題が発生することがわかっています。ツールがErrorResponse
を受け取ると、Failed to retrieve stateと表示され、それ以外の情報は表示されません。この問題が解決されるまで、このシナリオについては、適切なJSON形式の応答とエラーコードが送信されることをログで確認して検証してください。 -
最初のアカウントや最近のアカウントだけでなく、スキルの有効化とアカウントリンクを行ったすべてのAmazonアカウントで、
ChangeReport
イベントが送信されることを確認します。通常、家族のメンバーはスマートホームデバイスを共有しますが、それぞれがデバイスのスキルに関連付けられた個別のAmazonアカウントを所有しています。状態レポートのテストツールを使用すると、Alexa開発者コンソールへのサインインに使用したAmazonアカウント内のスキルに関連付けられたスマートホームデバイスに関する情報のみを確認できます。他のAmazonアカウントからの情報は表示されません。このシナリオをテストするには、同一のデバイスの資格情報を使用して、さまざまなAmazonアカウントからスキルの有効化とアカウントリンクを行います。その後、Alexaを使用せずにデバイスの状態を変更します。それぞれのAmazonアカウントにサインインし、状態レポートのテストツールを使用して、プロパティの状態が正しいこと、
DeepQuery: False
であることを確認します。これにより、各AmazonアカウントでChangeReport
イベントが正しく送信されることを確認できます。注: AlexaにChangeReport
イベントを送信するときに403 Forbidden
の応答を受け取った場合は、ユーザーがスキルを無効にしていることを意味しています。そのため、そのユーザーへのメッセージ送信は中止できます。 -
ログの応答を調べて、Alexaに正しい
ChangeReport
イベントを送信していることを確認します。
状態レポートのテストツールで問題が発生した場合は、Alexa開発者向け問い合わせ窓口ページから問い合わせてください。