スマートホームデバッガーを使用する
Alexa.ChangeReportイベントでAlexaに状態をプロアクティブにレポートするスキルの場合は、スマートホームデバッガーを使用して、スマートホームスキルのテストやデバッグができます。スマートホームデバッガーでは、Alexaがスキルから受け取るAlexa.ChangeReport、Alexa.AddOrUpdateReport、Alexa.DeleteReportといったイベントを確認できます。これには、JSONや処理エラーも含まれます。
AlexaスキルにAlexa.RTCSessionControllerインターフェースを実装している場合は、WebRTC向けスマートホームデバッガーを使用するも参照してください。
その他のテストツールの詳細については、スマートホームスキルのテストとデバッグを参照してください。
前提条件
スマートホームデバッガーを使用するには、スマートホームスキルがAlexaにAlexa.ChangeReport、Alexa.AddOrUpdateReport、Alexa.DeleteReportのいずれかのイベントを送信する必要があります。プロアクティブにレポートするプロパティは検出応答で指定します。変更レポートの詳細については、状態および変更レポートについてを参照してください。
スマートホームデバッガーにアクセスする
スマートホームデバッガーにアクセスするには、Alexa開発者コンソールを使用します。
スマートホームデバッガーの使用方法
-
Alexa開発者コンソールにサインインします。
-
スマートホームデバイスに関連付けられたスマートホームスキルを開きます。
-
テストページを開きます。
-
スキルのテストを有効にします。
-
ページ上部で、デバイスのログ、スマートホームデバッガーを選択します。
-
ページのスマートホームデバッガーセクションで、スマートホームデバッガーをオンに切り替えます。
この手順を完了すると、AlexaへのAlexa.ChangeReport、Alexa.AddOrUpdateReport、Alexa.DeleteReportのイベント送信時に、イベント情報がデバイスログに追加されます。
イベントを確認する
スマートホームデバッガーに、Alexa開発者コンソールへのサインインに使用したAmazonアカウントについて、Alexaがスキルから受信したAlexa.ChangeReport、Alexa.AddOrUpdateReport、Alexa.DeleteReportのイベントが表示されます。デバイスログの各イベントには、Alexaが受信したイベントに関する詳細が記載されたJSONドキュメントが含まれています。以下は、スマートホームデバッガーの画像です。

