状態レポートのテストツールを使用する



状態レポートのテストツールを使用する

状態レポートのテストツールを使用して、スマートホームスキルのテストやデバッグができます。状態レポートのテストツールを使うことで、スキルと開発者アカウントに関連付けられたスマートホームデバイスのすべてのプロパティについて、現在の値を確認できます。各状態の値がStateReportリクエストからのものか、あるいはChangeReportなどのプロアクティブレポートからのものかを確認できます。その他のテストツールの詳細については、スマートホームスキルのテストとデバッグを参照してください。

Alexaはエンドポイントの状態についての情報をリクエストするために、ReportStateディレクティブを送信します。AlexaがReportStateディレクティブを送信したら、スキルは応答としてStateReportイベントを送信します。また、ChangeReportイベント、ディレクティブ応答イベント、エラー応答イベントについても、プロアクティブにAlexaに対して状態をレポートします。プロアクティブにレポートするプロパティは検出応答で指定します。状態レポートの詳細については、状態レポートについてを参照してください。

前提条件

状態レポートのテストツールを使用するには、スマートホームデバイスのプロパティが変更されたときにスマートホームスキルがAlexaにChangeReportイベントを送信する必要があります。デバイスがサポートするインターフェースで定義しているすべてのプロパティについて、検出応答proactivelyReportedtrueに設定する必要があります。スキルが、一部のプロパティにのみプロアクティブレポートをサポートしている場合、状態レポートのテストツールを使用することはできません。

状態レポートのテストツールにアクセスする

状態レポートのテストツールにアクセスするには、Alexaチームにアクセスをリクエストしてください。

状態レポートのテストツールにアクセスする方法

  1. テストするスマートホームスキルの開発者アカウントでAlexa開発者コンソールにサインインします。
  2. カスタマー詳細ページでcustomer IDを書き留めます。必要なのは、vendor IDではなくcustomer IDです。
  3. Alexa開発者向け問い合わせ窓口を開きます。
  4. 大カテゴリーで、Alexaスキルの開発を選択します。
  5. 小カテゴリーで、テストと呼び出しを選択します。
  6. 件名には、Requesting access to the state reporting test toolと入力します。
  7. お問い合わせ内容の詳細には、Requesting access to the state reporting test tool for customer ID <コピーしたcustomer ID>と記入します。

ツールへのアクセスが可能になった時点、または追加情報が必要な場合に、Amazonからご連絡します。

複数メンバーを登録した家族アカウントなど、それぞれ個別のAmazonアカウントから同じデバイスを操作するシナリオも考えられます。同じデバイスでスキルを有効にしたすべてのAmazonアカウントについてChangeReportイベントの送信をテストするには、複数のテストアカウントが必要です。上記の手順を2つ目以降のアカウントについても実施し、このシナリオをテストしてください。

Alexaアプリでスキルを有効にする

状態レポートのテストツールは、既存のウェブベースのAlexaアプリのアドオンです。必ず該当するリージョンのAlexaアプリを使用し、ツールへのアクセスをリクエストしたときと同じアカウントを使用してサインインするようにしてください。

Alexaアプリでスキルを有効にする方法

  1. 利用しているリージョンでウェブベースのAlexaアプリにログインします。リージョンと対応するURLのリストは次のとおりです。

  2. アプリで、スキルを探します。
    1. スキルを選択し、スキルページの右上隅にある有効なスキルを選択します。
    2. 開発スキルまでスクロールして、スキルを見つけます。
  3. 有効にするを選択して、スキルを有効にします。スキルをデバイス制御クラウドにアカウントリンクするためのページにリダイレクトされます。後でアカウントリンクを削除する場合は、スキルタブでスキルを無効にしてください。

状態情報を確認する

状態情報を表示する方法

  1. Alexaアプリで、スマートホームデバイスの順に選択します。
  2. デバイスごとに、拡張デバイス情報を確認できます。情報は次のように表示されます。

    機能の状態の各行は、スマートデバイス機能インターフェースのプロパティを表します。各行には、次の情報が含まれます。

    • プロパティの名前と現在の値
    • プロパティの現在の値のタイムスタンプ
    • 現在のタイムスタンプが不確実な期間(ミリ秒)
    • DeepQuery - 最後に設定された値がStateReportからの場合はTrue、最後に設定された値がChangeReportなどのプロアクティブレポートからの場合はFalse

