telanx
#1
各位大神,求教。
我厨房有个中央变压器,插在一个绿米的插座上(不用时断电,用时再通电)。变压器输出一路110v电压到垃圾处理器插座,输出一路110v电压到电饭煲插座,输出一路110v电压到卫生间镜柜。
使用情景会存在这样的情况:
- 饭点的时候,可能会使用垃圾处理器。则开垃圾处理器前,必须先开启变压器的绿米插座,然后启动垃圾处理器。垃圾处理器插在了一个小米zigbee的插座上,洗菜盆上方的墙上贴着米家小饼干来实现无线开启垃圾处理器(长安为开,单击为关)
- 饭点的时候,有时会用电饭煲蒸米饭,基本需要1小时才能蒸好,并进入保温模式。无需智能控制。但是在蒸米饭的过程中,人肯定不会一直待在厨房里。
目前想要用node red来实现智能关闭变压器的控制。目前的设想是:
- 当厨房持续5分钟没有人(厨房人体传感器off for 5min,可以用event:states 实现)作为trigger
- 当中央变压器是on的states
- 在接下来的10分钟里,如果中央变压器所在的绿米插座的功率一直都低于12w(经过追踪数据,即便电饭煲进入保温程序,间歇加热,但最低功率也没有低于14w的时候,但是中央变压器在没有接负载的时候,功率在10.7w到11.7w之间波动)
4.厨房传感器为off
5.service:switch:turn_off 中央变压器的绿米插座。
现在就第3步,死活找不到合适的node来实现。
尝试过wait until,也不成功。
尝试过trigger states,也不行。
stop timer也不好用。
求教各位大神,如何能够实现第三步的判断呢?感谢!
可能我语文没学好,看很久没看懂你想问撒,
低于12w跟高于12w这个你是能够得到数据吧,你是要判断10分钟内一直都是同个状态输出,要变化再观察10分钟?
telanx
#3
嗯,是的。只有在10分钟里,插座功率一直都小于12w,才会触发下一步。一旦10分钟内,有某一时刻超过12w了,就不会触发下一步。如果能重新开始计时的话,那就更好了。
pikaq
#4
你的需求我也没看懂,多个条件我一般用两种方案:一是在生效前主动去HA查询另一个的状态;另一个是在NR里弄一个变量做标记。
NR里有特殊需求的延时处理可以用trigger节点。
telanx
#7
感谢大神指教。
我稍微修改了一下,不过貌似没有成功,可能我对node-red了解太少。请教一下大神:
- 触发条件是厨房持续5分钟没人,并且变压器是开着的。这个流是需要单独新开一个flow页面?还是可以像我这样,放在同一个页面,然后用debug变量呢?
- 检查触发条件那个switch node,怎么link到触发条件呢?
3.我尝试poll state直接连到检查功率状态,也貌似后面的流也不动作。
多谢大神指点。
flows.json (5.0 KB)
前面那一秒触发你弄掉他干嘛呢,每秒检察一次数据,数据为你真,计数加一,这数据根据你实际位置保存至变量,这里检查只是调用变量,并不用直接接你东西,
telanx
#9
我看poll state就可以实现每秒读取一次变压器功率,以为可以代替前面的每秒触发。。。看起来我还太天真。。。
貌似想玩转node red,还是得会script才行啊。。。呃。伤脑筋。还得继续研究。
多谢大神指点。感谢,受教了。
你这每秒读后面加个change放到对应属性就是,我只是给你思路,并不知你状态从何来,肯定要根据你实际修改
试试使用events:state节点里的FOR条件看行不行