家庭妇男的智能家居折腾之路7:ESP8266接入空净后HA界面优化

前一篇帖子中介绍了我使用NodeMCU开发板改造夏普空气净化器接入HA的经验,这一篇继续给大家分享下接入HA后,界面怎么安排。本文可能只适合Home Assistant使用者或编程爱好者,敬请谅解。

家庭妇男的智能家居折腾之路6:日淘空气净化器智能化升级记2102年的时候雾霾这个词逐渐进入公众视线,各种空气净化器也随之热销。当时大风量空净国行价格动着5k起,于是动了海淘的念头,从霓虹国海运回来一台sharpKI-AX70,一直使用至今。这台空净分量大,噪音低,除了需要额外的变压器略显麻烦外,其他基本满意。但近一年多来开始折腾智能家居,这台11年上市的NetYJ| 21 评论29 收藏108查看详情

 在谈界面前,有几个ESPEasy固件的坑,先要填一填,我使用的Mega-20190216版本:

1,Config page中Append Unit Number to hostname这个选项是不影响MQTT中topic的。topic里使用的是Unit Name。这个选项真的只作用在hostname。

家庭妇男的智能家居折腾之路7:ESP8266接入空净后HA界面优化

2,如果你和我一样,在本地使用多个SSID一样的WIFI来覆盖更大面积的话,一定要把8266芯片拿到使用时真正的位置再配网。否则ESPEasy只会试图连接第一次连接的那个WIFI,不会自动切换到信号比较好的那个WIFI上,然后如果第一次的那个WIFI信号没有覆盖,ESPEasy就罢工了。我猜测这是由于ESPEasy是通过路由器WIFI网口的MAC地址而不是通过SSID来找到原先的网络的。另外,如果有条件的话,尽量配置上Fallback SSID,多留条后路。

家庭妇男的智能家居折腾之路7:ESP8266接入空净后HA界面优化

3,GPIO默认输出在Hardware页中是可调的,D8默认好像是高电平,我设置D8为input后正常了。

填坑完毕,接下来言归正传。先分析下需要实现的功能:

1,由于是继电器,通过MQTT接入HA后,界面上是表现成开关的。这本身没毛病,但是控制空净需要的是按钮,按下去的时候接通,放开就断开了,这边需要用HA模拟下。

2,MQTT开关一共6个,分别是:风量、加湿净化(可以启动净化器)、显示亮度、童锁、关机和净化(可以启动净化器)。其中,童锁按钮需要按3秒以上才能触发,而按3秒显示亮度按钮可以控制负离子发生器的开关,其他动作按0.5秒可触发。

3,净化、加湿净化和关机虽然是3个按钮,但是功能是互斥的,同时只能激活一个。这边界面应该用一个input_select(类似下拉菜单)来控制。

4,风量有6档,按一下切换到下一档,往复循环。第一反应也是做成input_select,但是这边不能自由选择档位,只能一个一个按顺序选,所以不能直接在界面上呈现input_select,而是应该只显示不能选择,用另一个开关触发切换。

5,显示亮度有3档,按一下切换到下一档,往复循环。同上,不能直接在界面上呈现input_select,而是应该只显示不能选择,用另一个开关触发切换。

6,童锁如果打开的话,其他按钮应该是无效的。

7,因为这个是日本版的机器,所以整机接在一个220 to 100V的变压器上,变压器另外有个小米的智能插座控制,相当于是总电源。每次开关机要按2个开关太麻烦,想把总电源和净化/关机绑定在一起。

8,因为成本考虑,没有接入功能的反馈,如果通过净化器上的实体按钮操作,HA这边是不会知道的。会发生HA状态和实际状态不一致的问题,需要有机制解决这个冲突。

先上个最终完成的界面,不算完美,但是也挺直观了:

家庭妇男的智能家居折腾之路7:ESP8266接入空净后HA界面优化

接下来,一步一步分享下怎么实现这个界面。

先把MQTT开关添加好,6个,和ESPEasy中一致:

MQTT开关配置MQTT开关配置

ESPEasy中的设置ESPEasy中的设置

写几个通用的script:

家庭妇男的智能家居折腾之路7:ESP8266接入空净后HA界面优化

