Alexa.InputControllerインターフェース3


Alexa.InputControllerインターフェース3

Alexa.InputControllerインターフェースをAlexaスマートホームスキルに実装すると、ユーザーはエンターテイメントデバイスの入力を変更できます。エンターテイメントデバイスのスキルの詳細については、エンターテイメントデバイス用のスマートホームスキルを作成するを参照してください。ビデオスキルの詳細については、ビデオスキルとはを参照してください。

Alexa.InputControllerインターフェースがサポートする言語については、Alexaインターフェースとサポートしている言語の一覧を参照してください。メッセージプロパティの定義については、Alexaインターフェースのメッセージとプロパティを参照してください。

発話

Alexa.InputControllerインターフェースではプリビルド音声対話モデルを使用します。以下に、ユーザーの発話の例を示します。

Alexa, change the input to DVD on the Living Room TV.
Alexa, switch to HDMI two on the Living Room TV.
Alexa, switch to AnyCompany TV on the Kitchen TV.

Alexa, ändere den Eingang am Fernseher im Wohnzimmer auf DVD.
Alexa, schalte auf dem Fernseher im Wohnzimmer auf HDMI zwei um.
Alexa, wechsle auf dem Küchenfernseher zu Arte.

Alexa, change le port d'entrée sur DVD dans le salon.
Alexa, change la télé du salon à HDMI 2.
Alexa, change à France 2 sur la télé.

Alexa, लिविंग रूम टीवी पर इनपुट को DVD में बदलें।
Alexa, लिविंग रूम टीवी पर HDMI दो पर स्विच करें
Alexa, किचन टीवी पर AnyCompany TV पर स्विच करें।

Alexa, cambia l'ingresso in DVD sulla TV del soggiorno.
Alexa, passa a HDMI due sulla TV del soggiorno.
Alexa, passa a Rai 1 sulla TV.

アレクサ、リビングのテレビの入力をDVDに変えて
アレクサ、リビングのテレビの入力をHDMI2に切り替えて
アレクサ、キッチンのテレビをNHKに切り替えて

Alexa, mude a entrada para DVD na TV da sala de estar.
Alexa, mude a entrada para HDMI dois na TV da sala de estar.
Alexa, mude para Band na TV da cozinha.

Alexa, cambia la entrada a DVD en el televisor de la sala.
Alexa, cambia a HDMI dos en el televisor de la sala.
Alexa, cambia a Discovery en la tele de la cocina.

Alexa, verander de input van de woonkamertv naar dvd.
Alexa, switch naar HDMI twee op de woonkamertv.
Alexa, switch naar AnyCompany TV op de keukentv.

ユーザーがこのような発話をしたら、Alexaがそれに対応するディレクティブをスキルに送信します。

プロパティ

出力可能なプロパティ

Alexa.InputControllerインターフェースでは、プライマリプロパティとしてinputプロパティを使用します。プロパティ値は文字列です。

Inputプロパティの値

デバイスがサポートする入力を指定するには、inputプロパティを以下のいずれかの値に設定します。

AUX 1AUX 2AUX 3AUX 4AUX 5AUX 6AUX 7BLURAYCABLECDCOAX 1COAX 2COMPOSITE 1DVDGAMEHD RADIOHDMI 1HDMI 2HDMI 3HDMI 4HDMI 5HDMI 6HDMI 7HDMI 8HDMI 9HDMI 10HDMI ARCINPUT 1INPUT 2INPUT 3INPUT 4INPUT 5INPUT 6INPUT 7INPUT 8INPUT 9INPUT 10IPODLINE 1LINE 2LINE 3LINE 4LINE 5LINE 6LINE 7MEDIA PLAYEROPTICAL 1OPTICAL 2PHONOPLAYSTATIONPLAYSTATION 3PLAYSTATION 4SATELLITESMARTCASTTUNERTVUSB DACVIDEO 1VIDEO 2VIDEO 3XBOX

検出

Alexa.InputControllerをサポートするエンドポイントを指定するには、Alexa.Discoveryの標準検出メカニズムを使用します。

