Alexa.SceneControllerインターフェース



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リポジトリで以下を参照してください。

SceneController