这里写了4个,分别是“打开开关,等半秒,关闭开关”,等1秒关闭,等2秒关闭和等4秒关闭。只是delay不同,另外开关名称作为script的参数"switch_name"传入。

另外还有个什么也不干的脚本,用来占行的。

什么也不干什么也不干

再来,工作模式input_select是这样:

input_select定义3个选项input_select定义3个选项

添加一个自动化,选择对应选项时调用对应脚本添加一个自动化,选择对应选项时调用对应脚本

选择“净化”的脚本,如果总电源没开会打开电源并等一下再控制对应继电器接通0.5秒。执行前会先判断童锁有没有打开,打开不执行。选择“净化”的脚本,如果总电源没开会打开电源并等一下再控制对应继电器接通0.5秒。执行前会先判断童锁有没有打开,打开不执行。

打开总电源并等待15秒的脚本,因为一般8266通电后需要一点时间联网,所以要等一下才能真正准备好打开总电源并等待15秒的脚本,因为一般8266通电后需要一点时间联网,所以要等一下才能真正准备好

选择“加湿净化”的脚本,和“净化”差不多选择“加湿净化”的脚本,和“净化”差不多

选择“关闭”的脚本选择“关闭”的脚本

和总开关同步用的自动化,switch.plug_158d000163bcb0就是总开关和总开关同步用的自动化,switch.plug_158d000163bcb0就是总开关

接下来是风量的显示。做了个input_select当列表:

家庭妇男的智能家居折腾之路7:ESP8266接入空净后HA界面优化

而为了限制随机选择,界面显示的实际是input_text(类似输入框):

家庭妇男的智能家居折腾之路7:ESP8266接入空净后HA界面优化

再写了个会自己回弹的开关来切换:

家庭妇男的智能家居折腾之路7:ESP8266接入空净后HA界面优化

最后是按下开关后调用的脚本:

家庭妇男的智能家居折腾之路7:ESP8266接入空净后HA界面优化

下一个是亮度切换。和风量思路差不多:

input_selectinput_select

input_textinput_text

template switchtemplate switch

触发脚本触发脚本

负离子开关,做成了无反馈模式,方便重置状态。用一个input_boolean来记录HA状态。

添加input_boolean,默认状态on添加input_boolean,默认状态on

添加template switch添加template switch

在customize中设置开关无反馈模式在customize中设置开关无反馈模式

触发脚本:接通继电器4秒打开或关闭负离子发生器。分成了开/关2个脚本,方便boolean赋值

家庭妇男的智能家居折腾之路7:ESP8266接入空净后HA界面优化

最后是童锁功能。和负离子差不多:

添加input_boolean添加input_boolean

添加template switch添加template switch

在customize中设置开关无反馈模式在customize中设置开关无反馈模式

触发脚本触发脚本

最后的最后,在customize中,把不显示在界面上的东西都隐藏起来。

家庭妇男的智能家居折腾之路7:ESP8266接入空净后HA界面优化

完结撒花!家庭妇男的智能家居折腾之路7:ESP8266接入空净后HA界面优化 看看效果:

效果效果

在测试中发现一个现象:之前没加8266时,空净开机时总开关直接断电30秒以上再通电,空净关机前的状态就丢失了,再通电也不会自己开机。加装了8266以后,断电再通电,空净之前的工作状态竟然会恢复,目前已测试断电12小时再通电,依然能恢复之前断电前的工作状态!算是一个意外的收获,好神奇!

KI-AX70接入HA到这里就正式完成了。各位有什么意见或建议,欢迎留言,同时也期待各位点赞、收藏、打赏!

推荐关注:
智能家居
话题:智能家居 +关注
购物攻略
话题:购物攻略 +关注
智能家居
分类:智能家居 +关注

提示

鼠标移到标签上方,

尝试关注标签~

评论3

发表评论请 登录
  • 最新
  • 最热
评论举报

请选择举报理由

29 3

关注数量超出限制,请先删除部分内容再尝试

关注数量超出限制,
请先删除部分内容再尝试

登录
注册
用户名/邮箱
密码
验证码
看不清?点击更换
看不清?点击更换 忘记密码?

已收藏
去我的收藏夹 >

已取消收藏
去我的收藏夹 >

小提示