スマートホームデバッガーを使用する
スマートホームデバッガーを使って、スマートホームスキルのテストやデバッグができます。スマートホームデバッガーでは、Alexaがスキルから受け取るChangeReport、AddOrUpdateReport、DeleteReportといったイベントを確認できます。JSONや処理エラーも含まれます。その他のテストツールの詳細については、スマートホームスキルのテストとデバッグを参照してください。
AlexaスキルにAlexa.RTCSessionControllerインターフェースを実装している場合、WebRTC向けスマートホームデバッガーを使用するも参照してください。
ChangeReport
イベントで、Alexaにプロアクティブに状態をレポートします。プロアクティブにレポートするプロパティは検出応答で特定します。変更レポートの詳細については、状態および変更レポートについてを参照してください。
前提条件
スマートホームデバッガーを使用するには、スマートホームスキルがAlexaにChangeReport
、AddOrUpdateReport
、DeleteReport
のいずれかのイベントを送信する必要があります。
スマートホームデバッガーにアクセスする
スマートホームデバッガーの使用方法
-
Alexa開発者コンソールを開いて、ログインします。
-
スマートホームデバイスに関連付けられたスマートホームスキルを開きます。
-
テストページを開きます。
-
スキルのテストを有効にします。
-
ページ上部で、デバイスのログ、スマートホームデバッガーを選択します。
-
ページのスマートホームデバッガーセクションで、スマートホームデバッガーをオンに切り替えます。
この手順を完了すると、AlexaへのChangeReport、AddOrUpdateReport、DeleteReportのイベント送信時に 、イベント情報がデバイスログに追加されます。
イベントを確認する
スマートホームデバッガーに、Alexa開発者コンソールへのサインインに使用したAmazonアカウントについて、Alexaがスキルから受信したChangeReport、AddOrUpdateReport、DeleteReportのイベントが表示されます。デバイスログの各イベントには、Alexaが受信したイベントに関する詳細が記載されたJSONドキュメントが含まれています。以下は、スマートホームデバッガーの図です。
スマートホームデバッガーで問題が発生した場合は、Alexa開発者向け問い合わせ窓口ページからお問い合わください。
ChangeReportイベントが正常に処理された例
以下は、Alexaが正常に処理できたChangeReport
イベントがスマートホームデバッガーに記録された例です。
{
"header": {
"customerId": "<カスタマーID>",
“skillId”: “<スキルID>”,
"skillStage": "development",
"eventType": "SmartHomeChangeReportSuccess",
"messageId": "<メッセージID>",
"applianceId": "ALL"
},
"payload": {
"request": {
"event": {
"header": {
"namespace": "Alexa",
"name": "ChangeReport",
"messageId": "<メッセージID>",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "<OAuth2ベアラートークン>"
},
"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
}
]
}
}
},
"context": {
"properties": [
{
"namespace": "Alexa.PowerController",
"name": "powerState",
"value": "ON",
"timeOfSample": "2017-07-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 60000
},
{
"namespace": "Alexa.EndpointHealth",
"name": "connectivity",
"value": {
"value": "OK"
},
"timeOfSample": "2017-07-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
}
}
ChangeReportイベントがエラーになった例
以下は、リクエストにエラーが含まれているためにAlexaが正常に処理できなかったChangeReport
イベントがスマートホームデバッガーに記録された例です。詳細については、イベントエラーについてを参照してください。
{
"header": {
"customerId": "<カスタマーID>",
“skillId”: “<スキルID>”,
"skillStage": "development",
"eventType": "SmartHomeChangeReportFailure",
"messageId": "<メッセージID>",
"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": "<メッセージID>",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "<OAuth2ベアラートークン>"
},
"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-07-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 60000
},
{
"namespace": "Alexa.EndpointHealth",
"name": "connectivity",
"value": {
"value": "OK"
},
"timeOfSample": "2017-07-03T16:20:50.52Z",
"uncertaintyInMilliseconds": 0
}
]
}
}
}
}
イベントエラーについて
スキルからAlexaイベントゲートウェイにChangeReport、AddOrUpdateReport、DeleteReportのいずれかのイベントが送信されると、ゲートウェイからHTTP応答を受け取ります。考えられるHTTP応答の完全なリストについては、イベントゲートウェイにイベントを送信するを参照してください。
スキルがゲートウェイから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 |
ChangeReport に相関トークンが含まれています。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 フィールドに、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 フィールドに、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 |
リクエストは、次のいずれかの理由で無効です。
|
関連トピック
最終更新日: 2021 年 04 月 06 日