前情
- 斐讯DC1排插无法使用,需要刷写ESPHOME固件,接入Home Assistant。
具体查看《斐讯DC1排插硬改esp8266刷esphome教程汇总》 - 通过OTA的方式更新了固件。
具体查看《DC1更新固件及OTA中遇到的问题》
问题
自从上次更新完固件后,排插就不正常了,首先是无论是否连接成功,WiFi指示灯一直处于闪烁状态;其次是每隔一段时间都会听到斐讯DC1排插自动重启的声音。
一直刷项目主页,等待固件的再次更新,但直到最近一次查看,发现这个项目已经停止维护了,也就是说不会有更新固件来解决这个问题了。
不过还好的是,项目里也标记了另两个可作为替代的项目。
- https://github.com/qlwz/esp_dc1
推荐,功能完善,有WEB后台- https://github.com/IoTDevice/phicomm_dc1
程序更简洁,可作为学习参考
本篇文章将讲解固件1的更新。
固件准备
首先访问 https://github.com/qlwz/esp_dc1/releases
,下载最新的dc1.bin固件文件。
由于编译、配网等方式的不同,本固件无需二次编译即可使用。
刷写固件
首先确认:目前斐讯DC1排插的固件是否已经刷入了ESPhome:
OTA更新ESP DC1固件
为了方便,我们直接使用之前固件的OTA配置更新新固件。ESPhome的基础环境配置请查看本文开篇提到的两篇文章。
首先查看配置文件(我这里的是dc1_homeassistant_api.yaml)中device_name的值,例如我的是:
device_name: phicomm_dc1_1
那就在配置文件同级目录下创建文件夹:
# /build/device_name的值/.pioenvs/device_name的值 /build/phicomm_dc1_1/.pioenvs/phicomm_dc1_1
这个文件夹其实是通过命令 esphome dc1_homeassistant_api.yaml compile
编译好固件之后,固件的存放地址。
进入该文件夹,将之前下载好的dc1.bin改名为firmware.bin,复制进来。如果你之前有编译过固件,那么需要你替换文件。
回到配置文件目录,在终端中执行OTA更新命令。
# OTA更新固件(xxxxx.yaml为你的配置文件名字) esphome xxxxx.yaml upload
如果不成功,请检查配置文件中OTA更新地址是否正确,具体步骤请查阅教程。
设备配置
OTA成功更新后,设备会进入配网模式,此时WiFi灯闪烁(但也有可能没闪,不过没关系)。
使用电脑或手机,搜索WiFi,查找有无“dc1_”开头的无密码热点,连接好后即可进入设备配置页面。如果长时间搜索不到,可尝试长按排查的总开关键,进入配网模式。
点击“联网”tab,配置WiFi,成功联网后,可使用电脑连接原有WiFi,访问设备地址再次进入配置页面。
其他配置如果不会配,请在本文后留言,我再解答,
我原厂机,直接刷的固件,留情蚊子开发的固件,而且我不会编译固件。插排每次只能开1分钟,过一分钟就自动断电,而且修改过的状态灯设置恢复默认值。求修复
怎么刷的是没影响的,请确认下固件是否刷入成功。
看你表述,应该是成功刷入后,出的问题。你需要排查:
1. 成功配网后,在局域网里能否通过ip访问设备。
2. 配置中关于无连接(WiFi/mqtt)多长时间重启,这个你是不是设置了1分钟。
如果这两个都没问题,请修改日志设置,查看详情日志。
请教下, 按照这个topic : module/hostname/prefix, HA 中 的topic改写啥, 能给个你写的配置参考下吗?
这个不用自己配置,直接从文中截图的那个后台里下载就可以了,在“控制”tab点击“下载HA配置文件”就可以了。
在下小白,请教一下,我已经刷好了这个固件,也能进入web后台,接下来需要怎么设置才能接入homeassistant?不太了解mqtt的设置,不会接入。
能不能把详细的步骤,以及设置所使用的参数解释一下,好让我学习一下。谢谢。
mqtt的设置比较基础,且环节较多,建议你自行查询。
整个流程包含几个关键点:
1. 安装mqtt,如果你用的是hassos,直接在supervisor里安装就好。
2. 配置mqtt,按照说明填写好安装mqtt服务器的ip、密码什么的。
3. 在固件后台“联网”-“mqtt设置”中,填写你mqtt服务器设置的信息(步骤2)。
4. 在“控制”tab点击“下载HA配置文件”,将文件放到HA配置目录package文件夹下。
请教一下,我刷的a2633063 的target.bin,请问如何不拆插排升级这个dc1.bin,小白求助,谢谢
上面文章说的很清楚了。
我也是之前看什么值得买的教程刷的a2633063的target.bin,现在想换这个固件试试,能否在不重新拆插座的情况下刷这个?
试了下按文章中说的用esphome xxxx.yaml upload 会报这个错,把OTA密码改成空也不行。。
PS C:\esp8266\espdc1> esphome .\dc1_homeassistant_api.yaml upload
[32mINFO Reading configuration .\dc1_homeassistant_api.yaml…[0m
[32mINFO Connecting to 192.168.123.101[0m
[31mERROR Connecting to 192.168.123.101:8266 failed: [WinError 10061] 由于目标计算机积极拒绝,无法连接。[0m
PS C:\esp8266\espdc1> esphome .\dc1_homeassistant_api.yaml upload
[32mINFO Reading configuration .\dc1_homeassistant_api.yaml…[0m
[32mINFO Connecting to 192.168.123.101[0m
[31mERROR Connecting to 192.168.123.101:8266 failed: [WinError 10061] 由于目标计算机积极拒绝,无法连接。[0m
PS C:\esp8266\espdc1>
然后看zDC1的文档说发送这个能OTA升级:
{
“mac” : “1234567890ab”,
“setting”:
{
“ota1″:”http://www.uri.com/user1.1024.new.2.bin”,
“ota2″:”http://www.uri.com/user2.1024.new.2.bin”
}
}
但也还没成功。不知道有啥好办法吗?
首先先回答第一个问题,如果是基于ESPhome的,大概率可以通过OTA功能互刷。
至于你的案例为什么不成功,从报错看是无法连接上。大概率是当前固件的OTA没开启或OTA密码有问题。
文中之所以我能通过OTA升级成别的固件,是因为当前使用的固件是我自己编译的,OTA端口、密码都是我设置的。这是个前提条件。
建议还是重头开始吧。毕竟zDC1是个连使用都得先激活的垃圾固件,谁知道他留没留什么后门呢。