0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何使用homeassantant软件创建自定义技能以在树莓派上操作GPIO

454398 来源:网络整理 作者:网络整理 2019-12-11 16:06 次阅读

步骤1:设置Homeassistant .yaml文件

您需要转到文件的HTTP部分,而与password部分不同的是,并为homeassistant实例创建密码。

然后,您需要将alexa部分添加到您的homeassantant配置yaml文件中。检查我的其他Instructables来配置homeassistant以获取更多信息

在文件中,您需要拖放到文件底部并添加以下内容:

Alexa

Intents:

ActivateSceneIntent:

动作:

服务:scene.turn_on template:

entity_id:场景。{{Scene | replace(“”,“ _”)}}

语音:

类型:plaintext

文本:OK

现在,您需要设置Scene,以便可以打开和关闭内容。因此,在此文本输入之后,您将添加以下内容(这是我的示例,我将名称“ test”命名为您可以选择自己的名字)

场景:

-名称:Test_light_on

实体:

Switch.TestLED1:开

-名称:Test_light_off

实体:

Switch.TestLed1:关

现在,您将需要添加GPIO部分,以便可以选择要分配的GPIO引脚。要添加,将放置以下内容(这仍然是我的示例,您可以随时更改GPIO编号)

开关:

-平台:rpi_gpio

端口

11:TestLED1

添加这些行以保存.yaml文件并重新启动homeassistant。

步骤2:创建技能

您首先需要在Amazon中使用您的开发人员帐户。

登录后,您需要转到developer.amazon.com,选择alexa,然后选择alexa技能套件。

您现在将添加新技能。

现在填写您要命名的技能和调用名称。调用名称将是您要激活技能时要说的名称。

还请注意应用程序ID,因为稍后将需要它来设置lambda函数。

现在转到交互模型并输入以下内容:

