前言:
繼上一篇 ” Qualcomm Home Hub 100控制Alexa IoT 裝置創建手把手教學-前篇” 介紹完創建AWS IoT core、AVS、創建Qualcomm Home Hub 100與LWA(Login with Amazon)後,這一篇將繼續介紹如何創建與配置Skill、Lambda Function與實際測試,讓使用者能完成整個Alexa語音控制流程。
註:此篇有關LWA(Login with Amazon)資訊請參考” Qualcomm Home Hub 100控制Alexa IoT 裝置創建手把手教學-前篇”。
手把手教學:
-
Create the skill(skill)
-
點擊網址 https://developer.amazon.com/login.html 並登錄。
點擊Alexa Skills KitàCreate Skill。(圖 19、20)
|
圖 19 |
|
圖 20 |
-
輸入Skill nameà選擇Smart Home Skill APIà點選Create skill。(21)
|
圖 21 |
-
完成此步驟後保留此頁面資訊,完成Lambda設置後在步驟”Configure skill”還需回來輸入其他資訊。(圖 22)
|
圖 22 |
-
Create the Lambda function
-
下載 https://github.com/alexa/alexa-smarthome 此網址內檔案。(圖 23)
圖 23
-
複製alexa-smarthome-master.zip\alexa-smarthome-master\validation_schemas\ alexa_smart_home_message_schema.json至上一步下載檔案之/sample_lambda/python路徑中。
-
重新壓縮/sample_lambda/python路徑中所有檔案,這裡要注意python.zip檔案裡不能再包含一個python檔案夾,必須是lambda.py名稱等檔案。(圖 24)
圖 24
-
進入https://console.aws.amazon.com/console/home à Services à Lambda。(圖 25)
|
圖 25 |
-
點選” Create Function”。 (圖 26)
圖 26
-
點選” Author from scratch” à填入”Function name”(使用者自訂) à 點選” Runtime” 選擇python 3.6 à點選” Change default execution role” à點選” Create a new role with basic Lambda permissions” à點選”Create Function”。 (圖 27)
|
圖 27 |
-
點選” ADD Triggers” à點選“Trigger configuration” à選擇”Alexa Smart Home” à填入” Application Id”,這裡Application Id是步驟”Create the skill”中” Your Skill ID” (AVS頁面中“Your Skill ID”)à勾選” Enable trigger” à 點選”Add”。 (圖 28、29、30)
|
圖 28 |
|
圖 29 |
|
圖 30 |
-
點選”Action” à ”Upload a .zip file” à上傳” Create the Lambda function”中” 步驟 c ”檔案。(圖 31)
|
圖 31 |
-
點選” Runtime settings” à “Edit” à更改”Handler”為lambda.lambda_handlerà點選“Save”。 (圖 32)
|
圖 32 |
-
記住”Lambda ARN”,之後在Configure skill時會用到。 (圖 33)
|
圖 33 |
-
開始撰寫Lambda Function。此時會看到lambda.py檔案內已內建許多虛擬裝置範例,可供使用者進行參考修改。要控制實體裝置必須在Lambda Function中設定client位置、client.get_thing_shadow、client.publish等,這樣與AWS IoT core連接。在”Qualcomm Home Hub 100控制Alexa IoT裝置流程架構”Demo中智能鎖與燈即是利用此範例建立。 (圖 34、35、36)
|
圖 34 |
|
圖 35 |
|
圖 36 |
i. 在這裡可以參考"Smart Home Skill APIs”來建置使用者獨一無二的Alexa體驗,可參考網址https://developer.amazon.com/en-US/docs/alexa/custom-skills/ask-soundlibrary.html。(圖 37)
|
圖 37 |
-
Configure skill
-
回到 https://developer.amazon.com/home.html àAlexaà Alexa Skills Kità使用者創建之skill。
-
填入Lambda ARN 至 ” Default endpoint” à點選”Save”。 (圖 38)
|
圖 38 |
-
點選”Account Linking”輸入以下對應資訊並記下:(圖 39)
Authorization URI = https://www.amazon.com/ap/oa à
Your Client ID = LWA Client IDà
Your Client Secret = LWA Client Secretà
Scope = profileà
Access Token URI=https://api.amazon.com/auth/o2/tokenà
Client Authentication Scheme = HTTP Basic
|
圖 39 |
-
複製”Alexa Redirect URLs”網址à LWA “Web Setting” 中 “Allowed Return URLs” à點選”Save”。 (圖 40、41)
|
圖 40 |
|
圖 41 |
-
執行範例
在執行範例前必須先確保使用者有與該帳戶連接的Alexa設備,在完成以下步驟後即可利用Qualcomm Home Hub 100 進行控制。
-
進入https://alexa.amazon.com 網頁。
-
點選”Skill” à“Your Skills ” à選擇自訂Skill,右下角會顯示”devUS” à點選”Enable” à登陸Amazon帳號à點選”DISCOVER DEVICES”。 (圖42、43、44)
|
圖 42 |
|
圖 43 |
|
圖 44 |
-
點選”Smart Home” à “Device”,此時會看到許多裝置顯示在列表中。在此範例這些裝置是屬於虛擬裝置,透過Lambda規則中建立。(圖 45)
|
圖 45 |
此時就可以透過Qualcomm Home Hub 100利用Alexa控制其他支援Alexa裝置, 並可以進入https://console.aws.amazon.com/console/home à Services àCloudWatch看到裝置執行Log。(圖46、47)
|
圖 46 |
|
圖 47 |
-
結語
評論