『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 98181|回复: 148

[教程系列] [docker]使用node-red实现自动化

  [复制链接]

9

主题

48

帖子

508

积分

超级版主

Rank: 8Rank: 8

积分
508
金钱
450
HASS币
0

教程狂人卓越贡献突出贡献

发表于 2017-5-20 00:48:45 | 显示全部楼层 |阅读模式
HASS的自动化控制使用YAML来配置, 虽然没有尝试过, 但是总觉得一些复杂的自动化程序这样子来配置一定是心有余而力不足的.
但是还好HASS提供了websocket和RESTful的API为玩家提供了足够地条件完成复杂的自动化.
这个帖子就介绍如何用node-red来实现HASS的自动化.

node-red是IBM开发的图形化编程工具, 最基础的概念有两个: node, 也就是实现一个小功能的组件, flow, 也就是自动化流程.
node-red也有很多IoT的node和flow, 也就是也可以完全脱离HASS完成一些自动化功能.

node-red的安装:
安装node-red可以根据node-red官网的流程去做. 我是使用docker来安装的.
1.  docker pull nodered/node-red-docker
2.  docker run --net=host --name mynodered -v LOCAL_NODERED_CONFIG_PATH:/data nodered/node-red-docker
3.  访问IP_ADDR:1880 就可以看到node-red页面.

node-red嵌入到HASS
在HASS的配置configuration.yaml中加入这段就可以将node-red嵌入到HASS的侧边栏中
panel_iframe:
  node_red:
    title: node_red
    icon: mdi:vector-polyline
    url: [url]http://192.168.1.198:1880/[/url]


体验node-red
使用的时候可以将左侧的node拖拽到中间的"绘图"区域, 然后用线将不同node连接起来就实现了消息的传递.
不同node之间传递的都是msg.
最后完成后点击Deploy完成并保存, 自己设计的自动化流程就完成了.

常用的node
1. inject 我用这个来实现循环, 不断的触发流程.
2. http 用这个节点来读RESTful API
3. switch 用这个实现条件判断
4. change 用这个实现设置变量.
5. delay 延时
6. debug 调试

subflow
node red还支持用一组node组合一个子flow, 相当于子函数一样.

分享和导入flow
node-red支持将flow转为字符串, 然后分方便的分享和导入flow.

例子
我自己用node-red实现了一个洗手间灯的控制, 这里用到了人体传感器和洗手间门的传感器.
之前使用HASS的自动化实现控制洗手间灯, 会遇到这样的问题:
1. 人在洗手间移动不是很大, 经常会由于移动过小, 人体传感器有时没有识别到人体而关灯. 一会儿识别到了又开灯, 导致灯开关频繁.
2. 离开洗手间的时候手动关灯, 但是人在走出去的时候由于正好赶上人体传感器上传数据, 灯又打开了.
用node-red实现就是希望能够通过一些条件, 来解决诸如上述体验不是很好的地方.

实例洗手间灯自动化

实例洗手间灯自动化


评分

参与人数 6金钱 +27 收起 理由
10670315 + 5 高手,这是高手!
cym9007 + 2 感谢楼主分享!
zin + 2 论坛有你更精彩!
姚远 + 8 墙都不扶,就服楼主!
lidicn + 5 很给力!
Milo + 5 很给力!

查看全部评分

回复

使用道具 举报

9

主题

48

帖子

508

积分

超级版主

Rank: 8Rank: 8

积分
508
金钱
450
HASS币
0

教程狂人卓越贡献突出贡献

 楼主| 发表于 2017-5-20 00:53:45 | 显示全部楼层
由于帖子字数显示, 我把可以import的字符串保存在笔记中, 可通过该链接访问, 如果需要导入, 全部复制的内容, 在node-red中导入即可

评分

参与人数 2金钱 +13 收起 理由
summ99111 + 8 论坛有你更精彩!
+ 5 链接这么隐秘:)

查看全部评分

回复

使用道具 举报

1

主题

190

帖子

1702

积分

金牌会员

Rank: 6Rank: 6

积分
1702
金钱
1512
HASS币
0
发表于 2017-5-20 01:35:23 | 显示全部楼层
这个厉害了,可以学,谢谢
回复

使用道具 举报

25

主题

687

帖子

3630

积分

论坛元老

Rank: 8Rank: 8

积分
3630
金钱
2937
HASS币
219

活跃会员

发表于 2017-5-20 06:51:25 | 显示全部楼层
看起来好厉害
回复

使用道具 举报

1

主题

77

帖子

248

积分

中级会员

Rank: 3Rank: 3

积分
248
金钱
171
HASS币
0
发表于 2017-5-20 07:55:52 来自手机 | 显示全部楼层
感谢分享
回复

使用道具 举报

30

主题

997

帖子

4147

积分

论坛元老

Rank: 8Rank: 8

积分
4147
金钱
3145
HASS币
0

活跃会员

发表于 2017-5-20 08:52:35 来自手机 | 显示全部楼层
谢谢分享,学习中
回复

使用道具 举报

1

主题

281

帖子

1224

积分

金牌会员

Rank: 6Rank: 6

积分
1224
金钱
942
HASS币
0
发表于 2017-5-20 11:31:07 来自手机 | 显示全部楼层
看起来好厉害
回复

使用道具 举报

23

主题

656

帖子

4605

积分

元老级技术达人

积分
4605
金钱
3934
HASS币
30

教程狂人

QQ
发表于 2017-5-20 12:31:39 | 显示全部楼层
好贴,支持一下LZ
回复

使用道具 举报

3

主题

95

帖子

669

积分

高级会员

Rank: 4

积分
669
金钱
574
HASS币
0
发表于 2017-5-20 14:45:14 | 显示全部楼层
双击666666666
回复

使用道具 举报

1

主题

190

帖子

1702

积分

金牌会员

Rank: 6Rank: 6

积分
1702
金钱
1512
HASS币
0
发表于 2017-5-20 15:58:27 | 显示全部楼层
node-red也架好了,裤子也脱了,但发现啥也不会。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-22 03:16 , Processed in 0.186309 second(s), 37 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表