我正在研究开发一个插件(可能是他们的回声专用词),这将允许我控制许多本地硬件设备。这些设备有一个简单的HTTP接口,因此需要很少的管道,但是到目前为止我所做的所有读取(我是Echo API的新手,所以还不是那么多)表明你的代码是远程执行的在'云'中。在这种情况下,它将努力访问本地资源而不使其面向Web(这是不可能的)。
作为一个例子,我想写一些东西,当你说“打开厨房灯”时。 echo框对本地控制器进行http调用,即http://192.168.0.4/Light?room=kitchen&state=on
这是否可行,如果有的话,我可以使用任何简单的例子。
由于
答案 0 :(得分:3)
他们被称为技能。
首先是坏消息:你所说的Echo不会与本地网络上的服务进行通信。
人们这样做的方法是使用Bespoken Tools或ngrok从AWS lambda技能向您家中的服务器代理命令。该服务器调用设备。
以下是Ruby的示例:Alexa HUE
如果您有更多问题,请与我们联系。
答案 1 :(得分: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经纪人--->我的设备
Node-Red和MQTT(Mosquitto)都在Pi上运行,这就是我的" hub"。我的设备各不相同,因此有些是Sonoff运行Tasmoto,其他人则使用我自己构建的定制NodeMCU板。一旦你运行了Node-red,就可以使用几乎任何接口让它与任何设备进行通信。但是,对于HA而言,MQTT是最好的路径,而不是HTTP。
对于远程访问,我使用节点红色的Telegram模块来侦听来自我创建的Telegram机器人的命令。这意味着我可以坐在火车上并在#34;上打开加热器。