Alexaからスキルに状態レポートリクエストが送信されたら、レポートするプロパティのretrievabletrueに設定します。変更レポートでAlexaにプロアクティブにレポートするプロパティのproactivelyReportedtrueに設定します。

TVSTREAMING_DEVICEGAME_CONSOLEなどの適切な表示カテゴリーを使用します。表示カテゴリーの一覧は、表示カテゴリーを参照してください。

Alexaにデバイスの健全性を通知する場合、Alexa.EndpointHealthインターフェースも実装してください。

configurationオブジェクト

Alexa.InputControllerには、標準の検出応答フィールドのほかに、次のフィールドを含むconfigurationオブジェクトを含めます。

プロパティ 説明 必須

inputs

デバイスがサポートする入力です。
名前は、このデバイスの入力全体で一意である必要があります。

オブジェクトの配列

inputs.name

デバイスがサポートする入力の名前です。名前は、このデバイスの入力全体で一意である必要があります。
有効な値は Inputプロパティの値です。

文字列

inputs.friendlyNames

入力を識別する別名のリストです。フレンドリー名は、このデバイスの入力全体で一意である必要があります。friendlyNamesをサポートすると、ユーザーは、入力のリストでこれらの名前をより認識しやすくなります。

文字列の配列

検出応答の例

以下は、Alexa.InputControllerインターフェースとAlexa.PowerControllerインターフェースをサポートするテレビを表すDiscover.Responseメッセージの例です。テレビに推奨されるすべてのインターフェースの一覧については、スマートホームスキル用のデバイステンプレートを参照してください。

クリップボードにコピーされました。

{
    "event": {
        "header": {
            "namespace": "Alexa.Discovery",
            "name": "Discover.Response",
            "payloadVersion": "3",
            "messageId": "一意の識別子、バージョン4 UUIDが望ましい"
        },
        "payload": {
            "endpoints": [{
                "endpointId": "エンドポイントの一意のID",
                "manufacturerName": "エンドポイントのメーカー名",
                "description": "テレビメーカーのスマートテレビ",
                "friendlyName": "リビングのテレビ",
                "displayCategories": ["TV"],
                "cookie": {},
                "capabilities": [{
                        "type": "AlexaInterface",
                        "interface": "Alexa.InputController",
                        "version": "3",
                        "properties": {
                            "supported": [{
                                "name": "input"
                            }],
                            "proactivelyReported": true,
                            "retrievable": true
                        },
                        "inputs": [{
                                "name": "HDMI 1",
                                "friendNames": ["任意の会社のテレビ"]
                            },
                            {
                                "name": "HDMI 2",
                                "friendlyNames": ["ケーブル", "任意の会社のケーブル"]
                            }
                        ]
                    },
                    {
                        "type": "AlexaInterface",
                        "interface": "Alexa.PowerController",
                        "version": "3",
                        "properties": {
                            "supported": [{
                                "name": "powerState"
                            }],
                            "proactivelyReported": true,
                            "retrievable": true
                        }
                    },
                    {
                        "type": "AlexaInterface",
                        "interface": "Alexa.EndpointHealth",
                        "version": "3.1",
                        "properties": {
                            "supported": [{
                                "name": "connectivity"
                            }],
                            "proactivelyReported": true,
                            "retrievable": true
                        }
                    },
                    {
                        "type": "AlexaInterface",
                        "interface": "Alexa",
                        "version": "3"
                    }
                ]
            }]
        }
    }
}

AddOrUpdateReport

最初の検出応答後にエンドポイントの機能サポートが変更された場合は、Alexa.Discovery.AddOrUpdateReportメッセージをプロアクティブに送信する必要があります。たとえば、デバイスがサポートする入力が変更されたら、AddOrUpdateReportメッセージを送信してAlexaに通知します。詳細については、AddOrUpdateReportを参照してください。

AddOrUpdateReportイベントの例

以下は、エンドポイントのその他の入力の例です。

クリップボードにコピーされました。

