Alexa.SceneControllerインターフェース
Alexa.SceneController
インターフェースには、1つのシーンにグループ化された複数のデバイスを有効(またはオプションで無効)にするためのメッセージが含まれます。有効化はサポートされている必要がありますが、デバイスの検出中にシーンを無効にするかどうかを記述します。
SceneController
インターフェースでサポートされているロケールについては、機能インターフェースの一覧を参照してください。
発話
Alexa.SceneController
インターフェースを使用する場合、音声対話モデルは既にビルドされています。以下に、ユーザーの発話の例を示します。
Alexa, start my day.
Alexa, goodnight.
ユーザーがこのような発話をしたら、Alexaがそれに対応するディレクティブをスキルに送信します。
検出
Alexa.SceneController
をサポートするエンドポイントは、Alexa.Discoveryの標準検出メカニズムを使用して表します。さらに、Alexa.SceneController
機能のコンフィギュレーションで無効化がサポートされているかどうかを識別します。有効化のサポートは必須なので、それを検出中に指定する必要はありません。
表示カテゴリーについては、SCENE_TRIGGER
またはACTIVITY_TRIGGER
を使用します。表示カテゴリーの一覧は、表示カテゴリーを参照してください。
応答例
{
"event": {
"header": {
"namespace":"Alexa.Discovery",
"name":"Discover.Response",
"payloadVersion": "3",
"messageId": "<メッセージID>"
},
"payload":{
"endpoints":[
{
"endpointId": "<unique ID of the endpoint>",
"manufacturerName": "<エンドポイントのメーカー名>",
"description": "<Alexaアプリに表示される説明>",
"friendlyName": "おやすみ",
"displayCategories": ["SCENE_TRIGGER"],
"cookie": {},
"capabilities": [
{
"type": "AlexaInterface",
"interface": "Alexa.SceneController",
"version": "3",
"supportsDeactivation": false
}
]
},
{
"endpointId": "<unique ID of the endpoint>",
"manufacturerName": "<エンドポイントのメーカー名>",
"description": "<Alexaアプリに表示される説明>",
"friendlyName": "TV視聴",
"displayCategories": ["ACTIVITY_TRIGGER"],
"cookie": {},
"capabilities": [
{
"type": "AlexaInterface",
"interface": "Alexa",
"version": "3"
},
{
"type": "AlexaInterface",
"interface": "Alexa.SceneController",
"version": "3",
"supportsDeactivation": true
}
]
}
]
}
}
}
ディレクティブ
Activateディレクティブ
ユーザーがシーンを有効にできるように、Activate
ディレクティブをサポートします。Activate
ディレクティブは必須です。
ユーザー発話のサンプル
ユーザー: アレクサ、図書室の電気を点けて
Activateディレクティブペイロードの詳細
Activate
ディレクティブのペイロードは空です。
Activateディレクティブの例
{
"directive": {
"header": {
"namespace": "Alexa.SceneController",
"name": "Activate",
"messageId": "abc-123-def-456",
"correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "access-token-from-skill"
},
"endpointId": "appliance-001"
},
"payload": {
}
}
}
ActivationStartedイベント
Activate
ディレクティブを正常に処理した場合、ActivationStarted
イベントを使用して応答します。応答は同期または非同期のどちらでも可能です。非同期応答の場合、相関トークンを含めますが、それ以外は必須ではありません。
ActivationStartedイベントのペイロードの詳細
フィールド | 説明 | タイプ | 必須 |
---|---|---|---|
cause |
有効化の理由です。 | Causeオブジェクトです。 | ◯ |
timestamp |
有効化の時間はUTCで指定します。 | 文字列はISO 8601形式で、YYYY-MM-DDThh:mm:ssZとなります。 | ◯ |
ActivationStartedイベントの例
{
"context" : { },
"event": {
"header": {
"messageId": "abc-123-def-456",
"correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
"namespace": "Alexa.SceneController",
"name": "ActivationStarted",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "access-token-from-Amazon"
},
"endpointId": "appliance-001"
},
"payload": {
"cause" : {
"type" : "VOICE_INTERACTION"
},
"timestamp" : "2017-02-03T23:23:23.23Z"
}
}
}
Deactivateディレクティブ
ユーザーがシーンを無効にできるように、Deactivate
ディレクティブをサポートします。Deactivate
ディレクティブはオプションです。
ユーザー発話のサンプル
ユーザー: アレクサ、リビングパーティーをオフにして
Deactivateディレクティブペイロードの詳細
Deactivate
ディレクティブのペイロードは空です。
Deactivateディレクティブの例
{
"directive": {
"header": {
"namespace": "Alexa.SceneController",
"name": "Deactivate",
"messageId": "abc-123-def-456",
"correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "access-token-from-skill"
},
"endpointId": "appliance-001"
},
"payload": {
}
}
}
DeactivationStartedイベント
Deactivate
ディレクティブを正常に処理した場合、DeactivationStarted
イベントを使用して応答します。応答は同期または非同期のどちらでも可能です。非同期応答の場合、相関トークンを含めますが、それ以外は必須ではありません。
DeactivationStartedイベントのペイロードの詳細
フィールド | 説明 | タイプ | 必須 |
---|---|---|---|
cause |
無効化の理由です。 | Causeオブジェクトです。 | ◯ |
timestamp |
無効化の時間はUTCで指定します。 | 文字列はISO 8601形式で、YYYY-MM-DDThh:mm:ssZとなります。 | ◯ |
DeactivationStartedイベントの例
{
"context" : { },
"event": {
"header": {
"messageId": "abc-123-def-456",
"correlationToken": "dFMb0z+PgpgdDmluhJ1LddFvSqZ/jCc8ptlAKulUj90jSqg==",
"namespace": "Alexa.SceneController",
"name": "DeactivationStarted",
"payloadVersion": "3"
},
"endpoint": {
"scope": {
"type": "BearerToken",
"token": "access-token-from-Amazon"
},
"endpointId": "appliance-001"
},
"payload": {
"cause" : {
"type" : "VOICE_INTERACTION"
},
"timestamp" : "2017-02-03T23:23:23.23Z"
}
}
}
エラー処理
エラーが発生した場合、ErrorResponse
イベントを使用して応答します。詳細については、Alexa.ErrorResponseインターフェースを参照してください。
その他のサンプルコード
リクエストと応答のサンプルについては、AlexaスマートホームのGitHubリポジトリで以下を参照してください。