afkkk 发表于 2023-5-21 21:54:38

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

这是一个系列教程:
* 之一:等待无人状态持续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设置如下图


2. Node-RED中的流程

流程解释:
1. 使用event: state节点监听网关灯灯状态变化,然后分两条分支处理,一条负责把网关小夜灯重置为关闭状态以便下次同步,另一条是我们实际需要的业务逻辑。
2. event: state节点建议取消Ignore state change event下的所有选项

3. 重置网关小夜灯为关闭状态,有一个很重要的小技巧:关闭小夜灯分支 -> 如果小夜灯亮度不等于255 -> 把小夜灯亮度调为255 -> 关闭小夜灯。这真的可以避免很多奇怪的问题。
4. 流程其他部分都很直观,可以下载自己看

顺便介绍一下JSONata。也就是我在switch节点中写的表达式:

这个 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判别行走方向开始吧。


zhuguoqing 发表于 2023-5-23 20:18:52

支持一下楼主

liy517 发表于 2023-5-24 18:37:15

顶一下技术流,多出教程:lol

ilongjiang 发表于 2023-5-25 22:55:28

等大神教程

Alexios 发表于 2023-5-29 01:25:41

來這和大神學習下

ydlmxsh 发表于 2023-6-1 09:11:44

正在学习中,期待下一课了

kei81131 发表于 2023-6-1 10:58:21

本帖最后由 kei81131 于 2023-6-1 15:50 编辑

謝謝分享

bennie812 发表于 2023-8-26 23:43:41

好教程,谢谢
页: [1]
查看完整版本: [教程系列] 系列教程《HA+NR流程控制》之三:Aqara和HA+NR通讯