本帖最后由 alei643 于 2018-6-8 14:44 编辑
导航帖:
Node Red 系列教程之一 初识Node Red
Node Red系列教程之二 使用Node Red建立第一个Flow
Node Red系列教程之三 实现Node Red与Home Assistant之间的联动
正文开始之前,先报个喜讯,Home Assistant官方论坛已经开设了Node Red板块,传送门点这里,虽然帖子没几个,但含金量很高,大家可以观摩下国外的大神HA自动化Flow是怎么写的。
写了好几篇与Node Red有关的教程,其实一直还都是停留在入门的基础上,因为咱对编程这项工作不入行,更深层次的东西我这两下子挖掘不出来啊。我也是想着研究点高深的东西,比如研究了半天HA官方关于REST API的文档,就跟看天书似的,好在早就有大神专门为我们这类小白开发了一些终极插件和终极应用,我们白拿白用就OK了。比如Node Red的HA插件,安卓神器Tasker。
要论接触HA的时间,我也算的上是个骨灰粉了,如果要去真正计算下每天HA的使用频次,恐怕十天半月都不会打开一次。并不是因为HA接入的设备少,实现的功能少,一是使用习惯的问题,二是自动化的体现。倒是Node Red几乎是我每隔两三天必用的软件之一,现在我已将HA中全部的自动化转移到了Node Red当中。
为啥要放弃HA的自动化?
每次新增或修改代码,都需要重启HA的服务,哪怕是敲错一个字符,少一个标点符号有还得重复前面的这个过程。编程和调试的时间是非常漫长而痛苦的。
程序代码和流程图哪个更易读?这个问题就不用讨论了吧。
第三方的API调用更加灵活,不用必须依赖于HA的custom_components组件,只需要略微懂一点Javascript和http之类的相关知识。扩展性和灵活性决定自动化的流程是否能够更加完善。
闲言少叙,看看我们用Node Red还能做什么。
Tasker这款神器我就不多说了,论坛里也有几个与Tasker相关的帖子,今天要介绍是如何使用Tasker配合Node Red简化HA中各类虚拟按键的操作。时间关系,在这里我仅以一个我日常使用的场景做一个教学示例,更深层次的发掘和应用得靠大家了。
需要预先准备的工具:
1、一部安卓手机,需要安装Tasker和插件App Factory,Tasker和App Factory版本必须保持一致,目前最新版本5.1.3b
2、已经搭建好Homeassistant和Node Red运行环境
应用场景:
我家小区有可视对讲门禁系统,在前期通过改造将门禁系统也接入到了HA中,当然实现的功能比较简单,仅仅是开锁。应用这功能为了避免忘记携带门禁卡,另外在家里没人的时候爸爸妈妈来家里的时候也可以远程开锁。改造完之后,发现使用远程开锁这个功能还是比较频繁的,但是比较不能忍受的是每次开锁都需要先用手机打开浏览器,打开HA,然后再去找门禁的开关。虽然可以通过Chrome浏览器自建HA的快捷方式到手机的主屏幕上,但跟IPhone比起来,这体验太不好了。
第一个解决方案是用Node Red做了一个自动化流程,通过HTTP节点触发HA的Call Service打开门禁,再利用Chrome浏览器在手机主屏幕上新建一个快捷方式,网址指向Node Red中HTTP节点中的地址。这样每次需要打开门禁时,解锁手机,点一下快捷方式就可以了,比以前省略好几个操作步骤。
第二个解决方案利用Tasker配合App Factory插件,将Node Red中HTTP节点的地址封装到APP中,借助手机的锁屏手势功能,手机锁屏时通过手势直接打开门禁APP,连解锁手机的步骤也省了。
操作步骤:
1、新建一个Tasker任务,这里取名“门禁”,点“√”转到任务操作界面
2、在任务操作界面,点击右下角的“+”,添加操作
3、搜索“get”,找到HTTP GET 操作,并点击进入HTTP GET的操作修改界面。
4、在“服务器:端口”中填写Node Red中门禁流程中Http节点的访问地址。填写完毕后,点击左上角的返回按钮,返回任务编辑操作界面。
6、在“任务编辑”界面,点击屏幕下方左边的“播放按钮”可以测试链接是否能够正常访问,然后点击屏幕下方中间的“魔方”图样的按钮,选择应用程序图标,选择完毕后,在“任务编辑”界面点击左上角的“左箭头”图标返回“任务”界面
7、选中当前的任务,然后点击屏幕右上角的“三个小点”,选择“导出”,然后选择“作为应用”。
8、选中“Auto-Install”选项,等待APP生产完成,然后进行安装。
等待软件安装成功之后,手机端设置好手势指定打开对应的APP程序,就可以继续装B了。另外tasker还有更好好玩功能的功能,大家自己去发掘吧。
PS:Node Red 门禁流程的代码:
|