0

我已經建立了一個當前許多客戶正在使用的家庭自動化系統。家庭自動化系統包含一箇中央集線器,該集線器始終連接到雲服務器,並控制各種節點設備。我還開發了一個移動應用程序,用於遠程控制家庭設備。如何將亞馬遜回聲整合到家庭自動化系統中。

現在我想爲我的系統添加語音控制功能。我認爲亞馬遜Alexa是我的需求的完美選擇,因爲我的大多數客戶擁有Alexa。我將概述我想要實施的內容。

假設客戶正在給Alexa發出語音命令,如Alexa, turn on living room's floor light。收到這樣的命令後,Alexa應該通過API向我的雲服務器發送POST請求,參數爲:Turn On, Living Room, Floor Light。服務器向Alexa提供API響應,如Turned on floor light of living room,應該在Alexa上播放。

所以這裏是我的問題。如何配置Alexa來調用API和回放API響應?以及如何爲擁有回聲和家庭自動化系統的每個用戶提供此功能?

回答

1

您將需要使用Alexa智能家居技能API構建Alexa技能。

API是專門爲您正在嘗試做的事情而設計的。

所有血淋淋的細節可以在這裏找到:

https://developer.amazon.com/docs/smarthome/smart-home-skill-api-message-reference.html

簡短的說就是:

  1. 您將創建一個AWS拉姆達是被用Alexa
  2. 第一被呼叫打電話給你的Lambda會得到一個「發現」電話。您將返回所有家庭自動化設備的列表,以及您想要引用它們的名稱(例如Device Id = 7被稱爲「Floor Light」)。
  3. 當你說「Alexa,打開地板燈」時,Alexa會稱你的Lambda爲「打開設備ID#7」。然後,您需要到達您的家中,並盡一切可能使該設備從關閉變爲開啓。
+0

我希望用戶在使用服務之前進行身份驗證。我如何提示用戶使用Alexa登錄到我的系統? –

1

我實際上做了一個SDK,這有助於簡化這個過程on GitHub。它逐步引導您如何使用套件。祝您好運,如果您有任何問題,請點擊。

+0

此SDK使用亞馬遜物聯網。我沒有使用 –

+0

@alternativeony這是正確的,我可以問你爲什麼反對AWS IoT? –

1

我同意tig;一個Alexa智能家居技能是要走的路。

您需要決定如何驗證用戶身份。如果您的服務器已經提供了OAuth2,那麼您可以在安裝Alexa技能時使用帳戶鏈接對用戶進行身份驗證。

Alexa智能家居爲您處理所有對話。您只需公開功能:endpointId將設備標識爲您的代碼(即「lrfloor」),friendlyName是Alexa將響應的內容(例如「客廳地板燈」)。然後Alexa處理「Alexa,打開...」等

請注意,亞馬遜最近宣佈了智能家庭API的V3,所以請確保您看到的任何教程或示例都支持新的API,而不是較舊的V2。這些API是非常不同的,你可能不想投入大量的時間來學習將被棄用的API。