汎用コントローラーインターフェース
汎用コントローラーインターフェースとは、Alexaスキルでスマートホームデバイスのさまざまなコンポーネントをモデル化するために使用できる汎用のインターフェースです。スマートホームスキルの詳細については、スマートホームスキルを理解するを参照してください。
現時点では、次の汎用コントローラーインターフェースが存在します。
Alexa.DataController
– ユーザーデータの取得と削除をサポートします。Alexa.ModeController
– ユーザーがリストのいずれかの値を設定できるデバイスのプロパティをモデル化します。Alexa.RangeController
– ユーザーがいずれかの範囲の値を設定できるデバイスのプロパティをモデル化します。Alexa.SimpleEventSource
– リモコンスイッチやスマートボタンデバイスのボタン押下など、デバイスのステートレスイベントをモデル化します。ユーザーは、イベントをAlexa定型アクションに接続できます。Alexa.ToggleController
– オン/オフを設定できるデバイスのプロパティをモデル化します。
コントローラーが機能固有であるほど、ユーザーにとって自然な発話が可能になるため、デバイスのコンポーネントを最も具体的にモデル化できるコントローラーを選択してください。ただし、汎用コントローラーを使うことで、1つのデバイスでコントローラーの複数インスタンスを実装できる機能や、セマンティクスのサポートなど、より機能に固有のコントローラーのデフォルトでは利用できない可能性のある機能をサポートできます。
機能固有のコントローラーと汎用コントローラーの対応
以下の表は、汎用コントローラーと、デバイスのコンポーネントをモデル化するのに使用可能な対応する機能固有コントローラーの例の一覧です。
汎用コントローラー | 対応する機能固有コントローラー |
---|---|
|
— |
|
|
|
|
| |
|
複数インスタンス
Alexaスキルにデバイスの機能固有コントローラーのインターフェースを実装する場合、インターフェースに実装できるインスタンスは1つだけです。Alexaスキルに汎用コントローラーインターフェースを実装する場合、コントローラーのインスタンスを複数実装できます。スキルの検出応答に、コントローラーの各インスタンスのinstance
名を指定します。詳細とサンプルコードについては、各汎用インターフェースのドキュメントを参照してください。
以下のシナリオは、汎用コントローラーの複数インスタンスを実装する例です。
-
洗濯機デバイスに対して、洗濯モードをモデル化する
Washer.WashCycle
というAlexa.ModeController
インターフェースのインスタンスを1つ実装します。水温をモデル化するWasher.WashTemperature
というAlexa.ModeController
インターフェースの2つ目のインスタンスを実装します。 -
照明付きのシーリングファンに対して、ファンの速度をモデル化する
Fan.Speed
というAlexa.RangeController
インターフェースのインスタンスを1つ実装します。照明の明るさをモデル化するFan.Light
というAlexa.RangeController
インターフェースの2つ目のインスタンスを実装します。 -
コンロとオーブンを備えた調理用レンジに対して、オーブンの照明をモデル化する
Oven.Light
というAlexa.ToggleController
インターフェースのインスタンスを1つ実装します。余熱が残っており、コンロが触れないほど熱いときにユーザーに警告する安全機能をモデル化するStovetop.ResidualHeat
というAlexa.ToggleController
インターフェースの2つ目のインスタンスを実装します。 -
3つのボタンの付いたリモートスイッチに対して、各ボタンに1つずつ
Alexa.SimpleEventSource
インターフェースのインスタンスを実装し、各ボタンに対して1つ以上のイベントを定義します。
発話
機能固有コントローラー、汎用コントローラーはいずれもプリビルドの音声対話モデルを使用します。つまり、これらのコントローラーを使う場合、ユーザーがAlexaに話しかける発話は既に定義されています。コントローラーが機能固有であるほど、ユーザーにとって自然な発話が可能になるため、通常は、デバイスのコンポーネントを最も具体的にモデル化できるコントローラーを選択します。
以下の表は、汎用コントローラーと機能固有コントローラーの発話を比較したものです。これらの例では、汎用コントローラーが機能固有コントローラーと同じデバイスに使用されています。汎用コントローラーの場合、ユーザーは、発話内でインスタンスの名前を言うか、名前に代わるフレンドリー名を言う必要があります。
デバイスの例 | 汎用コントローラーの発話 | 機能固有コントローラーの発話 |
---|---|---|
「自動」というモードのあるスマートサーモスタット。ユーザーは、Alexaアプリでこのサーモスタットを「寝室のサーモスタット」と名付けました。 | Alexa.ModeController でサーモスタットをモデル化する場合:「アレクサ、寝室のサーモスタットのサーモスタットモードを自動に設定して」 |
Alexa.ThermostatController でサーモスタットをモデル化する場合:「アレクサ、寝室のサーモスタットを自動に設定して」 |
スマートテレビの音量を制御するスピーカー。ユーザーはAlexaアプリでこのテレビを「リビングのテレビ」と名付けました。 | Alexa.RangeController で音量をモデル化する場合:「アレクサ、リビングのテレビのスピーカー音量を下げて」 |
Alexa.Speaker で音量をモデル化する場合:「アレクサ、リビングのテレビの音量を下げて」 |
スマートプラグ。ユーザーがポータブルヒーターをプラグに差し込み、Alexaアプリでそのプラグに「デスクのヒーター」と名付けました。 | Alexa.ToggleController で電源をモデル化する場合:「アレクサ、デスクのヒーターをつけて」 |
Alexa.PowerController で電源をモデル化する場合:「アレクサ、デスクのヒーターをつけて」 |
セマンティクス
セマンティクスを使用すると、ユーザー発話の追加やデバイスに注意を向けてもらう必要がある場合の通知など、追加の機能を有効にすることができます。セマンティクスを使用するには、検出応答にsemanticsオブジェクトを含めます。
ユーザー発話のセマンティクス
汎用コントローラーを実装する場合、オプションで、セマンティクスを使用してユーザーが使用できる追加の発話を有効にできます。セマンティクスを使用する場合は、「開いて」、「閉じて」、「上げて」、「下げて」といったフレーズを手動でコントローラーのディレクティブにマッピングします。たとえば、ごみ箱のふた用のAlexa.ToggleController
を使用する場合、「開けて」をTurnOn
ディレクティブにマッピングできます。詳細とサンプルコードについては、各汎用インターフェースのドキュメントを参照してください。
Alexa.ModeController
インスタンスにマッピングする場合、「開いて」というフレーズをそのエンドポイントのほかのAlexa.ModeController
インスタンス、Alexa.RangeController
インスタンス、Alexa.ToggleController
インスタンスにはマッピングできません。同じセマンティックフレーズ「開いて」を、出力するほかのエンドポイントで使用できます。
以下は、セマンティクスを使用するユーザー発話の例です。
Alexa, open the garage door.
Alexa, close the garbage can lid.
Alexa, raise the bedroom blinds.
Alexa, lower the living room blinds.
Alexa Hunchesのセマンティクス
セマンティクスを使用すると、デバイスでAlexa Hunchesを有効にしてユーザーの代わりにエネルギーを節約できます。Alexa Hunchesの詳細については、What Are Alexa Hunches?およびEnable Alexa to Proactively Act on Hunches Without Customers Needing to Askを参照してください。
Alexa.ToggleController
でのみサポートされています。Alexa Hunchesのセマンティクスは、Alexa.Actions.SetEcoOn
、Alexa.Actions.SetEcoOff
、Alexa.States.EcoOn
、Alexa.States.EcoOff
です。Alexa Hunchesのサポートを含む検出応答の例については、給湯器の例を参照してください。
お知らせのセマンティクス
セマンティクスを使用して、デバイスに注意を向けてもらう必要がある場合にユーザーへのお知らせを有効にすることができます。たとえば、洗濯機の洗濯モードが完了したときや、ロボット掃除機のダストケースがいっぱいになったときなどにユーザーに通知できます。Alexaがユーザーにお知らせを送れるようにするには、Alexaアプリから事前にユーザーがお知らせをオプトインする必要があります。
Alexa.ModeController
およびAlexa.RangeController
でのみサポートされています。お知らせのセマンティクスを有効にするには、デバイスの状態を検出応答のAlexaの状態のいずれかにマッピングします。お知らせ、およびその形式についての詳細は、ProactiveNotificationSourceを参照してください。
Alexa.Cooking
を参照してください。制限事項
汎用コントローラーを使用するスキルには、次のような制限事項があります。
- Smart Home Device Groupに属しているデバイスを制御する場合、汎用コントローラーは使用できません。
- ユーザー発話のセマンティクスを使用する場合、各セマンティクスフレーズはスキルのすべてのコントローラーインスタンスで一意である必要があります。
関連トピック
最終更新日: 2024 年 07 月 11 日