{
    "event": {
        "header": {
            "namespace": "Alexa.Discovery",
            "name": "AddOrUpdateReport",
            "payloadVersion": "3",
            "messageId": "一意の識別子、バージョン4 UUIDが望ましい"
        },
        "payload": {
            "endpoints": [{
                "endpointId": "エンドポイントの一意のID",
                "manufacturerName": "エンドポイントのメーカー名",
                "description": "テレビメーカーのスマートテレビ",
                "friendlyName": "リビングのテレビ",
                "displayCategories": ["TV"],
                "cookie": {},
                "capabilities": [{
                        "type": "AlexaInterface",
                        "interface": "Alexa.InputController",
                        "version": "3",
                        "properties": {
                            "supported": [{
                                "name": "input"
                            }],
                            "proactivelyReported": true,
                            "retrievable": true
                        },
                        "inputs": [{
                                "name": "HDMI 1",
                                "friendNames": ["任意の会社のテレビ"]
                            },
                            {
                                "name": "HDMI 2",
                                "friendlyNames": ["ケーブル", "任意の会社のケーブル"]
                            },
                            {
                                "name": "AUX 1",
                                "friendlyNames": ["DVDプレーヤー"]
                            },
                            {
                                "name": "AUX 2"
                            }
                        ]
                    },
                    {
                        "type": "AlexaInterface",
                        "interface": "Alexa.PowerController",
                        "version": "3",
                        "properties": {
                            "supported": [{
                                "name": "powerState"
                            }],
                            "proactivelyReported": true,
                            "retrievable": true
                        }
                    },
                    {
                        "type": "AlexaInterface",
                        "interface": "Alexa",
                        "version": "3"
                    }
                ]
            }]
        }
    }
}

ディレクティブ

Alexaは次のAlexa.InputControllerインターフェースディレクティブをスキルに送信します。

SelectInputディレクティブ

SelectInputディレクティブをサポートすると、ユーザーがデバイスの入力を変更できるようになります。

以下に、ユーザーの発話の例を示します。

Alexa, change the input to HDMI one on the Living Room TV.

Alexa, ändere den Eingang am Fernseher im Wohnzimmer auf HDMI eins.
Alexa, ändere den Eingang auf HDMI eins auf dem Wohnzimmerfernseher.

Alexa, change le port d'entrée sur HDMI 1 sur le téléviseur du salon.

Alexa, लिविंग रूम टीवी पर इनपुट को HDMI एक में बदलें।

Alexa, cambia l'ingresso HDMI sulla TV del soggiorno.

アレクサ、リビングのテレビの入力をHDMI1に変えて

Alexa, mude a entrada para HDMI um na TV da sala de estar.

Alexa, cambia la entrada a HDMI 1 en el televisor de la sala.

Alexa, verander de input naar HDMI een op de woonkamertv.

SelectInputディレクティブの例

以下は、Alexaがスキルに送信するSelectInputディレクティブの例です。

{
  "directive": {
    "header": {
      "namespace": "Alexa.InputController",
      "name": "SelectInput",
      "messageId": "一意のバージョン4 UUID",
      "correlationToken": "opaque相関トークン",
      "payloadVersion": "3"
    },
    "endpoint": {
      "scope": {
        "type": "BearerToken",
        "token": "OAuth2.0ベアラートークン"
      },
      "endpointId": "エンドポイントID",
      "cookie": {}
    },
    "payload": {
      "input": "HDMI 1"
    }
  }
}

SelectInputディレクティブのペイロード

次の表は、SelectInputディレクティブのペイロードの詳細を示しています。

プロパティ 説明 必須

inputs

デバイスの変更後のinputを指定します。

文字列

SelectInput応答

SelectInputディレクティブを正しく処理したら、Alexa.Responseイベントを使用して応答します。contextオブジェクトに、変更されたすべてのプロパティの値を含めます。

以下は、SelectInputディレクティブ応答の例です。

クリップボードにコピーされました。

