EraClean Fresh 新风系统的自动化控制
本文主要是讲述通过拆解遥控器来模拟人按遥控的方式来实现对设备的自动化操作,虽然讲述的新风机,但实际上这一思路可以应用在不同使用遥控操作的设备之上。
在安装了EraClean Fresh之后,室内空气质量可以说是控制的非常好了(关于EraClean Fresh新风的评测将在其他原创分享,这里就不多说了),特别是室内细颗粒物,如果夜晚的话更是可以做到0ug/m³,白天有人活动基本也就是在10ug/m³以内,只有在做菜开启油烟机后,因为油烟机的抽风量远远大于新风机的进风量,所以室外的污浊空气会从窗缝门缝涌入室内,造成短时间的细颗粒物值上扬。不过装新风的主要目的是室内二氧化碳的控制,按照EraClean Fresh设计的600m³/h来说,不用开600m³/h,即使开300m³/h,3个人的室内,也能将全屋区域的CO2浓度控制在800ppm以下,不过这里要注意的一点是,要达到这个值,必须把室内各房间的房门都开启,如果某个区域的门关上,那么该区域的换气效率就会大幅下降,而如果把安装新风机房间的房门关上,那么整屋的换气效率都会大幅降低,下面先看下我家的整个布局:
大家可以看到,因为考虑到EraClean Fresh是单向流正压新风,为了降低从室外送入室内的新鲜空气在冬夏两季对室温产生比较大的影响,所以在安装的时候,将其装在了平时比较少有人活动的书房。因为这块区域基本就是我在用,对全家的影响最小,新风从室外进来之后,先在这个区域做一个缓冲,然后再从书房输送至室内其他区域,相对比直接把新风装在客厅或是卧室,无论是噪音还是温差都会要好很多。
但是这样出现的问题就是,机器自身带的CO2和PM传感器只能监测书房位置的空气质量,对于室内远端,例如儿童房的空气质量无法感知。而机器的自动档是依据自身传感器获得的环境数值来对机器风量进行调节的,甚至如果我把书房门关上,那么就会造成机器所在房间的空气质量非常好所以机器运行在低风量模式,而屋外的二氧化碳含量可能已经飙到了1600ppm甚至更高。当然,简单点的做法是手动将机器设在一个固定的风量值上,例如我设个300m³/h,这个时候如果全屋室内门都畅通的话,自然是没有问题的,但是如果晚上睡觉关闭卧室门的话,会因为门缝太小,导致新风量不够,那怎么办呢?要么开门,要么增加新风量。但是如果把新风风量设的太高,又会产生的问题是,很多时候我并不需要这么高的风量,而高风量的弊端是功率高,噪音高,并且在冬夏两季开启空调的季节,会对空调的能耗产生影响。
当然,有很多值友可能会觉得楼主是个事儿逼,因为完全可以在需要的时候开高,不需要的时候开低,这机器除了有遥控器,还有app,按两下就行的事,为啥搞这么复杂。但是生命就是折腾的,不然这个智能家居的系列也写不到今天的第12篇了不是?所以简单的梳理了下思路,决定将EraClean Fresh接入Domoticz,弃用机器本身的自动模式,转而全部使用domoticz来进行控制,同时,这样做除了能够调节机器风量之外,还能根据空气状况来对机器进行开启和关闭的操作。
按照常规思路来看,EraClean Fresh带有WIFI模块,所以最简单的智能化接入应该是通过网络来控制,查了下FRESH所用的WIFI模块为汉枫HF-LPB120,而汉枫原厂固件是开放TCP/IP 8899端口做组播的,所以做的第一件事情是扫描端口,如果机器本身就有TCP/IP端口可用的话,不说控制,至少书房的PM2.5和CO2数据就可以直接从机器读取,而不再需要额外的传感器了。
不过非常可惜的是通过尝试后发现,FRESH的WIFI模块TCP端口并未开放,也就是说FRESH并没有使用汉枫的标准固件。所以这条路是行不通了,接着我考虑的是用网络抓包抓取机器向服务器发送的数据,不过上次折腾DNSmasq的结果是整个路由重置,所以想想还是算了,没那金刚钻就不揽瓷器活了。于是只剩下最后一条路可以走,就是拆遥控器,然后使用继电器来控制按钮的开合,模拟是人在操作。当然,如果是红外遥控器的话,就可以直接通过抓码,然后可以使用博联RM,小米万能遥控器,或者是空调伴侣之类的来进行操作了,不过非常可惜的,EraClean的产品目前使用的基本都是2.4G遥控器,所以只能硬破了。
这次的改造使用到的是EraClean Fresh的遥控器,一个双位继电器,以及一块D1 MINI的MCU,当然,如果使用nodemcu也是可以的。
首先要明确的是,需求是风量调节,所以我们只需要风量调节的按钮就可以了,而基于通过遥控来控制是无法获知机器目前状态的,所以思路是每一次进行调节的时候都将其复位至最低,然后通过增加风量调节来调整至需求的档位,所以,在接线的时候,只需要接睡眠模式按钮(单次按动就能将机器设定至最低风量),和风量+按钮(按几次到多少风量)。
线接好以后,就是设定触发动作了,因为ESPEASY和ESP8266的用法在本系列之前的文章里多次提及,所以在这就不多说了。
测试了下EraClean Fresh新风机各档风量的功率后:
发现600m³/h的风量下,整机功率高达66W,而在500m³/h的风量下,整机的功率只有32W。看起来就觉得600m³/h风量这一档非常不具有经济性,所以等会做自动化的时候,把最高档设在500m³/h。最低档没办法变,只能是150m³/h,那么中间档就选300m³/h,因为使用了那么多天,发现300m³/h已经足以应付大多数状况了。
然后就是在ESPEASY里写RULE了,非常简单的,只要写清楚三种设定下继电器怎么操作就好,我的接线是将睡眠模式按钮接在ESP8266的GPIO 5 (D1)上,风量加的按钮接在ESP8266的GPIO 4(D2)上。所以以风量300举例,Rules是这样写的:
这个遥控器比较妖,睡眠模式要按的快,按的慢了就没反应,而风速按钮则要按的长点,短了没反应,但是如果过长就变成连续增加风量了。所以测试下来,睡眠模式按钮按0.25秒,风量按钮按0.5秒比较合适。而每次点按之间稍微留2秒或1秒的空档,等待机器执行完上一次的遥控操作。上面的代码是300m³/h,所以蓝色部分代码重复了三次,要是500m³/h的话,就重复5次就好了。如果要点按休眠模式的话,代码如下:
然后要执行这个操作也非常简单,通过http命令就能操作:
所以接着我们只要在Domoticz里面建立一个多段开关:
然后在对应10,20,30的LEVEL里面填上http命令。
之前说到除了控制风量,还要对新风机进行开关操作,这里用到的是一个小米ZigBee的无线插座:
接着就是写自动化脚本了,我这使用的是Domoticz的dzVents:
因为在domoticz中,自定义传感器数值的值是srting类型,所以在脚本开头要进行下数值类型转换,顺便把二氧化碳的传感器也定义下,这样之后写脚本会方便很多:
接着是新风机自动关,设定是所有房间CO2浓度值均小于600,且所有房间和室外的PM10都小于35的时候,才会将新风机关闭:
然后当新风机关闭的时候,只要有任意房间的CO2高于700,或者是任意房间或户外的PM10大于35的时候,新风机将自动开启,这里设定户外PM10大于35开启是为了在房间内形成一个微正压,将户外的细颗粒污染物全都阻挡在室外:
接着就是自动化设置,首先是当所有房间CO2低于800时,新风机运行在150风量,当然,为了避免重复执行,所以条件里会加上判断当前档位:
接着是任意房间的CO2在800-1200之间时,新风风量设置到300:
最后是任意房间的CO2大于1200时,新风风量设置到500:
因为新风的自动化不像灯光自动化那样要求那么即使,所以脚本设定为每3分钟运行一次。然后测试了2天效果如下:
可以看到脚本运行的非常顺畅,当然,由于最近几日上海的空气质量一直处在中度/重度污染状态,所以机器并没有开启自动关机:
而最近24小时的室内空气状况如下,首先看的是主卧:
过去24小时,本地区的AQI指数是198,主卧的PM10最高为14ug/m³,而主卧晚上有家里两位领导安睡,而我因为打鼾比较厉害,所以被赶在儿童房睡,而主卧夜间的CO2值最高为1300ppm,大多数时间维持在1000ppm,接着看下客厅:
客厅的PM10在晚间21点左右有一个30ug/m³的小尖峰,是因为开启阳台门晾衣服造成,而因为书房和客厅是直连的,所以即使在8点至9点间全家都在客厅活动的时候,其CO2也没高过800ppm,下面来看下儿童房,也就是我的卧室:
因为这间屋子离书房最远,所以换气效率也是最低的,在夜晚关门睡觉后,其CO2浓度一直在1300-1400ppm之间,直到早上6点左右起来给娃泡奶开了个门,室内CO2就直接降到了1100,然后早上起床开门之后,CO2更是一根直线降到了600不到。
而在使用新风之前,夜间两间卧室的CO2浓度都会超过2000ppm。更详细的数据还是等我对EraClean Fresh的系统评测。
这篇文章主要还是讲针对一些非智能或无法破解的设备,如何通过其他方式来对其进行自动化操作的,希望能对大家的智能家居改造有所帮助,谢谢。

























