スマートホームデバッガーを使用する
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 日