![](/img/trans.png)
[英]How to Set Up Account Linking for a Skill using Alexa API from Amazon?
[英]How can I access a local API using Amazon Alexa
我打算為亞馬遜Alexa構建一套技能,它將與我家中的RaspberryPi上運行的自定義軟件套件集成。
我正在努力弄清楚如何讓Echo / Dot本身直接對raspberry pi進行API調用 - 無需通過互聯網,因為目標設備將只有內聯網連接 - 它將能夠接收來自本地網絡上的設備的命令,但無法通過世界訪問。
根據我的閱讀,典型的工作流程如下
Echo -> Alexa Service -> Lambda
Lambda函數將向智能家居設備返回一大塊數據; 使用此返回值
是否有可能,在收到lambda的響應后,如何讓Alexa設備本身向本地網絡上的設備發出API請求?
我有同樣的問題,我的解決方案是使用SQS作為消息總線,以便我的RaspberryPi不需要從互聯網訪問。
Echo <-> Alexa Service <-> Lambda -> SQS -> RaspberryPi
A |
+------ SQS <-----+
這個工作正常,只要:
這樣做的好處是:
您可以嘗試使用AWS IoT:
Echo <-> Alexa Service <-> Lambda <-> IoT <-> RaspberryPi
我雖然將這個用於我的Alexa RasberryPi項目,但放棄了這個想法,因為AWS IoT不提供永久免費套餐。 但免費等級不再是一個問題,因為亞馬遜現在提供Alexa AWS促銷信用。 https://developer.amazon.com/alexa-skills-kit/alexa-aws-credits
一種可能性是在rPi上安裝node-red。 Node-red有插件( https://flows.nodered.org/node/node-red-contrib-alexa-local )來模擬飛利浦色調,讓Alexa直接與它對話。 這是一個即時回應。 缺點是它只適用於3個命令: on
, off
, set to x %
。 適用於控制燈光,陰影和空調的軟件/設備。
不久前在這個論壇上得到了答復,我害怕告訴你情況沒有改變,因為:
Alexa基於雲,需要訪問互聯網/亞馬遜服務器才能運行,因此您無法僅在內部網中使用它而無需外部訪問。
我見過幾種解決方法。
第一種方法是我使用過的方法:我設置If This Then That(IFTTT)來偵聽來自Alexa的特定短語,然后通過Telegram安全聊天/消息服務傳輸命令,我在其中使用“聊天機器人”運行我的覆盆子PI閱讀並處理這些消息。
我最近看到的第二種方法是使用IFTTT向谷歌電子表格中添加行,樹莓派可以監視和操作。
我對這兩種方法的性能/延遲都不是特別滿意,但如果我使用類似的方法編寫自定義的Alexa服務,它至少可以消除IFTTT延遲。
您可以使用代理來實現此目的。 BST有一個工具,我目前使用那個http://docs.bespoken.tools/en/latest/commands/proxy/
因此,您可以使用本地計算機而不是使用Lambda
。
基本上它變成了Echo -> Alexa Service -> Local Machine
將npm bst安裝到本地計算機https://www.npmjs.com/package/bespoken-tools
npm install bespoken-tools --save
轉到項目index.js文件夾並運行proxy命令
bst proxy lambda index.js
這將為您提供以下網址: https://proxy.bespoken.tools?node-id=xxx-xxx-xxx-xxx-xxxxxxxx
: https://proxy.bespoken.tools?node-id=xxx-xxx-xxx-xxx-xxxxxxxx
xxx-xxx-xxx-xxx https://proxy.bespoken.tools?node-id=xxx-xxx-xxx-xxx-xxxxxxxx
現在轉到developer.amazon上的alexa技能,然后單擊以配置您的技能。
選擇您的服務端點為https,然后輸入BST打印出的URL
然后單擊“保存”,然后將本地計算機作為最終結束點。
只需使用https://ngrok.com/等服務打開到您的rPi的SSH隧道,然后將其作為您的端點或lambda進行通信。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.