スマートホームデバッガーで問題が発生した場合は、Alexa開発者向け問い合わせページから詳細をAmazonに送信してください。
ChangeReportイベントが正常に処理された例
以下は、Alexaが正常に処理できたAlexa.ChangeReportイベントのログがスマートホームデバッガーに記録された例です。
{
"header": {
"customerId": "customer id",
"skillId": "skill id",
"skillStage": "development",
"eventType": "SmartHomeChangeReportSuccess",
"messageId": "一意のバージョン4 UUID",
"applianceId": "ALL"
},
"payload": {
"request": {
"event": {
"header": {
"namespace": "Alexa",
"name": "ChangeReport",
"messageId": "一意のバージョン4 UUID",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2.0ベアラートークン"
},
"endpointId": "エンドポイントの一意のID"
},
"payload": {
"change": {
"cause": {
"type": "PHYSICAL_INTERACTION"
},
"properties": [
{
"namespace": "Alexa.BrightnessController",
"name": "brightness",
"value": 75,
"timeOfSample": "2017-07-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
},
"context": {
"properties": [
{
"namespace": "Alexa.PowerController",
"name": "powerState",
"value": "ON",
"timeOfSample": "2017-07-03T10:00:00.02Z",
"uncertaintyInMilliseconds": 60000
},
{
"namespace": "Alexa.EndpointHealth",
"name": "connectivity",
"value": {
"value": "OK"
},
"timeOfSample": "2017-07-03T16:00:50.52Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
}
}
ChangeReportイベントがエラーになった例
以下は、リクエストにエラーが含まれているためにAlexaが正常に処理できなかったAlexa.ChangeReportイベントのログがスマートホームデバッガーに記録された例です。詳細については、イベントエラーについてを参照してください。
{
"header": {
"customerId": "customer id",
"skillId": "skill id",
"skillStage": "development",
"eventType": "SmartHomeChangeReportFailure",
"messageId": "一意のバージョン4 UUID",
"applianceId": "ALL"
},
"payload": {
"errors": [
{
"code": "Duplicate_Payload_Property",
"message": "duplicate property in the payload for brightness property"
}
],
"proactiveStateRequest": {
"event": {
"header": {
"namespace": "Alexa",
"name": "ChangeReport",
"messageId": "一意のバージョン4 UUID",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "OAuth2.0ベアラートークン"
},
"endpointId": "エンドポイントの一意のID"
},
"payload": {
"change": {
"cause": {
"type": "PHYSICAL_INTERACTION"
},
"properties": [
{
"namespace": "Alexa.BrightnessController",
"name": "brightness",
"value": 75,
"timeOfSample": "2017-02-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
},
{
"namespace": "Alexa.BrightnessController",
"name": "brightness",
"value": 75,
"timeOfSample": "2017-02-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
},
"context": {
"properties": [
{
"namespace": "Alexa.PowerController",
"name": "powerState",
"value": "ON",
"timeOfSample": "2017-02-03T10:00:00.02Z",
"uncertaintyInMilliseconds": 60000
},
{
"namespace": "Alexa.EndpointHealth",
"name": "connectivity",
"value": {
"value": "OK"
},
"timeOfSample": "2017-02-03T16:00:50.52Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
}
}
イベントエラーについて
スキルからAlexaイベントゲートウェイにAlexa.ChangeReport、Alexa.AddOrUpdateReport、Alexa.DeleteReportのいずれかのイベントが送信されると、ゲートウェイからHTTP応答を受け取ります。考えられるHTTP応答の完全なリストについては、Alexaイベントゲートウェイにイベントを送信するを参照してください。
スキルがゲートウェイから202 Accepted応答を受信した場合、Alexaがイベントリクエストを正常に受信したことを意味します。ただし、イベントメッセージ内のエラーによって、Alexaがイベントを正常に処理できない場合があります。この場合、デバッガーのログに、ペイロードにエラー配列を含むSmartHomeChangeReportFailure、SmartHomeAddOrUpdateReportFailure、SmartHomeDeleteReportFailureのいずれかのイベントが出力されます。
変更レポートのエラー
次の表は、スマートホームデバッガーに表示される可能性のあるSmartHomeChangeReportFailureのエラーコードのリストです。
| エラーコード | 説明 |
|---|---|
BEARER_TOKEN_NULL_OR_EMPTY |
ベアラートークンがないか、空です。 |
CAUSE_NULL |
payloadのcauseオブジェクトがありません。 |
CAUSE_TYPE_NULL_OR_EMPTY |
causeオブジェクトにcauseのタイプがないか、タイプが空です。 |
CLIENT_ID_NOT_AVAILABLE |
クライアントID(カスタマーID)がありません。 |
CONTEXT_NULL |
contextオブジェクトがありません。 |
CONTEXT_PROPERTIES_EMPTY |
contextのpropertiesオブジェクトが空です。 |
CONTEXT_PROPERTIES_NULL |
contextのpropertiesオブジェクトがありません。 |
CONTEXT_PROPERTY_NULL |
contextのpropertiesオブジェクトのプロパティがありません。 |
DIRECTED_USER_ID_NULL_OR_EMPTY |
指示されたユーザーIDがないか、空です。 |
DUPLICATE_CONTEXT_PROPERTY |
contextに同一のプロパティが2つあります。 |
DUPLICATE_PAYLOAD_PROPERTY |
payloadに同一のプロパティが2つあります。 |
DUPLICATE_PROPERTY_MISMATCHED_VALUE |
単一のプロパティが異なる値で2度レポートされました。 |
ENDPOINT_ID_BLANK |
エンドポイントIDが空です。 |
ENDPOINT_ID_NULL |
エンドポイントIDがありません。 |
ENDPOINT_SCOPE_NULL |
エンドポイントのスコープがありません。 |
EVENT_ENDPOINT_NULL |
イベントエンドポイントがありません。 |
EVENT_HEADER_NULL |
イベントヘッダーがありません。 |
EVENT_NULL |
イベントオブジェクトがありません。 |
EVENT_PAYLOAD_NULL |
イベントペイロードがありません。 |
HEADER_NAME_NULL |
イベントオブジェクトのヘッダー名がnullです。 |
HEADER_NAMESPACE_NULL |
イベントオブジェクトのヘッダー名前空間がnullです。 |
HEADER_PAYLOAD_VERSION_NULL |
イベントオブジェクトのヘッダーのペイロードバージョンがnullです。 |
INVALID_ASYNC_EVENT |
非同期応答に相関トークンがありません。 |
INVALID_CHANGE_REPORT |
Alexa.ChangeReportに相関トークンが含まれています。Alexa.ChangeReportには相関トークンを含めることはできません。 |
INVALID_HEADER_NAMESPACE |
ヘッダー名前空間には値Alexaが含まれている必要があります。 |
INVALID_PAYLOAD |
ペイロードを処理できませんでした。 |
INVALID_PAYLOAD_VERSION |
ペイロードを処理できませんでした。 |
INVALID_PROPERTY |
プロパティが無効です。 |
MISSING_TIME_OF_SAMPLE |
propertiesオブジェクトのtimeOfSampleフィールドがありません。 |
MISSING_UNCERTAINTY_IN_MILLIS |
propertiesオブジェクトのuncertaintyInMillisecondsフィールドがありません。 |
NEGATIVE_TIME_OF_SAMPLE_DIFFERENCE |
timeOfSampleフィールドに、Alexa.ChangeReportの受信時刻よりも遅い時刻が含まれています。 |
NEGATIVE_UNCERTAINTY_IN_MILLIS |
uncertaintyInMillisecondsフィールドに負の数値が含まれています。この数値は正である必要があります。 |
PAYLOAD_PROPERTIES_EMPTY |
payloadのpropertiesオブジェクトが空です。 |
PAYLOAD_PROPERTIES_NULL |
payloadのpropertiesオブジェクトがありません。 |
PAYLOAD_PROPERTY_NULL |
payloadのpropertiesオブジェクトのプロパティがありません。 |
REQUEST_NULL |
リクエストの本文がありません。 |
SCOPE_INVALID |
エンドポイントのスコープが無効です。 |
TIME_OF_SAMPLE_LARGER_THAN_THRESHOLD |
timeOfSampleフィールドに、Alexa.ChangeReportの受信時刻よりも3秒を超える遅い時刻が含まれています。 |
UNCERTAINTY_IN_MILLIS_LARGER_THAN_THRESHOLD |
uncertaintyInMillisecondsフィールドに14,400,000よりも大きい数値が含まれています。 |
UNKNOWN_PAYLOAD_VERSION |
ペイロードのバージョンがサポートされていません。 |
USER_IDENTIFIER_NULL_OR_EMPTY |
ユーザーIDがないか、空です。 |
AddOrUpdateレポートのエラー
次の表は、スマートホームデバッガーに表示される可能性のあるSmartHomeAddOrUpdateReportFailureのエラーコードのリストです。
| エラーコード | 説明 |
|---|---|
INVALID_REQUEST_EXCEPTION |
リクエストは、次のいずれかの理由で無効です。
|
削除レポートのエラー
次の表は、スマートホームデバッガーに表示される可能性のあるSmartHomeDeleteReportFailureのエラーコードのリストです。
| エラーコード | 説明 |
|---|---|
INVALID_REQUEST_EXCEPTION |
リクエストは、次のいずれかの理由で無効です。
|
関連トピック
最終更新日: 2024 年 12 月 20 日