?
サポート

ロック用のスマートホームスキルを構築する

ロック用のスマートホームスキルを構築する

セキュリティ端末用に構築されたスマートホームスキルは、ドアロックへの音声という新しいアクセス方法をもたらします。たとえば、ユーザーが「Alexa、正面玄関をロックして」というと、ドアがロックされます。また、このようなスキルを通して、ユーザーはAlexaアプリを使って現在の鍵の状況を確認することもできます。

現在、Alexaは鍵をロックするディレクティブだけを送信します。アンロックには対応していません

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

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

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

ロックエンドポイントを識別する

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

  • SMARTLOCK - ロックするエンドポイントを示します。
  • DOOR - ロックするドアを示します。

ロック端末の検出応答の例

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

{
   "event":{
      "header":{
         "namespace":"Alexa.Discovery",
         "name":"Discover.Response",
         "payloadVersion":"3",
         "messageId":"5f8a426e-01e4-4cc9-8b79-65f8bd0fd8a4"
      },
      "payload":{
         "endpoints":[
            {
               "endpointId":"appliance-003",
               "friendlyName":"玄関",
               "description":"Smart Lock by Sample Manufacturer",
               "manufacturerName":"Sample Manufacturer",
               "displayCategories":[
                  "SMARTLOCK"
               ],
               "cookie":{

               },
               "capabilities":[
                  {
                     "type":"AlexaInterface",
                     "interface":"Alexa.LockController",
                     "version":"3",
                     "properties":{
                        "supported":[
                           {
                              "name":"lockState"
                           }
                        ],
                        "proactivelyReported":true,
                        "retrievable":true
                     }
                  },
                  {
                     "type":"AlexaInterface",
                     "interface":"Alexa",
                     "version":"3"
                  }
               ]
            }
         ]
      }
   }
}


低速および高速ロックハードウェア

ロック端末を正しく動作させ、その状況を報告するスマートホームスキルを作成するには、リクエストに対してデバイスがどの程度の速度で応答するかを決定する必要があります。これによってスキルの実装の詳細が決まります。

  • 高速ロックでは5秒以内にロックをすることができます
  • 低速ロックではロックをするのに5秒以上かかります

高速ロック

ロックするハードウェアが5秒以内にロックリクエストに応答する場合は、ロックディレクティブに同期または非同期応答を実装できます。つまり、ロックディレクティブを受信したとき、Alexaインターフェースのレスポンスまたはエラーメッセージで応答し、リクエストが完了したかまたはエラーが発生したことを示します。

低速ロック

ロックするハードウェアのロックリクエストに対する応答が遅い場合は、ロックディレクティブに対して非同期応答を実装する必要があります。つまり、ロックディレクティブを受信したら次のようにします。

  • Lambda関数から同期応答でDeferredResponseイベントを送信します。ここではいつ頃実際の処理レスポンスを送れるかを通知します
  • 処理が終わったらステータスをイベントゲートウェイに対して、ResponseまたはErrorResponseイベントで通知します。

どちらのイベントを送る場合においても、イベントの元となったディレクティブに対応する correlation トークンを含めます。

機能を選択する

エンドポイントをロックするユーザーのリクエストを処理するには、これに応じた正しい機能を選択する必要があります。ロック端末を記述する機能のインターフェースを次の表に示します。

操作 機能のインターフェース
エンドポイントのロック状態を取得または設定をする Alexa.LockController
エラーが発生したことを示す Alexa.ErrorResponse(Alexaインターフェース)