amazon echo dot

组合您最喜爱的两个小工具!

我们继续和亚历克萨玩这一次,我想创建一个技能,使用兼容的设备(例如一个树莓派3)。在这里你可以看到亚历克萨人为我们提供了的文件和例子。基本上,我们需要在控制台中创建一个新的产品/Alexa小工具。它给了我们一个亚马逊和亚历克萨小工具秘密。

您可能还喜欢:
智能家居教程:ESP8266、Alexa 和亚马逊回声

然后,我们需要在我们的树莓派中安装SDK(它安装了几个 python 库)。然后,我们可以创建我们的小工具脚本运行在我们的树莓派,使用亚马逊Id和alexaGadget秘密。我们可以听几个亚历克萨事件。例如:当我们说唤醒词,一个计时器,一个警报,我们也可以创建我们的自定义事件。

我要创建一个技能,让我说类似的东西:”Alexa,使用设备演示和设置颜色绿色”或”Alexa,使用设备演示和设置颜色为红色”,我会把这个颜色在引导矩阵,我有(一个树莓派感知帽子)

这是 python 脚本:

Python

52
1
导入日志记录
2
导入系统
3
agt 进口 AlexaGadget

5
sense_hat导入SenseHat
6

7
日志记录基本Config(=sys.粗壮级别=日志记录调试
8
记录器日志记录.获取记录__name__
9

10
感哈特()
11
清除()

12

13
红色= =25500|
14
绿色= =02550|
15
蓝色=00255|
16
黄色= =2552550|
17
黑色=000|
18

19
on_alexa_gadget_statelistener_stateupdate self指令):

21
指令中的状态。有效负载状态
22
如果状态名称"唤醒词":
23
清除()
24
如果状态"活动":
25
show_message"亚历克萨"text_colour=蓝色
26

27
感。set_pixels((*颜色 = = 64)

29

30
on_custom_gonzalo123_setcolor指令):
31
有效负载json.负载指令有效负载解码"utf-8"
32
颜色有效负载="颜色"|
33

34
如果颜色为"红色":
35
信息(“打开红色显示屏”

36
自我set_color_to红色
37

38
如果颜色为"绿色":
39
记录器.信息"打开绿色显示屏"
40
自我set_color_to绿色
41

42
如果颜色为"黄色":
43
信息(“打开黄色显示屏”

44
自我set_color_to黄色
45

46
如果颜色为"黑色":
47
记录器.信息"打开黄色显示屏"
48
自我set_color_to黑色
49

50

51
小工具()。()

在这里,我们的小工具的 ini 文件:

Python

xxxxxxxxx
1
1
[小工具设置]
2
亚历克萨小工具秘密= my_alexaGadgetSecret

4

5
[小工具功能]
6
亚历克萨.小工具.状态侦听器1.0-唤醒词
7
自定义.贡萨洛1231.0

惠特这个ini文件,我说,我的小工具将触发一个函数,当唤醒字已经说,并与我的自定义事件”自定义.gonzalo123″。

这就是技能:

Python

xxxxxxxxx
1
40
1
康斯特·亚历克萨要求'问-sdk'
2

3

4
康斯特响应拦截器要求'./拦截器/响应拦截器
5
康斯特定位拦截器需要'./拦截器/本地化拦截器
6
康斯特小工具拦截器需要'./拦截器/小工具拦截器'
7

8
康斯特启动请求处理程序要求'./处理程序/启动请求处理程序)
9
康斯特颜色处理程序需要'./处理程序/颜色处理程序'
10

11
康斯特取消和停止意向处理程序需要'./处理程序/取消和停止意向处理程序'
12
康斯特会话已处理请求处理程序要求'./处理程序/会话已处理请求处理程序'
13
康斯特回退处理程序需要'./处理程序/回退处理程序)
14
const错误处理程序需要'./处理程序/错误处理程序'
15

16
技能
17

18
出口。处理程序=异步事件上下文) =>

19
如果技能){
20
技能亚历克萨技能建造者.自定义()。
21
添加请求拦截器
22
请求拦截器
23
响应拦截器
24
本地化拦截器
25

27
添加请求处理程序
28
启动请求处理程序
29
颜色汉德勒
30
帮助意向处理程序
31
取消和停止意向处理程序
32
会话已结束请求处理程序
33
回退处理程序
34
错误处理程序。

36
创建()
37
  }
38

39
返回等待技能调用事件上下文
40
}

这里很重要的一点是小工具拦截器。此拦截器从请求中查找终结点Id并将其追加到会话。此终结点存在,因为我们已创建了产品/Alexa 小工具,并且python 脚本也在设备上运行。如果终结点不存在,也许我们的技能必须对用户说”未找到小工具”。请在连接小工具后重试。

Python

12
1
constutils需要(../lib/utils)
2

3
康斯特小工具拦截器[ ]
4
康斯特终结点 Id ]等待使用获取端点ID从连接端点处理程序输入

6
如果端点 Id) |
7
乌蒂尔斯.追加会话处理程序输入"终结点Id"终结点 IdId )
8
  }
9
  }
10
}
11

12
模块导出小工具拦截器

最后,用于触发自定义事件的处理程序:

Python

xxxxxxxxx
1
49
1

2
constutils需要(../lib/utils)
3

4
const生成 LED 指令= (端点 Id颜色) => |
5
返回|
6
键入"自定义接口控制器.发送指令",
7
标题: |
8
名称"设置颜色"
9

10
  },
11
端点: |
12
终结点 Id终结点ID
13
  },
14
有效负载: |
15
颜色
16
  }
17
  }
18
斯特颜色处理程序]

21
可以处理处理程序输入) |
22
返回处理程序输入请求信封请求键入"意向请求"
23
&处理程序输入请求信封请求意图名称"颜色意图"
24
  },
25
句柄处理程序输入) |
26
康斯特请求属性处理程序输入属性管理器获取请求属性()
27
t(“SKILL_NAME”

28

29
康斯特终结点 Id使用获取 EndpointId 从会话处理程序输入
30
如果端点 ID){
31
日志错误"终结点"错误
32
返回处理程序输入响应构建器.
33
说话错误)。
34

36

37
康斯特颜色处理程序输入请求信封请求意图插槽["颜色"]
38
日志信息"颜色"颜色
39
日志信息"端点 Id"终结点 Id
40

41
返回处理程序输入响应构建器.
42
所选颜色 $=颜色*”。

43
与简单卡卡标题颜色).
44
添加指令生成 LED 指令端点 Id颜色)。
45
获取响应()
46
  }
47
}
48

49
模块导出颜色处理程序

这里有一个视频与工作示例:

我的 GitHub中的源代码 。

进一步阅读

在头脑中开发具有弹簧引导 REST 服务的 Alexa 技能

与亚马逊亚历克萨窃听

发展位置感知 Alexa 技能

Comments are closed.