← 返回蜂巢洞察

亚历克萨和树莓派演示

组合您最喜爱的两个小工具! 我们继续和亚历克萨玩这一次,我想创建一个技能,使用兼 … Read More

Socrates

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 技能

相关文章