あなたのAlexaコンソール
?
サポート

照明用のスマートホームスキルを構築する

照明用のスマートホームスキルを構築する

照明を操作するスマートホームスキルは、電球や照明、スイッチへの音声という新しいアクセス方法をもたらします。たとえば、ユーザーが「Alexa、居間の照明を50%にして」というと、部屋の明るさが変わります。Alexaのスマートホームスキルでは、ユーザは音声で次のことができるようになります。

  • 照明のオン/オフ
  • 照明レベルと電力レベルの設定
  • 調色可能な電灯の色の変更
  • 調整可能な白色照明の色温度の変更

さらに、このようなスキルを通して、ユーザーはAlexaアプリを使って現在の照明の状況を確認することもできます。

このドキュメントでは、照明を対象としたスマートホームスキルについての概念、および特定のディレクティブとエラーメッセージについて紹介します。

スマートホームスキルを作成するには、Amazon開発者ポータルにコンフィギュレーション情報と、Amazon Web Servicesから提供されるAWS Lambda関数としてホストされるコードを提供します。スキルはAlexaからのディレクティブと呼ばれるメッセージに応答し、照明やスイッチなど接続されているデバイスと通信し、応答イベントをAlexaに返します。

スマートホームスキルを作成するステップについて理解しておいてください。詳細については、次をご覧ください。

照明エンドポイントを識別する

スキルが有効なときにAlexaが Discovery リクエストを送信したら、その応答として、対応している機能およびそれら機能がサポートしているプロパティをリストにし、照明端末エンドポイントとして応答します。また、Alexaアプリで各プロパティを正しく表示するためのデバイスのdisplayCategoryを指定する必要があります。照明エンドポイントでは、これは次のいずれかになります。

  • LIGHT - 光源または照明器具を示します。
  • SWITCH - 壁埋込型の電源スイッチを示します。

以下のコード例は、照明端末としてDiscoveryに応答する例を示しています。

照明端末のDiscoveryへの応答の例

{
   "event":{
      "header":{
         "namespace":"Alexa.Discovery",
         "name":"Discover.Response",
         "payloadVersion":"3",
         "messageId":"5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4"
      },
      "payload":{
         "endpoints":[
            {
               "endpointId":"appliance-001",
               "friendlyName":"リビングルームの電気",
               "description":"Smart Light by Sample Manufacturer",
               "manufacturerName":"Sample Manufacturer",
               "displayCategories":[
                  "LIGHT"
               ],
               "cookie":{
                  "extraDetail1":"optionalDetailForSkillAdapterToReferenceThisDevice",
                  "extraDetail2":"There can be multiple entries",
                  "extraDetail3":"but they should only be used for reference purposes",
                  "extraDetail4":"This is not a suitable place to maintain current device state"
               },
               "capabilities":[
                  {
                     "type":"AlexaInterface",
                     "interface":"Alexa.ColorTemperatureController",
                     "version":"3",
                     "properties":{
                        "supported":[
                           {
                              "name":"colorTemperatureInKelvin"
                           }
                        ],
                        "proactivelyReported":true,
                        "retrievable":true
                     }
                  },
                  {
                      "type": "AlexaInterface",
                      "interface": "Alexa.PowerController",
                      "version": "3",
                      "properties": {
                        "supported": [ {
                          "name": "powerState"
                        } ],
                        "proactivelyReported": true,
                        "retrievable": true
                     }
                  },
                  {
                     "type":"AlexaInterface",
                     "interface":"Alexa",
                     "version":"3"
                  },
                  {
                     "type":"AlexaInterface",
                     "interface":"Alexa.ColorController",
                     "version":"3",
                     "properties":{
                        "supported":[
                           {
                              "name":"color"
                           }
                        ],
                        "proactivelyReported":true,
                        "retrievable":true
                     }
                  }
               ]
            }
         ]
      }
   }
}

機能を選択する

照明をオンにしたり変更したりするリクエストを処理するには、正しい機能インターフェースを選択する必要があります。照明端末の機能に関連したインターフェースを次の表に示します。これらのインターフェースはすべての言語でサポートされています。

操作 機能のインターフェース
照明のオン/オフ Alexa.PowerController
エンドポイントの電力レベルを設定する Alexa.PowerLevelController
照明の輝度をパーセンテージで変更するか、特定の値に変更する Alexa.BrightnessController
照明の色を変更する Alexa.ColorController
調整可能な照明の白の色調を変更する Alexa.ColorTemperatureController

エラーを報告する

照明を制御するディレクティブの応答として送信するエラーメッセージは、エンドポイントが利用不可、セキュリティトークンが期限切れなど、ほとんどは単純なもので、送れる内容はErrorResponseトピックで参照できます。

次のエラーシナリオは照明のエンドポイントに固有のものです。

シナリオ エラーメッセージタイプ 備考
調整可能な白色照明を設定するディレクティブが、現在ある色に設定されている照明機器に対して送信されます。 NOT_SUPPORTED_IN_CURRENT_MODE currentDeviceModeフィールドをCOLORに設定する必要があります。詳細については、ColorTemperatureControllerにある例を参照してください。