我使用亚马逊的Echo Dot,我有几个Echo设备。我们假设这是设置:
Echo Dot 1
) - > Light 1
Echo Dot 2
) - > Light 2
我已经设置了Smart Home Skill来开灯,我可以通过这样的话来打开/关闭灯光:
- " Alexa,打开灯1"
- " Alexa,打开灯2"
到目前为止,这么好。现在,我想不要告诉Alexa" light 1"或者"亮2",但检测哪个Echo设备(Echo Dot 1
或Echo Dot 2
)检测到话语并触发技能,所以我可以这样说:
- " Alexa,打开灯"
..然后通过查看激活了哪个Echo Dot来决定我们是在1号房间还是2号房间,并打开/关闭匹配灯。
由于必须预先发现设备,并且如果没有找到指定名称的设备,该技能将无法触发,我认为这将涉及返回某种类型的虚拟" Discover端点中的设备,对Light 1
和Light 2
进行建模,并使用触发事件的Echo Dot的ID来确定它是哪一个。
但是,在调试调用的AWS Lambda函数时,我找不到有关哪个特定Echo设备被激活的任何指示。
这可能吗?如果没有,您是否知道有任何其他方法可以实现相同的用户体验?
答案 0 :(得分:2)
不,遗憾的是这是不可能的。我们很多人都希望这样......
在this answer from Amazon中(粘贴此处以进行访问,稍微重新格式化):
在帐户上有多个回声,自定义技能中是否有办法确定请求来自的回音?
回答[亚马逊] Levon @ Amazon·7月11日上午11:32
...
很遗憾,目前不支持该用例。
答案 1 :(得分:1)
可能的hacky解决方案......让每个点都有自己的亚马逊帐户,并将每个点与他们自己的lambda函数变体相关联。所以Dot A使用lambda A代表房间A而B代表使用lambda B代表B房。我看到的一个问题是他们不能很好地在一起,因为他们在不同的帐户上,你不会得到你的主要订阅亚马逊音乐等。但他们不无论如何,因为我听说过这样可能不是什么大问题。如果我为主要客厅的其他房间购买更多东西,我可能最终会为我的次要点做些什么。