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

 找回密码
 立即注册
查看: 2773|回复: 7

[教程系列] [教程系列] 系列教程《HA+NR流程控制》之三:Aqara和HA+NR通讯

[复制链接]

6

主题

36

帖子

562

积分

高级会员

Rank: 4

积分
562
金钱
526
HASS币
0
发表于 2023-5-21 21:54:38 | 显示全部楼层 |阅读模式
这是一个系列教程:
* 之一:等待无人状态持续x秒* 之二:满足多个条件后关闭灯光

去年装修后开始使用HA,经过一段时间调整,目前各项配置属于比较稳定、便捷的状态。其中使用了一些技巧很少被提及,特别是对新人来说难以找到这方面的资料。所以用《HA+NR流程控制》为标题总结分享一下。每篇帖子单独分享一个技巧。

这个系列将给读者带来的帮助:
  • 熟悉NR常用排名在10以后的节点
  • 熟悉多种不同复杂度的范式,并运用其实现更强大的智能家居控制流
  • 了解一些使用HA+NR接入/控制外围设备的例子
阅读需要具备的背景知识:
  • 运行和维护Home Assistant系统;
  • 以任何方式安装了Node-RED,并将Node-RED接入Home Assistant系统;
  • 熟悉Home Assistant中常用基本概念:如Integration, Device, Service, Entity;
  • 在Node-RED中编写过Flow,了解NR内置以及node-red-contrib-home-assistant-websocket插件中常用节点
环境:Home Assistant 20230309.1 + Node-RED 3.0.1



-----------------------------------------------以下为正文-----------------------------------------------


实际应用场景 - Aqara和HA+NR通讯


这个场景我自己用得很少 -- 绝大部分设备都可以接入HA直接控制,主要就是同步门锁的离家、室外开门信息。
基本原理,之前论坛里有朋友提到过,就是利用网关小夜灯的亮度字段。如果用Homekit Controller反接,也就是形如light.aqara_hub_m1s_xxxx_lightbulb的Entity。

1. Aqara设置如下图
71e11f13f7da02defcb743b67879df6.jpg

2. Node-RED中的流程
微信截图_20230521210130.png
流程解释
1. 使用event: state节点监听网关灯灯状态变化,然后分两条分支处理,一条负责把网关小夜灯重置为关闭状态以便下次同步,另一条是我们实际需要的业务逻辑。
2. event: state节点建议取消Ignore state change event下的所有选项
微信截图_20230521210859.png
3. 重置网关小夜灯为关闭状态,有一个很重要的小技巧:关闭小夜灯分支 -> 如果小夜灯亮度不等于255 -> 把小夜灯亮度调为255 -> 关闭小夜灯这真的可以避免很多奇怪的问题。
4. 流程其他部分都很直观,可以下载自己看 lesson_3.json (7.2 KB, 下载次数: 16)

顺便介绍一下JSONata。也就是我在switch节点中写的表达式:
微信截图_20230521213014.png
这个 J: expression 选项就是JSONata。在我的实践中基本只有switch、change节点会用到JSONata,特别是需要根据两个及以上字段来选择流程分支的时候,使用JSONata比其他方式可能稍微直观一点。JSONata完整的能力是比较强的,不过一般也用到and or的组合,记得把msg当作节点传入消息的根对象即可。例如
msg.data.new_state.state and
msg.data.new_state.attributes.brightness != 255 and (
    msg.data.new_state.state != msg.data.old_state.state or
    msg.data.new_state.attributes.brightness != msg.data.old_state.attributes.brightness
)


本期水了一期,接下来几篇循序渐进的介绍状态机的使用。先从使用两个motion_sensor判别行走方向开始吧。


评分

参与人数 2金钱 +15 收起 理由
kei81131 + 5 论坛有你更精彩!
隔壁的王叔叔 + 10 感谢楼主分享!

查看全部评分

回复

使用道具 举报

23

主题

271

帖子

1683

积分

金牌会员

Rank: 6Rank: 6

积分
1683
金钱
1412
HASS币
0
发表于 2023-5-23 20:18:52 | 显示全部楼层
支持一下楼主
回复

使用道具 举报

10

主题

112

帖子

584

积分

高级会员

Rank: 4

积分
584
金钱
472
HASS币
0
发表于 2023-5-24 18:37:15 | 显示全部楼层
顶一下技术流,多出教程
回复

使用道具 举报

6

主题

259

帖子

2996

积分

金牌会员

Rank: 6Rank: 6

积分
2996
金钱
2737
HASS币
0
发表于 2023-5-25 22:55:28 | 显示全部楼层
等大神教程
回复

使用道具 举报

0

主题

31

帖子

709

积分

高级会员

Rank: 4

积分
709
金钱
678
HASS币
0
发表于 2023-5-29 01:25:41 | 显示全部楼层
來這和大神學習下
回复

使用道具 举报

1

主题

26

帖子

168

积分

注册会员

Rank: 2

积分
168
金钱
142
HASS币
0
发表于 2023-6-1 09:11:44 | 显示全部楼层
正在学习中,期待下一课了
回复

使用道具 举报

2

主题

56

帖子

789

积分

高级会员

Rank: 4

积分
789
金钱
733
HASS币
0
发表于 2023-6-1 10:58:21 | 显示全部楼层
本帖最后由 kei81131 于 2023-6-1 15:50 编辑

謝謝分享
回复

使用道具 举报

1

主题

22

帖子

100

积分

注册会员

Rank: 2

积分
100
金钱
78
HASS币
0
发表于 2023-8-26 23:43:41 | 显示全部楼层
好教程,谢谢
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-22 13:21 , Processed in 0.101833 second(s), 33 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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