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

 找回密码
 立即注册
查看: 1639|回复: 3

[流程系列] 新人请教如何给某条node-red流程设置开关?

[复制链接]

20

主题

60

帖子

372

积分

中级会员

Rank: 3Rank: 3

积分
372
金钱
312
HASS币
0
发表于 2022-11-9 12:29:57 | 显示全部楼层 |阅读模式
比如我想设置当我的手机断开wifi时开启以下流程:
检测到卧室门打开就小爱进行回家问候。然后就关闭该流程直到下次手机断开wifi,避免在家时反复触发。
因为回家进了客厅后手机就自动连接了wifi,所以没发通过events state(开门检测)接current state(手机未连接wifi)来判断。所以想请教下如何通过开关来开启或关闭某一条流?
新人刚接触home assistant,请大家不吝赐教。或者指条路我去学习也行。感谢大家了。
回复

使用道具 举报

0

主题

6

帖子

58

积分

注册会员

Rank: 2

积分
58
金钱
52
HASS币
0
发表于 2022-11-9 16:10:04 | 显示全部楼层
同是新人刚玩HA。目前此类回家离家、睡觉起床、来客等不同状态走不同分支的流程,我是用HA里新建的辅助元素,input_boolean的虚拟开关来做的(在集成、设备、实体、辅助元素tab页那里)。这样我可以在HA面板里随手开关、监控、调试。NR里用此辅助元素的状态来走不同分支。也可以用NR的global变量来做,但一是我刚玩不太会,而是感觉没HA里直接开关来得方便。
供参考。
回复

使用道具 举报

20

主题

60

帖子

372

积分

中级会员

Rank: 3Rank: 3

积分
372
金钱
312
HASS币
0
 楼主| 发表于 2022-11-9 22:07:04 | 显示全部楼层
kylelyk 发表于 2022-11-9 16:10
同是新人刚玩HA。目前此类回家离家、睡觉起床、来客等不同状态走不同分支的流程,我是用HA里新建的辅助元素 ...

学到了,十分感谢分享
回复

使用道具 举报

1

主题

40

帖子

459

积分

论坛分享达人

积分
459
金钱
419
HASS币
10
发表于 2022-11-10 03:59:53 | 显示全部楼层
两个方案:
1、针对这个需求,可以只用ha的自动化来处理;
模式:重启(避免某次回家完全没有进过房间导致重复问候)
触发条件:手机断开wifi
动作:
【等待条件触发】等手机变为在线,并设置86400秒(即一天)的超时,不勾选超时继续
      【选择】当卧室门为关闭时执行以下动作:(避免房门没关的情况)
            【等待条件触发】等卧室门由关闭变为打开,并设置86400秒(即一天)的超时,不勾选超时继续
                  【开始问候】
2、我就是想用nodered来实现更复杂的效果
需要在同一个页面放两条流程:
events:state监测到卧室门打开
--current state获取并判断手机是否已连接wifi
----如果已连接(说明人在家)
------判断flow.iswelcomed(这个变量保存本次回家是否已经问候过)
--------如果为真(代表本次回家已经问候过了)

----------什么都不干
--------除此以外(有可能是undefined或者false,代表本次回家还没问候)
----------开始播报问候语
----------执行其他任务
----------设置flow.iswelcomed=true

events:state监测手机的wifi状态从连接变为未连接
--设置flow.iswelcomed=false(重置变量)

**flow变量可以在同一页面任意流程共享调用;global变量可以跨页面,在整个nodered里调用;msg变量只能在当前流程调用
你可以试一下,不过也有可能我脑抽想错了……
回复

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-23 04:12 , Processed in 0.158945 second(s), 25 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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