{

“意图”:[

{

“意图”:“ ActivateSceneIntent”,

“广告位”:

{

”名称”:“场景”,

“类型”:“场景”

}

}

}

现在您将添加一个插槽。

添加插槽后,您将需要输入名称“ Scene”,并在homeassistant中输入在.yaml文件中指定的名称,但不能使用下划线字符“ _”,因为当名称为时,alexa将无法正确识别它们。

例如:

测试灯打开

测试灯关闭

添加后,您需要添加语音。这就是您向Alexa讲命令的方式。我选择了以下选项:

ActivateSceneIntent Activate {Scene}

这将允许您说出“ activate”命令,然后您可以从上方说出插槽的名称,例如“ Test light on”打开

请参考以下视频进行现场演示:

第3步:路由器设置

首先,您需要转发您的路由器。为此,您首先需要查看您是否具有静态IP。对于我们大多数人来说,我们都是通过DHCP从ISP获得IP地址的。因此,如果由于某种原因与ISP断开连接,此地址可能会更改。因此,您需要使用DDNS。我们有很多服务可以做到这一点,其中之一就是duckdns。我有一个华硕路由器,所以华硕有自己的服务。在您的WAN设置下,您将找到DDNS选项卡或类似名称。从您使用的任何ddns站点获取您的网址后,您都将其输入到路由器中,然后选择要使用的ddns服务,以便您的路由器将使用您的ISP IP地址更新该ddns服务器,以防万一由于任何原因而改变

一旦设置好,您将需要将家庭辅助端口8123转发到树莓派

为此,您需要进入路由器的端口转发设置,并将tcp/udp端口8123都转发到您的树莓派的IP地址。要从树莓派获取IP地址,只需从树莓派登录到终端,然后键入ifconfig。

请访问www.portforward.com,了解如何转发品牌路由器上的端口。

设置后,您就可以开始构建lambda函数了。

步骤4:Lambda函数设置

对于HTTPS设置,我使用了Amazon aws的lambda函数。因此,请转到console.aws.amazon.com并创建一个帐户。

创建aws帐户后,您将转到所有服务,然后在“计算机”部分下选择lambda

选择创建新的lambda函数。 br》您将在以下网址上找到的代码添加到lambda函数的代码部分:

https://community.home-assistant.io/t/aws-lambda-proxy-custom-alexa-skill -当您不拥有-https/5230

添加后,您将需要更改以下部分:

‘amzn1.ask.skill.xxxx-xxxx-xxxx-xxxx-xxxx-xxxxxx’更改为我们在第2步中讨论过的亚马逊开发人员技能的应用程序ID。

http://xxxxxxxx:8123/api/alexa?api_password = pas将需要更新为您的ddns网址和您创建的密码对于设置1中的homeassantant,在配置选项卡下,您需要确保运行时为node.js处理程序为index.handler并且角色将为现有角色。在现有角色下,我只是将其命名为mine lmabda_basic_execution。

为了说明起见,我将其标记为automatic home

将内存更改为128 MB,并将超时设置为0min 10sec

在触发条件下,它将需要具有alexa技能套件。

以下是有关如何设置所有内容的视频,供您参考:

步骤5:最终测试

您最终将需要进行全部测试。

责任编辑:wv

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件
    +关注

    关注

    69

    文章

    4970

    浏览量

    87712
  • GPIO
    +关注

    关注

    16

    文章

    1211

    浏览量

    52179
  • 树莓派
    +关注

    关注

    117

    文章

    1710

    浏览量

    105721
收藏 人收藏

    评论

    相关推荐

    GPIO树莓派中的应用

    直接控制和读取外部硬件设备的状态。 1. GPIO简介 GPIO树莓派上用于与外部世界交互的一组引脚。这些引脚可以被配置为输入或输出模式,从而实现对外部设备的控制和数据读取。
    的头像 发表于 01-09 09:41 51次阅读

    think-cell;自定义think-cell(一)

    布局介绍了如何创建自定义议程幻灯片布局,第六部分 C.6 功能区自定义 介绍了如何使用 PowerPoint 的功能区自定义选项自定义 th
    的头像 发表于 01-08 11:31 80次阅读
    think-cell;<b class='flag-5'>自定义</b>think-cell(一)

    创建自定义的基于闪存的引导加载程序(BSL)

    电子发烧友网站提供《创建自定义的基于闪存的引导加载程序(BSL).pdf》资料免费下载
    发表于 09-19 10:50 0次下载
    <b class='flag-5'>创建</b><b class='flag-5'>自定义</b>的基于闪存的引导加载程序(BSL)

    如何创建TestStand自定义步骤

    之前的课程中简单地介绍过TestStand自带的一些步骤类型,如测试、消息弹窗、赋值、标签等等,这些简单的步骤从TestStand的插入选版中就可以添加到序列中。那么使用中如果碰到需要实现更加灵活、复杂的功能,使用自带的一些步骤类型可能难以满足,这时就需要使用到
    的头像 发表于 09-11 14:46 1172次阅读
    如何<b class='flag-5'>创建</b>TestStand<b class='flag-5'>自定义</b>步骤

    NVIDIA NeMo加速并简化自定义模型开发

    如果企业希望充分发挥出 AI 的力量,就需要根据其行业需求量身定制的自定义模型。
    的头像 发表于 07-26 11:17 772次阅读
    NVIDIA NeMo加速并简化<b class='flag-5'>自定义</b>模型开发

    e203自定义指令硬件模块设计,vivado硬件里自定义指令识别为非法指令怎么解决?

    e203自定义指令硬件模块设计,修改内核,综合没错误,软件也修改工具链通过并产生verilog文件,但在vivado硬件里自定义指令识别为非法指令怎么解决
    发表于 05-28 06:40

    Chrome移动版支持自定义菜单栏功能

    在先前版本中,用户通过点击浏览器右上角的三个点按钮即可调出包含各类图标与操作的菜单。而此次更新后,Chrome新增了“自定义菜单”选项,允许用户自主控制该区域的展示内容。
    的头像 发表于 05-27 15:00 839次阅读

    HarmonyOS开发案例:【 自定义弹窗】

    基于ArkTS的声明式开发范式实现了三种不同的弹窗,第一种直接使用公共组件,后两种使用CustomDialogController实现自定义弹窗
    的头像 发表于 05-16 18:18 1391次阅读
    HarmonyOS开发案例:【 <b class='flag-5'>自定义</b>弹窗】

    TSMaster 自定义 LIN 调度表编程指导

    LIN(LocalInterconnectNetwork)协议调度表是用于LIN总线通信中的消息调度的一种机制,我们收到越来越多来自不同用户希望能够通过接口实现自定义LIN调度表的需求。所以
    的头像 发表于 05-11 08:21 702次阅读
    TSMaster <b class='flag-5'>自定义</b> LIN 调度表编程指导

    HarmonyOS实战开发-深度探索与打造个性化自定义组件

    的时候,执行build方法渲染系统组件,如果子组件为自定义组件,则创建自定义组件的实例。执行build()函数的过程中,框架会观察每个状态变量的读取状态,将保存两个map: 状态变量
    发表于 05-08 16:30

    微软Dev Home应用提供自定义文件管理支持

    据悉,Microsoft 近期发布了 0.13 版 Dev Home 应用程序,除修复多项 BUG 外,还新增了自定义文件资源管理器功能。该应用支持用户应用内创建虚拟机,利用微软旗下的 Hyper V 技术生成本地虚拟机。
    的头像 发表于 04-26 11:15 484次阅读

    LabVIEW里Ring自定义控件,其常量无法保持同步修改,如何解决

    感觉这是LabVIEW的一个大bug。在做一些自定义映射控件时,有时用Ring控件比较好,可以直接对应非递进的数字(相比于Enum控件),但是Ring控件很大的一个bug就是修改自定义控件的内容
    发表于 04-24 11:20

    HarmonyOS开发实例:【自定义Emitter】

    使用[Emitter]实现事件的订阅和发布,使用[自定义弹窗]设置广告信息。
    的头像 发表于 04-14 11:37 1018次阅读
    HarmonyOS开发实例:【<b class='flag-5'>自定义</b>Emitter】

    鸿蒙ArkUI实例:【自定义组件】

    组件是 OpenHarmony 页面最小显示单元,一个页面可由多个组件组合而成,也可只由一个组件组合而成,这些组件可以是ArkUI开发框架自带系统组件,比如 `Text` 、 `Button` 等,也可以是自定义组件,本节笔者简单介绍一下自定义组件的语法规范。
    的头像 发表于 04-08 10:17 658次阅读

    使用BGM210L创建一个自定义PCB,是否可以与GPIO引脚共享调试引脚?

    你好 我想使用 BGM210L 创建一个自定义 PCB,并在此自定义 PCB 上实现调试接口(SWCLK、SWDIO 等)。 由于只有几个引脚可用,是否可以共享用于调试的引脚和用于GPIO
    发表于 01-16 08:12