3

我正在考虑开发一个插件(可能是他们的回声特定词),它将允许我控制许多本地硬件设备。这些设备有一个简单的 HTTP 接口,因此需要很少的管道,但是到目前为止我所做的所有阅读(我是 Echo API 的新手,所以还没有那么多)表明您的代码可以远程执行在“云”中。在这种情况下,如果不使它们面向 Web(这是不可能的),它将难以访问本地资源。

举个例子,当你说“打开厨房的灯”时,我想写一些东西。echo 框对本地控制器进行 http 调用,即http://192.168.0.4/Light?room=kitchen&state=on

这可能吗,如果是的话,有没有关于我工作的简单例子。

谢谢

4

2 回答 2

3

它们被称为技能。

首先是坏消息:您所说的 Echo 不会与您本地网络上的服务通信。

人们这样做的方式是使用Bespoken Toolsngrok从 AWS lambda 技能将命令代理回您家中的服务器。该服务器对设备进行调用。

这是 Ruby 的一个示例:Alexa HUE

如果您有更多问题,请告诉我。

于 2016-11-25T23:43:20.660 回答
0

是的,这可能的。请参阅https://www.npmjs.com/package/node-red-contrib-alexa-local以获取 node-red 插件,该插件允许 Alexa 通过模拟 Philips Hue 来控制本地设备。

无需云技能!!

我的本地设置有灯、加热器和我的前门锁,都由 Alexa 控制。关键是 Alexa 已经有一个内置的 HA 技能可以理解,例如 Philips Hue。因此,只要您有模仿飞利浦 Hue 的东西,您就一切就绪。我链接的节点红色技能就是这样做的。

所以,我的设置是: -

Alexa ---> Node-Red(使用我链接到的模块)---> MQTT Broker ---> 我的设备

Node-Red 和 MQTT (Mosquitto) 都在 Pi 上运行,这就是我的“中心”。我的设备各不相同,所以有些是 Sonoff 运行 Tasmoto,有些使用我构建的自定义 NodeMCU 板。一旦你运行了 Node-red,你就可以让它与几乎任何使用任何接口的设备通信。但是,对于 HA,MQTT 无疑是最好的选择,而不是 HTTP。

对于远程访问,我使用 node-red 中的 Telegram 模块来侦听来自我创建的 Telegram 机器人的命令。这意味着我可以坐在火车上输入“heater on”。

于 2017-12-05T12:03:26.560 回答