スマートホームスキルを理解する
スマートホームスキルを作成すると、Alexaにスマートデバイスを接続できます。スマートホームスキルでは、ユーザーがクラウドコネクテッドデバイスを音声で制御したり、Alexaアプリや画面付きAlexa搭載デバイスでデバイスのステータスを確認したりすることができます。
スマートホームインターフェースは、プリビルド音声対話モデルを使用します。このモデルには、デバイスを制御するためにユーザーが言う発話のセットがあらかじめ定義されています。ユーザーがAlexaに話しかけると、Alexaは発話を解釈し、スキルにメッセージを送信してリクエストを伝えます。スキルは、デバイスの状態を変更したり(照明を暗くするなど)、デバイス状態の情報を送信したり(照明のオン/オフ状態をユーザーに伝えるなど)することで、メッセージに対応します。
スキルなしでAlexaにスマートホームデバイスを接続する場合は、スマートホームのローカル接続オプションを参照してください。ハードウェアモジュールを製品に統合してAlexaに接続する場合は、Alexa Connect Kitを参照してください。
Alexa Skills Kitを使用して作成できる、その他の種類のAlexaスキルの概要については、スキルの種類の一覧を参照してください。
Alexaのスマートホームスキルの開発者
スマートホームスキルは、クラウドコネクテッドデバイスがあれば誰でも開発できますスマートホームAPIは、ユーザーがスキルとの対話に使用できる発話のセットがあらかじめ定義されている、プリビルド音声対話モデルを使用します。各インターフェースは、デバイスを制御するプリビルドの発話セットを定義します。Alexaによって、ユーザーの発話の解釈方法と、スキルに送信するディレクティブが決定されます。
スマートホームスキルの開発は2つのカテゴリーに分けられます。
- デバイスの製造元の開発者が、自社のクラウドコネクテッドデバイスをユーザーが音声、Alexaアプリ、画面付きAlexa搭載デバイスを使用して制御できるようにするスキルを開発する。
- 独立した開発者がクラウドコネクテッドデバイス向けのAlexaスキルを、個人で使用するため、または一般に公開するために個人的に開発する。
デバイスをAlexaに接続するには、独自のスマートホームスキルを作成することも、経験豊富なソリューションプロバイダーに依頼することもできます。ソリューションプロバイダーのリストについては、Works with Alexa IoTソリューションプロバイダーを参照してください。
スマートホームAPIはどのような種類のデバイスをサポートしていますか?
スマートホームAPIを使用すると、ほぼすべてのタイプのデバイスをAlexaに接続できます。ユーザーとデバイスの対話方法を決め、スキルにその対話をサポートする機能インターフェースを実装します。たとえば、デバイスが照明の場合、ユーザーが照明をオン/オフできるようにするには、スキルにAlexa.PowerController
インターフェースを実装します。
ほとんどのデバイスでは、照明の調光やオン/オフなど、複数のデバイス機能をサポートできるように複数のスマートホームインターフェースを実装します。すべてのスマートホームインターフェースについては、Alexaインターフェースの一覧を参照してください。
一部のAlexaインターフェースは特定のデバイスタイプをサポートしますが、他のインターフェースはさまざまな種類のデバイスをサポートします。たとえば、Alexa.ThermostatController
インターフェースはサーモスタットにのみ実装できますが、Alexa.PowerLevelController
などのインターフェースは多くの種類のデバイスに実装できます。
可能な限り、デバイスに特化されたインターフェースを選択してください。より具体的なインターフェースを選択することで、より的確な機能をAlexaでサポートできるようになります。たとえば、デバイスの明るさの概念はAlexa.PercentageController
やAlexa.RangeController
でもモデル化できますが、Alexa.BrightnessController
インターフェースを実装すれば、「アレクサ、照明を暗くして」というフレーズが標準でサポートされます。
一般的なデバイス向けにどのインターフェースを実装すればよいかの推奨事項については、スマートホームスキル用のデバイステンプレートを参照してください。
スマートホームAPIのしくみ
スマートホームスキルはスマートホームモデルを使用します。スマートホームスキルには、Alexaとデバイス間の通信を可能にするAWS Lambda関数のコードが含まれています。Lambdaは、アマゾン ウェブ サービス(AWS)によって提供されるコンピューティングサービスです。
クラウドインフラストラクチャが既にある場合は、デバイスをAlexaに接続するスマートホームスキルを作成できます。ユーザーがスキルを有効にすると、Alexaがデバイスの検出を開始します。このとき、スキルがデバイスとそのサポート対象となるプロパティおよびインターフェースを記述し、デバイスの詳細をAlexaに報告します。その後、デバイスを操作するためにユーザーがAlexaに話しかけると、Alexaは発話を解釈し、スキルにメッセージを送信してリクエストを伝えます。スキルは、ローカル接続を介して直接、またはクラウドインフラストラクチャを介して、デバイスの状態を変えることでメッセージに対応します。さらに、システムのユーザーアカウントとユーザーのAmazonアカウントを接続すると、スキルがユーザーとそのデバイスを認識します。
スマートホームAPIでは、デバイスと、デバイスがサポートするプロパティ、イベント、ディレクティブを記述するための機能インターフェースを提供します。デバイスの検出プロセス中にAlexaからDiscover
ディレクティブを受け取った後で、Discover.Response
イベントを送信して、デバイスをAlexaに記述します。Alexaは、自動的に特定の機能を有効にするために、このデバイスと機能に関する記述を使用します。たとえば、次のような機能です。
- 多数のよく使用されるコマンドに対応したプリビルドの音声対話モデル。
- コンテキストの特定。ユーザーが明示しない場合でも、正しいデバイスに対してコマンドを発行できるよう、Alexaがデバイスグループなどのコンテキスト的な手掛かりを使えるようにします。
- 定型アクションからのデバイスの制御。
- Alexaアプリや画面付きAlexa搭載デバイスを使用したデバイスの表示と制御。
このAPIでは、音声リクエストに加え、デバイスの状態が変更された場合のデバイスの更新もサポートされます。プロアクティブな更新により、ユーザーがAlexaにデバイスの状態についてたずねたり、Alexaアプリや画面付きAlexa搭載デバイスでデバイスの最新の状態を確認したりできるようになります。たとえば、自宅の温度や照明の状態などの確認が可能になります。さらに、ユーザーが手動でデバイスの状態を変更した場合(照明のスイッチをオンにした場合など)も、スキルやデバイスからAlexaにプロアクティブに通知することができます。
このようなユーザーシナリオをサポートするために、スマートホームAPIには次の機能が備わっています。
- 機能インターフェース – これらのインターフェースはデバイスの機能を説明します。デバイス、またはエンドポイントは、その特長を最もよく表す機能インターフェースを組み合わせて実装できます。たとえば、照明でオン/オフの切り替えと、明るさ調整の機能がある場合、2つのインターフェースを実装できます。
Alexa.PowerController
とAlexa.BrightnessController
の2つです。さらに調節可能な白色照明もサポートする照明では、Alexa.ColorTemperatureController
を実装することもできます。 - 同期および非同期メッセージング - Alexaがディレクティブを送信すると、スマートホームスキルは同期的または非同期的に応答します。ご使用のデバイスとクラウドのアーキテクチャに最も適合するように、同期または非同期の応答、さらにはその2つの組み合わせのどれでも自由に選択できます。
- デバイスステータス変更通知 - プロアクティブな状態の更新情報をAlexaに提供すると、AlexaはAlexaアプリや画面付きAlexa搭載デバイスに正確な最新のデバイス状態を表示できるようになります。プロアクティブな更新により、ユーザーは必要に応じてアクションを実行できます。たとえば、ドアのロックが何者かによって手動で解除された場合、この変更レポートをAlexaに送信し、ユーザーに音声や表示で通知できます。
- 状態の照会 - 機能インターフェースは、Alexaから照会できるプロパティを定義します。これにより、ユーザーはAlexaへの問いかけかAlexaアプリや画面付きAlexa搭載デバイスの状態表示によって、デバイスの現在の状態を確認できるようになります。
次の図は、スマートホームスキルが提供する機能の概要を示しています。
たとえば、次のようなことが可能です。
- ユーザーは、スマートホームスキルを有効にし、デバイス制御クラウドで自分のアカウントにスキルをリンクして、アカウントに関連付けられたデバイスを検出するようにAlexaに指示します。
- その後、ユーザーは「アレクサ、キッチンの照明を50%にして」のようにリクエストしたり、Alexaアプリでデバイスの設定を変更したりします。Alexaはユーザーの発話またはアプリからの情報を使用して、エンドポイントと実行する操作を特定するメッセージを構成します。Alexaはディレクティブと呼ばれるメッセージをスキルに送信し、キッチンの照明を制御します。ディレクティブには、以下の要素が含まれます。
- 機能(
BrightnessController.SetBrightness
など)。これには、新しい設定値が含まれます。 - エンドポイント識別子。この例では、ユーザーが「キッチンの照明」と名付けたエンドポイントのIDです。
- ユーザーを認証する情報。
- 機能(
- Lambda関数でホストされているスキルコードがディレクティブを受け取って解析し、認証情報を検証します。スキルがデバイスまたはデバイス制御クラウドと通信します。その際、キッチンの照明の輝度を設定するようユーザーが定義しておいた通信チャネルを使用します。
- スキルは、操作が正常に実行されたかどうかを示すイベントと呼ばれるメッセージで、Alexaに応答します。応答はLambda関数からイベントを同期的に送信するか、デバイス制御クラウドから非同期的に送信するかを選択できます。Alexaはこの応答を元に、ユーザーへの適切な応答を提供します。たとえば、リクエストされたディレクティブが正常に処理されたことを示す場合、Alexaは「はい」と言います。
- その後、ユーザーは手動でキッチンの照明を消します。この操作により、スキルは照明がオフになっていることを示す変更レポートイベントをAlexaに送信します。Alexaは、Alexaアプリや画面付きAlexa搭載デバイスに更新された状態を表示します。
Works with Alexa認定のガイドライン
Works with Alexa(WWA)認定は、製品にAlexaとの互換性があることを認定し、より使いやすいスマートホームエクスペリエンスをユーザーに提供するためのプログラムです。認定を受けた製品は、Amazonスマートホームストアと製品パッケージにWorks with Alexa認定バッジを貼付できます。詳細については、Works with Alexa認定の概要を参照してください。
スキル作成のための次のステップ
開発を始めるには、スマートホームスキルの作成手順を参照してください。
関連トピック
最終更新日: 2024 年 12 月 20 日