DC1更新固件及OTA中遇到的问题

闲暇时间,准备更新一下DC1排插的固件,我的是最早的3月份版本,现在已经更新到12月的版本了,除了有一些新功能外,运行也更加稳定。

下载配置文件并修改

https://github.com/Samuel-0-0/phicomm_dc1-esphome/tree/master/yaml

选择自己对应的配置文件,对于我来说是API版本,那么就需要下载:

# 配置文件
https://github.com/Samuel-0-0/phicomm_dc1-esphome/raw/master/yaml/dc1_homeassistant_api.yaml

# 秘钥配置文件
https://github.com/Samuel-0-0/phicomm_dc1-esphome/raw/master/yaml/secrets.yaml

修改dc1_homeassistant_api中的device_name为你之前设备的名称,可以在Home Assistant的后台中查看到。如果与原设备名称不同,则需要更新后重新调整之前的代码。

修改secrets.yaml中的各项密码等。

新建一个文件夹,将这两个文件放进去。

编译固件(以Mac OS为例)

按照说明,我们首先需要安装ESPhome,直接运行 pip install esphome 即可。

执行编译:

# 进入配置文件所在目录
cd xxxxx
# 编译固件(xxxxx.yaml为你的配置文件名字)
esphome xxxxx.yaml compile

编译过程中会继续下载所需要的库,但在下载到 ESPAsyncWebServer-esphome 时会报如下错误:

Looking for ESPAsyncWebServer-esphome library in registry
LibraryManager: Installing id=6758 @ 1.2.6
Error: Please read http://bit.ly/package-manager-ioerror
ChunkedEncodingError: ("Connection broken: ConnectionResetError(54, 'Connection reset by peer')", ConnectionResetError(54, 'Connection reset by peer')):

从提供的报错信息来看,是网络问题,但从提供的网站说明来看,是权限问题。我尝试开启网络代理或更换设备,问题依旧存在,且都是卡在下载部分,暂且认为是下载步骤除了问题。尝试手动下载并安装ESPAsyncWebServer-esphome

查阅资料,可以通过网站

https://platformio.org/lib/show/6758/ESPAsyncWebServer-esphome

下载该库的离线文件,下载地址在“installation”最下面。

下载后尝试手动安装,输入如下命令:

# XXX为该库安装包的路径
platformio lib --global install /XXX/ESPAsyncWebServer-esphome_1.2.6_6758.tar.gz

运行后,成功安装。继续执行编译命令,建议在重新执行前,清空文件夹下已生成的文件,重新编译。

OTA升级

OTA升级的前提是之前已经刷了ESPHome的固件,并开启了OTA升级且OTA升级密码已知。

打开对应的配置文件,找到 # use_address: 这一行。将前面的注释去掉,ota.local 改为排插接入网络后的IP地址。一般短时间内同一设备的IP地址是不变的。如果担心IP会变,可以在路由器中为设备设置静态IP。

修改后保存,并执行:

# OTA更新固件(xxxxx.yaml为你的配置文件名字)
esphome xxxxx.yaml upload

到此为止,如果没有其他报错,就已成功更新了固件。

Home Assistant中的配置

我使用的是API版本,因此在[配置]-[集成]-添加esphome组件-输入dc1的ip地址,就可以正常使用了。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注