変更レポートの問題をトラブルシューティングする

スキルに変更レポートを実装している場合、状態レポートのテストツールのプロパティがDeepQuery: False(最後に設定された値がChangeReportであることを示す値)と表示される必要があります。

変更レポートを正常に実装しているにもかかわらず、DeepQuery: Trueと指定されている場合は、以下の項目を確認してください。

  • 新たに検出されたデバイスでは、Alexaの状態のキャッシュが空になっている場合があります。ブラウザでAlexaアプリを更新してください。StateReportイベントを送信しない場合、ChangeReportを送信してキャッシュに書き込みます。

  • すべてのデバイスのプロパティでproactivelyReportedtrueになっていること、およびすべてのプロパティがChangeReportでレポートされるようになっていることを確認します。

  • EndpointHealthインターフェースを実装している場合、connectivityプロパティをStateReportChangeReportの各イベントに含めてください。

  • サポートするインターフェースで定義したプロパティのみがレポート対象になっていることを確認します。たとえば、ディレクティブのパラメーターをプロパティとしてレポートしないでください。詳細については、デバイスでサポートする各インターフェースのドキュメントを参照してください。

  • ThermostatControllerインターフェースを実装しているスキルの場合、デバイスがサポートするサーモスタットモードをサイクルで切り替え、Alexaがデータをキャッシュできるようにします。

他のシナリオをテストする

デバイスのすべてのプロパティがDeepQuery: Falseであることを確認したら、ChangeReportイベントをトリガーするデバイスのシナリオをすべてテストします。シナリオごとに、目的のプロパティ値が状態レポートのテストツールに表示されることを確認してください。

以下に、テストが可能なシナリオをいくつか挙げます。

  • Alexaを使用せずに、デバイスの状態を変更します。たとえば、別のアプリケーションや物理デバイスコントロールを使用して、デバイスのオン/オフを切り替えたり、設定を変更したりします。この操作によって、スキルからAlexaに1つ以上のChangeReportイベントが送信されます。ブラウザでAlexaアプリを更新し、DeepQuery: Falseになっていること、予想どおりのプロパティ値が表示されることを確認してください。

  • EndpointHealthインターフェースを実装している場合、ChangeReportイベントでconnectivityプロパティが正しくレポートされていることを確認します。デバイスの電源を切り、デバイス接続のポーリング間隔またはハートビート間隔が過ぎるまで待機します。スキルから接続状態が変更されたことがレポートされたら、ブラウザを更新してAlexaアプリを確認します。その後、端末の電源を再度オンにし、Alexaアプリをもう一度確認してください。

  • 最初のアカウントや最近のアカウントだけでなく、スキルの有効化とアカウントリンクを行ったすべてのAmazonアカウントで、ChangeReportイベントが送信されることを確認します。通常、家族のメンバーはスマートホームデバイスを共有しますが、それぞれがデバイスのスキルに関連付けられた個別のAmazonアカウントを所有しています。

    状態レポートのテストツールを使用すると、Alexa開発者コンソールへのサインインに使用したAmazonアカウント内のスキルに関連付けられたスマートホームデバイスに関する情報のみを確認できます。他のAmazonアカウントからの情報は表示されません。このシナリオをテストするには、同一のデバイスの資格情報を使用して、さまざまなAmazonアカウントからスキルの有効化とアカウントリンクを行います。その後、Alexaを使用せずにデバイスの状態を変更します。それぞれのAmazonアカウントにサインインし、状態レポートのテストツールを使用して、プロパティの状態が正しいこと、DeepQuery: Falseであることを確認します。これにより、各AmazonアカウントでChangeReportイベントが正しく送信されることを確認できます。

  • ログの応答を調べて、Alexaに正しいChangeReportイベントを送信していることを確認します。

状態レポートのテストツールで問題が発生した場合は、Alexa開発者向け問い合わせ窓口ページから問い合わせてください。