我希望依托homeassistant+ESP-01组合,形成自己的智能家居整体方案,改善居家环境,享受科技带来的舒适。我不懂开发,但看着前辈们实现的自动化能力又是羡慕不已。已经入门几个月了,之前一直是应用ESP-01,和sonoff固件连接终端硬件。sonoff固件成熟、简单、上手快,特别适合我这类入门级的小白。但是,这几个月也是坑坑洼洼,几乎让我崩溃。
我遇到的问题:家里玄关原先有三个86型开关,分别负责玄关、卫生间、厨房的开关灯。我将ESP-01组合放进这个位置中,作为控制节点和一些传感器采集节点。三个位置共用一根0.3平方零线,串接三个开关位置,每个位置中包含有1个ESP-01,1个继电器(或2个),1个电容触摸开关,1个多普勒传感器,1个温湿度传感器或光敏电阻。每个组合在线下单独测试的时候都很正常,但是只要装进86开关位置之后,就会莫名的死机、自己开关灯、莫名的感应有人。甚至于直接使用一个ESP-01继电器都会出问题。过年之前被迫全部拆下,换回硬开关,好让自己过一个没有家人抱怨的年。是ESP-01不稳定?是我的组合有问题?还是共零线相互干扰?还是过载过热?能想到的都试过了,能做的都做了。最后思路集中在两个点上,sonoff固件是不是不太适合8266-01?是不是8266这芯片真的是需要很大的电流?
曾经想过放弃8266-01,转投8266-12?但我真的不舍,ESP-01占用空间远比8266-12小得多,几乎可以直接塞入86型开关盒中,而且家庭中终端应用应该足可以应对。我相信很多入门不久的小白都会像我这样彷徨。于是,下定决心,再做一次挣扎,试一试ESPhome固件,听说它是更贴近芯片低层的,而不像sonoff固件外面又包了一层应用,占用的芯片内存可能会少一些,反馈动作更快一些,耗能可能也会更低一些。
这里是我这三天闯入ESPhome的一些体会,希望可以帮到像我这样的小白。
1 ESPhome安装:之前之所以绕过ESPhome,是我在电脑端安装支持环境时遇到了种种问题,无法搭建起环境。其实,我从一开始就错了。ESPhome直接装在homeassistant主机上就行了。命令就两个,超级简单。我homeassistant是装在树莓派3上的:
# 安装ESPhome
sudo pip3 install esphome
# 安装浏览器支持
sudo pip3 install tornado esptool
2 ESP-01刷机:树莓派上接ESP-01,电脑浏览器中操作刷机。
注意:这里只是刷机方法,实际上在upload上传刷机之前,就要把“使用方案”确定好,填入浏览器的edit中。刷机实际是根据这个yaml文件的配置进行刷机的。
2.1 树莓派上,打开浏览器支持工具:这个一定要启动起来,否则电脑浏览器不能刷机的。
sudo esphome config/ dashboard
2.3 电脑上,在浏览器中开始刷机。注意选择usb刷机。第一次刷机成功之后,再使用OTA方式调整、更新等其他刷机操作。
1、 选择芯片8266
2、 给这个芯片取个名字
3、 wifi,密码,OTA密码
4、 树莓派的usb插入串口刷机版
5、 upload
如果有问题,重刷
3 刷机刷什么,怎么用:
其他固件是直接选择某一个版本的固件,下载,刷机。之后,自己再做配置。但是ESPhome不是这样,他更类似一种底层配置,然后根据配置进行刷机。所以,上面的刷机只是一个刷机方法,真正的刷机,是从要做什么开始。
3.1 你要做什么,需要支持什么硬件,就在这里找,
3.2 配置yaml:电脑浏览器中edit内容
3.3 验证是否有错误
3.4 upload刷机
ESPhome的特点,就是刷机前,编写yaml文件,然后刷机。而它的yaml设置简单,示例完整,足够灵活,还是底层级的。你想象的方案对不对,能不能运行起来,硬件会不会不支持,这里都一目了然。而它对于我们也是有一点点要求,就是需要我们有一点逻辑基础。
4 排查问题:ESPhome的好处就是排查问题更简单,一目了然。
4.1 vlidate检查,在编写yaml之后,刷机前,在浏览器里就可以检查是否有误
4.2 upload刷机时,如果通不过,会有说明是哪里有问题
4.3 实际控制或采集数据时不正常,可以在浏览器中查看log,只要树莓派的浏览器支持是打开的,log显示的就是每个动作的实时过程
4.4 第一次刷机,一定要选择usb,就是刷到树莓派usb上那个ESP-01。如果选择了OTA,会报错,显示连接无反馈。这个折腾了我半天,吃完饭才想起来,是要刷到usb上。
5 与homeassistant集成
5.1 集成:天然集成,不需要过多考虑。刷机成功并显示正常后,进入homeassistant,会自动提示有新设备。直接提交确认就可以了。homeassistant页面就立即看到这个设备和它的状态。
5.2 configuration.yaml文件不会出现这个设备,homeassistant状态里也不会有这个设备。需要调用时,需要到homeassistant的配置-集成(或设备)中去查找。
6 ESPhome效果
6.1 ESPhome效果怎么样?
好用的不得了,我的问题一下子就解决了,2天了,没有再胡乱动作过。同时还发现了,ESP8266真是电耗很高,我原先的03mm的零线带三个位置节点,明显是太小了。原先每个组合配置的小电源5v700mA,有点小,卫生间配了2个继电器,就有带不动的现象了,表现为死机,但不会乱动。
尤其是,ESPhome刷机的ESP-01,脱网也可以运行。就是说,在一个ESP-01的组合装置中,如果有相关的自动化,脱网也可以动作。
6.2 一个yaml示例,卧室夜灯灯带。ESP-01,灯带+红外人体感应+DHT温湿度传感器+电容开关。
官方组件说明:
https://esphome.io/components/light/monochromatic.html