本帖最后由 eastwoodnet 于 2021-6-11 16:35 编辑
翻遍了论坛没发现特别多的espeasy接入HA的只用指南,可能主要原因是这个固件比较难调教吧,然而跟各位大大有能力给第三方设备写插件的我不同,我用python刚刚起步,不会写那么多插件,同时,我认为厂商的原始固件一定会有这些那些的漏洞,不如使用开源的固件系统,这样也能及时更新升级。 目前我调试了几种固件,还是认为espeasy是最为灵活的固件,同时,也是最难上手的固件,优点和缺点都很明显。下面我就用一个控客小K的设备刷入espeasy固件的例子讲一下,如何调校espeasy的设置,以及HA的配置。
控客小K刷入espeasy的办法我就不说了,难点在于无损开壳,火线和零线的两个焊点比较麻烦。我使用了刀头烙铁调高到380°温度,锡枪以及曲别针弯了一个钩子,才把主板从壳子弄出来,具体针脚以及刷机请看http://wiki.jackslab.org/Hack_mini_K
如果有那个高手抓包控客的OTA程序,使用OTA办法刷进去的话,哪么我觉得这个小开关应该是比较便宜的直插式控制开 关了。
目前最新的espeasy固件版本是2.0,曾经Dev12版本是在半年前,然而时间进入2018年后,维护者开始发力了,目前几乎隔几天就会更新一个Pre-release一个版本,目前官方在维护两个版本的固件,一个是标准版,用于普通ESP8266的刷入,另一个包含了最全传感器插件的mega版本。但是可能会有bug。
项目地址在 https://github.com/letscontrolit/ESPEasy ,
固件下载地址在 https://github.com/letscontrolit/ESPEasy/releases
有能力的大大,可以给他写插件提交啊!
顺便记录一下linux刷省事多了,一条命令搞定,
sudo esptool.py --port /dev/ttyUSB0 write_flash --flash_mode dout 0x00000 /tmp/ESP_Easy_mega_20210503_normal_ESP8266_1M.bin
本程序使用最新的固件教程,废话不多说了,先看看刷好espeasy后的设置吧。注意,刷小K的时候需要把spi mode设置为DOUT。我喜欢用乐鑫官方的刷机工具。ESPFlashDownloadTool
以下的截图,有的是引用官方1.x的固件截图,有的是2.0的截图,但是该说明的地方我都说明了,给为刷机后应该能理解清楚。
1、刷机后,重启,设备会发射一个叫做ESP_Easy_0的无线信号,密码是:configesp。成功后进入浏览器打开192.168.4.1进入设置网络页面。这一步很容易,没啥坑,如果是隐藏SSID手动输入即可。
2、Main展示了设备的情况,直接进入Config页面,需要注意的是Name的设置以及Unit nr的编号,Name涉及到HA的中设备的topic名称。Unit nr数涉及到设备在mqtt中反馈的名称编号,也就是说如果有多个相同Name的设备,mqtt可以用UnitNr区分设备编号,同时可以让几个espeasy之间使用UDP端口写rules互相通讯,也可以在路由器中看到设备的hostname后面的标号。而esp ip什么如果不做IP访问的话,可以不做固定IP地址的设置。
例如:这个开关的Name是kidroom, Unitnr是3,可以在路由器中看到这个设备的名字是如下命名的。
这里还有一个sleep mode的设定,具体可以使用gpio 16连接rst针脚,实现设备的休眠节能,这对于一些使用电池的传感器类的设备相当有用,能大大加强电池的电池的待机时间。sleep的时间参数可以设定。但是目前我尚未使用这个功能,需要的人自己看官方wiki吧。https://www.letscontrolit.com/wiki/index.php/SleepMode
3、在Controllers设置页面里面2.0固件可以一次设置三个MQTT服务器,方便发布不同的设备到不同的服务器上(例如同时发送到云端的MQTT服务器和本地的服务器。)
这里注意,Controller Subscribe和Publish的设置,尽量不要动,如果你确定自己需要手动设置的话哪么后面HA的设置需要进行相应的更改。
4、进入Hardware页面,可以设置是否启用wifi led指示,控客小K的wifi灯使用了GPIO3,这个页面里面,可以调整I²C的针脚,以及默认引脚启动电平状态。
5、device页面是我们添加的开关,以及继电器设备,或者传感器。跟MQTT以及HA相关的参数我都标出来了,一定要注意这部分的设定。下面是控客小K的按钮,另一个是继电器。名称和value在后面的rules设定也很重要。而且一定要注意这里面大小写一定要跟HA和rules设定一样。
6、重头戏,rules的设定。默认rules明没有开启。需要在tool页面的advanced里面勾选rules,以及需要开启MQTT Retain Msg,是HA控制反馈的关键。
下面是控客小K的按钮rules,让实体按键发挥作用。注意名字和大小写!使用rules的好处是如果你可以便携比较复杂的rules,设备甚至可以不依赖HA的自动化,自己完成很多的任务。更多的rules方法可以参考官方wiki。而且这个看上去跟HA的自动化语法有异曲同工之妙。https://www.letscontrolit.com/wiki/index.php/Tutorial_Rules 另外的一些高级设定比如NTP设置,syslog等设置,请自行摸索。
另外说一些espeasy的坑,目前为止,我尚未能够使用页面在线升级firmware成功,两个控客小K都是第一次刷后无法在线OTA更新了,这个问题不知道是我的个例还是控客小K的问题,其中一个想从R147版本的espeasy升级到2.0的时候挂掉了,只能有拆开重刷,另外一个R147的设备OTA刷机挂了恢复到了默认设置,我就不敢动了。
上面这个的原因已经知道,新版的固件不能OTA 2M以下的flash上,需要在在这之间是刷一个OTA专用固件做中转,比较麻烦。不过话说如果是小K的话除非有大的安全漏洞需要更新,我家里的机器不刷一直用这完全没问题。
这一点上不如sonoff适用的的TA固件方便。可以使用GPIO0的动作设定AP模式,也可能是我尚未摸索到espeasy切换工作模式的办法。如果哪位知道的话,还望告知。另外一点就是,espeasy的api实在不如TA的丰富。虽然可以用一些curl取到状态和控制,但是一些详细的设定,TA的固件相对就更加复杂和详细了。
有人愿意继续研究的话在这里 https://www.letscontrolit.com/wi ... y_Command_Reference
好了,基本的espeasy固件的设置就到这里了,至于添加传感器等设置,论坛里面有一些设置,各位请自行摸索,我在一个控客小K上用多余的GPIO添加了一个SI7XXX的温湿度传感器,目前工作很好。
下面就谈谈HA中开关的设定了。state_topic的设置为,/设备名称/Devices名称/Device Value Name 设备名,就是一开始在Config页面设置的Name,devices名称就是在devices页面设置的继电器的Name。这个一定要填写需要控制的继电器的设备名,button的不需要写到HA的配置里面,在command_topic需要填写/设备名称/gpio/gpio编号,(这个主要是因为在espeasy的固件设定的节点名称的时候变量用的/%system/如果是%system/就没必要/设备名/gpio编号了,)例如控客小K的继电器是如下图的gpio 15,由于我们在tools/advanced里面开启了mqtt retain,所以这里的retain要写true。payload_on和off,分别是1,0。
这些设定完成以后就可以在HA中控制控客小K了,同时,控客小K的按钮动作,也会反馈到HA里面。
如果各位大大觉得我有什么错误的话,欢迎反馈一起讨论。
|