汎用コントローラーインターフェース


汎用コントローラーインターフェース

汎用コントローラーインターフェースとは、Alexaスキルでスマートホームデバイスのさまざまなコンポーネントをモデル化するために使用できる汎用のインターフェースです。スマートホームスキルの詳細については、スマートホームスキルを理解するを参照してください。

現時点では、次の汎用コントローラーインターフェースが存在します。

  • Alexa.DataController – ユーザーデータの取得と削除をサポートします。
  • Alexa.ModeController – ユーザーがリストのいずれかの値を設定できるデバイスのプロパティをモデル化します。
  • Alexa.RangeController – ユーザーがいずれかの範囲の値を設定できるデバイスのプロパティをモデル化します。
  • Alexa.SimpleEventSource – リモコンスイッチやスマートボタンデバイスのボタン押下など、デバイスのステートレスイベントをモデル化します。ユーザーは、イベントをAlexa定型アクションに接続できます。
  • Alexa.ToggleController – オン/オフを設定できるデバイスのプロパティをモデル化します。

コントローラーが機能固有であるほど、ユーザーにとって自然な発話が可能になるため、デバイスのコンポーネントを最も具体的にモデル化できるコントローラーを選択してください。ただし、汎用コントローラーを使うことで、1つのデバイスでコントローラーの複数インスタンスを実装できる機能や、セマンティクスのサポートなど、より機能に固有のコントローラーのデフォルトでは利用できない可能性のある機能をサポートできます。

機能固有のコントローラーと汎用コントローラーの対応

以下の表は、汎用コントローラーと、デバイスのコンポーネントをモデル化するのに使用可能な対応する機能固有コントローラーの例の一覧です。

汎用コントローラー 対応する機能固有コントローラー

Alexa.DataController

Alexa.ModeController

Alexa.Cooking
Alexa.EqualizerController
Alexa.LockController
Alexa.ThermostatController

Alexa.RangeController

Alexa.PowerLevelController
Alexa.PercentageController
Alexa.BrightnessController
Alexa.EqualizerController
Alexa.StepSpeaker
Alexa.Speaker

Alexa.SimpleEventSource

Alexa.DoorbellEventSource

Alexa.ToggleController

Alexa.PowerController
Alexa.LockController

複数インスタンス

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, 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 Hunchesのセマンティクスは、Alexa.Actions.SetEcoOnAlexa.Actions.SetEcoOffAlexa.States.EcoOnAlexa.States.EcoOffです。Alexa Hunchesのサポートを含む検出応答の例については、給湯器の例を参照してください。

お知らせのセマンティクス

セマンティクスを使用して、デバイスに注意を向けてもらう必要がある場合にユーザーへのお知らせを有効にすることができます。たとえば、洗濯機の洗濯モードが完了したときや、ロボット掃除機のダストケースがいっぱいになったときなどにユーザーに通知できます。Alexaがユーザーにお知らせを送れるようにするには、Alexaアプリから事前にユーザーがお知らせをオプトインする必要があります。

お知らせのセマンティクスを有効にするには、デバイスの状態を検出応答のAlexaの状態のいずれかにマッピングします。お知らせ、およびその形式についての詳細は、ProactiveNotificationSourceを参照してください。

制限事項

汎用コントローラーを使用するスキルには、次のような制限事項があります。

  • Smart Home Device Groupに属しているデバイスを制御する場合、汎用コントローラーは使用できません。
  • ユーザー発話のセマンティクスを使用する場合、各セマンティクスフレーズはスキルのすべてのコントローラーインスタンスで一意である必要があります。


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

最終更新日: 2024 年 07 月 11 日