值友9117004703
校验提示文案
豆芽不吃饭
校验提示文案
promiss
校验提示文案
咆哮的泰迪
校验提示文案
西都有
校验提示文案
大妈大姨夫
校验提示文案
光之守鹤
校验提示文案
rayborng
2.楼主的lua代码能不能提供个下载地址。
3.看了楼主之前的文章,攀藤获取的多个数据,使用楼主的方法用lua分割出来。发现用blocky模块的时候无法执行条件语句,导致事件不成功。这是不是也是楼主要用lua语言编写本篇的原因。
校验提示文案
laviela
校验提示文案
kevin_935
校验提示文案
铭记1106
校验提示文案
JoyRider519
校验提示文案
亚奇洛贝大王
校验提示文案
粉袍甘道夫
校验提示文案
值友7413213901
校验提示文案
sunnyong
校验提示文案
qachina
校验提示文案
自由飞的猪
校验提示文案
老帅郭
校验提示文案
果味汤圆妈妈咪呀
校验提示文案
值友7413213901
校验提示文案
粉袍甘道夫
校验提示文案
亚奇洛贝大王
校验提示文案
SagaLiang
校验提示文案
老帅郭
校验提示文案
小米桩基础施工
校验提示文案
JoyRider519
校验提示文案
天工物华
校验提示文案
铭记1106
校验提示文案
铭记1106
校验提示文案
kevin_935
校验提示文案
waterstar
校验提示文案
laviela
校验提示文案
rayborng
2.楼主的lua代码能不能提供个下载地址。
3.看了楼主之前的文章,攀藤获取的多个数据,使用楼主的方法用lua分割出来。发现用blocky模块的时候无法执行条件语句,导致事件不成功。这是不是也是楼主要用lua语言编写本篇的原因。
校验提示文案
光之守鹤
校验提示文案
Msnmzntt
校验提示文案
大妈大姨夫
校验提示文案
值友9117004703
校验提示文案
茕茕白兔的小屋
校验提示文案
自由飞的猪
校验提示文案