{
    "event": {
        "header": {
            "namespace": "Alexa",
            "name": "Response",
            "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
            "correlationToken": "リクエストに一致するopaque相関トークン",
            "payloadVersion": "3"
        },
        "endpoint": {
            "endpointId": "エンドポイントID"
        },
        "payload": {}
    },
    "context": {
        "properties": [{
                "namespace": "Alexa.InputController",
                "name": "input",
                "value": "HDMI 1",
                "timeOfSample": "2017-02-03T16:20:50.52Z",
                "uncertaintyInMilliseconds": 0
            },
            {
                "namespace": "Alexa.PowerController",
                "name": "powerState",
                "value": "ON",
                "timeOfSample": "2017-02-03T16:18:40.12Z",
                "uncertaintyInMilliseconds": 500
            },
            {
                "namespace": "Alexa.EndpointHealth",
                "name": "connectivity",
                "value": {
                    "value": "OK"
                },
                "timeOfSample": "2017-02-03T16:15:40.12Z",
                "uncertaintyInMilliseconds": 0
            }
        ]
    }
}

SelectInputディレクティブのエラー処理

SelectInputディレクティブを正しく処理できなかった場合は、Alexa.ErrorResponseイベントを使用して応答します。

状態レポート

Alexaはエンドポイントの状態についての情報をリクエストするために、ReportStateディレクティブを送信します。AlexaがReportStateディレクティブを送信したら、それに対する応答としてStateReportイベントを送信します。この応答には、contextオブジェクトのすべてのretrievableプロパティの現在の状態を含めます。retrievableプロパティは検出応答で特定します。状態レポートの詳細については、状態および変更レポートについてを参照してください。

StateReport応答の例

クリップボードにコピーされました。

{
    "event": {
        "header": {
            "namespace": "Alexa",
            "name": "StateReport",
            "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
            "correlationToken": "リクエストに一致するopaque相関トークン",
            "payloadVersion": "3"
        },
        "endpoint": {
            "scope": {
                "type": "BearerToken",
                "token": "OAuth2.0ベアラートークン"
            },
            "endpointId": "エンドポイントID"
        },
        "payload": {}
    },
    "context": {
        "properties": [{
                "namespace": "Alexa.InputController",
                "name": "input",
                "value": "HDMI 1",
                "timeOfSample": "2017-02-03T16:20:50.52Z",
                "uncertaintyInMilliseconds": 0
            },
            {
                "namespace": "Alexa.PowerController",
                "name": "powerState",
                "value": "ON",
                "timeOfSample": "2017-02-03T16:20:50.52Z",
                "uncertaintyInMilliseconds": 500
            },
            {
                "namespace": "Alexa.EndpointHealth",
                "name": "connectivity",
                "value": {
                    "value": "OK"
                },
                "timeOfSample": "2017-02-03T16:20:50Z",
                "uncertaintyInMilliseconds": 0
            }
        ]
    }
}

変更レポート

エンドポイントの状態の変化をプロアクティブにレポートするために、ChangeReportイベントを送信します。プロアクティブにレポートするプロパティは検出応答で特定します。変更レポートの詳細については、状態および変更レポートについてを参照してください。

ChangeReportイベントの例

クリップボードにコピーされました。

{
    "event": {
        "header": {
            "namespace": "Alexa",
            "name": "ChangeReport",
            "messageId": "一意の識別子、バージョン4 UUIDが望ましい",
            "payloadVersion": "3"
        },
        "endpoint": {
            "scope": {
                "type": "BearerToken",
                "token": "OAuth2.0ベアラートークン"
            },
            "endpointId": "エンドポイントID"
        },
        "payload": {
            "change": {
                "cause": {
                    "type": "VOICE_INTERACTION"
                },
                "properties": [{
                    "namespace": "Alexa.InputController",
                    "name": "input",
                    "value": "HDMI 2",
                    "timeOfSample": "2017-02-03T16:40:50.52Z",
                    "uncertaintyInMilliseconds": 0
                }]
            }
        }
    },
    "context": {
        "properties": [{
            "namespace": "Alexa.PowerController",
            "name": "powerState",
            "value": "ON",
            "timeOfSample": "2017-02-03T16:18:40.12Z",
            "uncertaintyInMilliseconds": 500
        }, {
            "namespace": "Alexa.EndpointHealth",
            "name": "connectivity",
            "value": {
                "value": "OK"
            },
            "timeOfSample": "2017-02-03T16:15:40.12Z",
            "uncertaintyInMilliseconds": 0
        }]
    }
}


このページは役に立ちましたか?

最終更新日: 2024 年 12 月 06 日