同时满足两个条件的判断,在node red中如何表示呢?

各位大神,求教。
我厨房有个中央变压器,插在一个绿米的插座上(不用时断电,用时再通电)。变压器输出一路110v电压到垃圾处理器插座,输出一路110v电压到电饭煲插座,输出一路110v电压到卫生间镜柜。

使用情景会存在这样的情况:

  1. 饭点的时候,可能会使用垃圾处理器。则开垃圾处理器前,必须先开启变压器的绿米插座,然后启动垃圾处理器。垃圾处理器插在了一个小米zigbee的插座上,洗菜盆上方的墙上贴着米家小饼干来实现无线开启垃圾处理器(长安为开,单击为关)
  2. 饭点的时候,有时会用电饭煲蒸米饭,基本需要1小时才能蒸好,并进入保温模式。无需智能控制。但是在蒸米饭的过程中,人肯定不会一直待在厨房里。

目前想要用node red来实现智能关闭变压器的控制。目前的设想是:

  1. 当厨房持续5分钟没有人(厨房人体传感器off for 5min,可以用event:states 实现)作为trigger
  2. 当中央变压器是on的states
  3. 在接下来的10分钟里,如果中央变压器所在的绿米插座的功率一直都低于12w(经过追踪数据,即便电饭煲进入保温程序,间歇加热,但最低功率也没有低于14w的时候,但是中央变压器在没有接负载的时候,功率在10.7w到11.7w之间波动)
    4.厨房传感器为off
    5.service:switch:turn_off 中央变压器的绿米插座。

现在就第3步,死活找不到合适的node来实现。
尝试过wait until,也不成功。
尝试过trigger states,也不行。
stop timer也不好用。

求教各位大神,如何能够实现第三步的判断呢?感谢!

可能我语文没学好,看很久没看懂你想问撒,:joy:
低于12w跟高于12w这个你是能够得到数据吧,你是要判断10分钟内一直都是同个状态输出,要变化再观察10分钟?

嗯,是的。只有在10分钟里,插座功率一直都小于12w,才会触发下一步。一旦10分钟内,有某一时刻超过12w了,就不会触发下一步。如果能重新开始计时的话,那就更好了。

你的需求我也没看懂,多个条件我一般用两种方案:一是在生效前主动去HA查询另一个的状态;另一个是在NR里弄一个变量做标记。
NR里有特殊需求的延时处理可以用trigger节点。

这10分钟的开始条件应该是有了吧


看是不是你要的flows (10).json (4.1 KB)

感谢大神指教。
我稍微修改了一下,不过貌似没有成功,可能我对node-red了解太少。请教一下大神:

  1. 触发条件是厨房持续5分钟没人,并且变压器是开着的。这个流是需要单独新开一个flow页面?还是可以像我这样,放在同一个页面,然后用debug变量呢?
  2. 检查触发条件那个switch node,怎么link到触发条件呢?
    3.我尝试poll state直接连到检查功率状态,也貌似后面的流也不动作。

多谢大神指点。

flows.json (5.0 KB)

前面那一秒触发你弄掉他干嘛呢,每秒检察一次数据,数据为你真,计数加一,这数据根据你实际位置保存至变量,这里检查只是调用变量,并不用直接接你东西,

我看poll state就可以实现每秒读取一次变压器功率,以为可以代替前面的每秒触发。。。看起来我还太天真。。。

貌似想玩转node red,还是得会script才行啊。。。呃。伤脑筋。还得继续研究。

多谢大神指点。感谢,受教了。

你这每秒读后面加个change放到对应属性就是,我只是给你思路,并不知你状态从何来,肯定要根据你实际修改

看了半天愣是没看懂

试试使用events:state节点里的FOR条件看行不行