本帖最后由 shaoge 于 2018-11-9 23:34 编辑
最近一段时间一直在折腾home-assistant,因为家里是最简单的小米全家桶,所以难度也不高,只是利用HA把米家接入了homekit,实现了siri和小爱都可以控制家里的设备。但是除了手机和小爱,自动化才是智能家居的精髓,而homekit的自动化是个残废,米家的自动化是不能读取某一个开关的状态来联动另一个设备的,比如我要实现手动打开电热油汀之后,加湿器根据湿度计的反馈来自动开启或关闭就无法实现,加上最近一段时间论坛里在强力推荐Node-Red实现自动化,所以在反复翻看了论坛里的教学帖子之后,有了动手的想法。
论坛的大佬太多,作为一个小白,有很多地方也许大佬觉得是常识就一笔代过,而像笔者这种小白要反复试验才能了解,这个笔记一方面是为了给自己留一个学习记录,另一方面也是为了方便更多像笔者一样的小白参与进来,下面我就详细讲讲自己怎么实现手动打开电热油汀之后,加湿器根据湿度计的反馈来自动开启或关闭。
首先上图,自己的自动化整体模样
一、从HA的信息开始
这个events:state节点我的理解是获取信息,我的油汀是常开,而控制它的方式是通过控制小米墙壁插座的开关来进行,这个节点的目的是获取油汀的开关状态,取名叫油汀,server是我之前加入的HomeAssistant,而Entity ID就是在homeassistant里获取的设备ID。(添加server的方式和在homeassistant里获取的设备ID的方式在这里就不展开讲了,如果问的人多,就另外开一篇来讲)
二、选择状态 添加switch节点,分两路分别填on和off这是判断油汀的开关状态,当油汀是关闭状态的时候,加湿器也关闭。
三、联动卧室的湿度计 添加current state节点这是读取卧室湿度计的信息,Entity ID就是在homeassistant里获取的设备ID
四、判断湿度 百度了一下人体合适的湿度在50%-70%之间,因为笔者的小米温湿度计反馈不是很及时,所以设置的冗余比较大,分两路1、湿度小于等于55%,2、湿度大于等于65%分别对应不同的动作。
五、判断加湿器的状态
添加了两路,分别对应当湿度低于55%时打开加湿器和湿度高于65%时关闭加湿器。这是第一路,表示湿度低于55%的时候如果加湿器的状态是关就打开加湿器,Donmain选择switch开关,Service选择turn_on打开,Data的填写格式是{"entity_id":"要控制设备的Entity ID"}
这是第二路,表示湿度高于65%时关闭加湿器,同样Donmain选择switch开关,Service选择turn_off关闭,Data的填写格式是{"entity_id":"要控制设备的Entity ID"}
六、添加debug调试节点收官
最后点击右上角部署,整个自动化就完成了。可能有些朋友疑问的怎么流程中间一堆debug节点,这个听说是调试用的,也就是点击右边那个臭虫,调试窗口里的显示方便你查找故障的,你不添加也无所谓。整个自动化就是这样完成的,如果你有其他的想法,比如人体感应开灯之类的,都和这个自动化类似,可以自行衍变。
|