WebRTCスキル向けスマートホームデバッガーを使用する
AlexaスマートホームスキルにAlexa.RTCSessionControllerインターフェースを実装している場合は、スマートホームデバッガーを使用して、スキルのテストやデバッグができます。例としては、スキルでスマートホームセキュリティカメラを制御する場合が挙げられます。ユーザーが「アレクサ、玄関のカメラを見せて」と言うと、カメラのビデオフィードがAlexaデバイスに表示されます。
Alexaスキルの開発やテストを行う際、スマートホームデバッガーを使用して、WebRTCセッションのログをリアルタイムに確認できます。たとえば次のような項目で、正しい動作を確認したり、問題を検出したりできます。
- 不正なDTLSバージョン
- 無効なSDPアンサー
- ICE候補が無効な場合やICE候補が存在しない場合
- サポートされていないコード
- JSON形式の誤り
Alexa.ChangeReport、Alexa.AddOrUpdateReport、Alexa.DeleteReportの各イベントで問題をデバッグする方法の詳細については、スマートホームデバッガーを使用するを参照してください。
RTCSessionController
イベントのスマートホームデバッガーログには表示されません。前提条件
WebRTCセッション中にスマートホームデバッガーを使用するには、以下が必要です。
- スキルがリアルタイム通信(RTC)可能なデバイスと通信できること。
- スキルがAlexa.RTCSessionControllerインターフェースを実装していること。
- Fire TVやEchoデバイス(例:Echo Dot、Echo Plus、Echo Show、Echo Spot)など、スキルのテストに使用できるAlexaデバイスを持っていること。
スマートホームデバッガーにアクセスする
スマートホームデバッガーにアクセスするには、Alexa開発者コンソールを使用します。
スマートホームデバッガーの使用方法
-
Alexa開発者コンソールにサインインします。
-
スマートホームデバイスに関連付けられたスマートホームスキルを開きます。
-
テストページを開きます。
-
スキルのテストを有効にします。
-
ページ上部で、デバイスのログ、スマートホームデバッガーを選択します。
-
ページのスマートホームデバッガーセクションで、スマートホームデバッガーをオンに切り替えます。
手順を完了したら、RTCデバイスとの対話によりスキルのテストを開始します。イベント情報がデバイスログに表示されます。
イベントを確認する
スマートホームデバッガーには、Alexaがスキルから受け取るイベントと、Alexa開発者コンソールへのサインインに使用したAmazonアカウントのログが表示されます。デバイスログの各イベントには、Alexaが受信したイベントに関する詳細が記載されたJSONドキュメントが含まれています。
スマートホームデバッガーで問題が発生した場合は、Alexa開発者向け問い合わせページから詳細をAmazonに送信してください。
イベントが正常に処理された例
以下は、Alexaが正常に処理できたSessionDisconnected
イベントのログがスマートホームデバッガーに記録された例です。event
フィールドには、Alexaに送信したイベントのJSONドキュメントが含まれます。
{
"header": {
"namespace": "SkillDebugger",
"name": "CaptureDebuggingInfo",
"messageId": "メッセージID"
},
"payload": {
"skillId": "skill id",
"timestamp": "2020-09-29T19:08:14.545Z",
"dialogRequestId": null,
"skillRequestId": null,
"type": "RTCSessionControllerSuccess",
"content": {
"eventType": "SessionDisconnectedResponse",
"event": {}
}
}
}
接続されたセッションで正常に処理されたイベントの例
以下は、Alexaが正常に処理できた接続状態の変更ログがスマートホームデバッガーに記録された例です。
{
"header": {
"namespace": "SkillDebugger",
"name": "CaptureDebuggingInfo",
"messageId": "メッセージID"
},
"payload": {
"skillId": "skill id",
"timestamp": "2020-09-29T19:08:14.545Z",
"dialogRequestId": null,
"skillRequestId": null,
"type": "RTCSessionControllerSuccess",
"content": {
"eventType": "ConnectionStateEvent",
"event": {
"oldState": "DISCONNECTED",
"newState": "CONNECTED"
}
}
}
}
メディアフローで正常に処理されたイベントの例
以下は、AlexaがRTCメディアを正常に処理できた場合のログがスマートホームデバッガーに記録された例です。state
フィールドは、FLOWING
、NOT_FLOWING
のいずれかになります。mediaType
フィールドは、AUDIO
、DATA
、VIDEO
のいずれかになります。
{
"header": {
"namespace": "SkillDebugger",
"name": "CaptureDebuggingInfo",
"messageId": "メッセージID"
},
"payload": {
"skillId": "skill id",
"timestamp": "2020-09-29T19:08:14.545Z",
"dialogRequestId": null,
"skillRequestId": null,
"type": "RTCSessionControllerSuccess",
"content": {
"eventType": "MediaFlowOutStateChangeEvent",
"event": {
"state": "FLOWING",
"mediaType": "VIDEO"
}
}
}
}
エラーになったイベントの例
以下は、Alexaが正常に処理できなかったSessionDisconnected
イベントのログがスマートホームデバッガーに記録された例です。event
フィールドには、Alexaに送信したイベントのJSONドキュメントが含まれます。
{
"header": {
"namespace": "SkillDebugger",
"name": "CaptureDebuggingInfo",
"messageId": "メッセージID"
},
"payload": {
"skillId": "skill id",
"timestamp": "2020-09-29T19:08:14.545Z",
"dialogRequestId": null,
"skillRequestId": null,
"type": "RTCSessionControllerFailure",
"content": {
"eventType": "SessionDisconnectedException",
"errorCode": "LAMBDA_GENERAL_ERROR",
"errorMessage": "Lambdaの一般的なエラーメッセージです。",
"event": null
}
}
}
RTCSessionControllerのエラーコード
次の表は、スマートホームデバッガーに表示される可能性のあるRTCSessionController
イベントのエラーコードのリストです。
エラーコード | エラーメッセージ |
---|---|
SETUP_EVENT_ERROR |
同時リクエストが多すぎます。 |
NO_VIDEO_ERROR |
ビデオの待機中にタイムアウトになったため接続を確立できませんでした。 |
CONNECTION_ERROR |
接続の確立に失敗しました。 |
INTERNAL_ERROR |
接続の確立中に内部エラーが発生しました。 |
関連トピック
- デバイスの状態を表示してスマートホームスキルのテストとデバッグを行う方法
- スマートホームテスト
- スマートホームスキルのテストとデバッグ
- スマートホームスキルの作成手順
- Works with Alexa認定の概要
- スマートホームライブデバッガーツールを使用してカメラのWebRTC統合のテスト、デバッグ、すばやい市場投入を実現する
最終更新日: 2024 年 12 月 20 日