/phicomm_dc1-esphome

斐讯DC1插座自制固件方式接入开源智能家居平台

Primary LanguageC++

斐讯DC1插座利用ESPHome自制固件方式接入开源智能家居平台

image

WHY

众所周知的原因,斐讯服务器已经不能正常访问,插座的APP控制已经无法正常实现,需要有另外的方式实现插座的控制。

已有的方法为内网劫持实现,具体可参考这里

这次要实现的是通过一个自定义的固件,来完整实现DC1联网控制。

为什么选择ESPHome制作固件

ESPHome是一个只需写几行配置文件就可以实现ESP8266/ESP32接入智能家居系统的强大开源项目。其极高的可扩展性和易用性是本次选择的主要原因。

已支持接入的开源智能家居平台

以下排序随机,不分优劣。合适自己的就好。

1、Home Assistant

Home Assistant 是一款基于 Python 的智能家居开源系统,支持众多品牌的智能家居设备,可以轻松实现设备的语音控制、自动化等。

接入方法

  1. 按照TTL接线方法接线
  2. 按照固件编译及刷固件方法更新固件
  3. Home Assistant中[设置]-[集成]-添加esphome组件
  4. 输入dc1对应的ip地址
  5. 配置lovelace

2、ioBroker

ioBroker是基于nodejs的物联网的集成平台,为物联网设备提供核心服务、系统管理和统一操作方式。

接入方法

ioBroker相关接入问题可以加QQ群776817275咨询

3、其他支持mqtt的平台

理论上来说,只要是支持mqtt的平台都可以实现接入。

接入方法

添加对应的topic

TODO LIST

  • 分析硬件,获得主要芯片的资料
  • 确定各引脚对应关系
  • 获得原版固件的log信息(启动、控制)
  • 控制实现推演
  • 用逻辑分析仪分析U7的I2C数据
  • 分析U7的IO逻辑
  • 编写U7控制驱动程序
  • 电量统计芯片CSE7766功能的实现
  • 编写测试固件
  • 按钮及网络控制功能完善
  • 断电记忆功能完善
  • MQTT接入完善
  • 迁移IO驱动以支持ESPHome 1.14 (感谢老妖)

可能存在的BUG

  • 可能会出现开关重置的现象,大致是因为wifi模块重启造成,配置文件默认重启功能已禁用

项目结语

  • 本项目正式完结不再维护。

其他可供使用的衍生项目

由于DC1的U7芯片属于简配版本的CAT9554,频率只有20K,而正品是支持400K的。另ESPHOME的最低频率是50K。另外上电恢复部分在1.14上也有改动,造成上电恢复功能出现异常。综合以上问题,推荐使用衍生的项目

推荐,功能完善,有WEB后台

程序更简洁,可作为学习参考

开发过程回顾

1、已知的一些硬件资料

WiFi模组

WiFi模组型号为芯海CSM64F02,经过分析,这款模组和乐鑫的ESP-WROOM-02是一样的。

image

U7

IO扩展芯片,具体型号暂时未知,经过逻辑分析仪的逻辑分析(感谢killadm和老妖),可能是cat9554的变种(山寨版)。

image

U11

电量统计芯片,具体型号为CSE7766

image

继电器

继电器型号为永能家用继电器YX201系列的产品,控制电压为5V。

image

2、各芯片引脚对应关系

主控制板正面

image

主控制板背面

image

致谢

以下排名不分先后,为随机。

  • killadm:导出原始固件,提供WiFi芯片对比图,主控制板WiFi模块、U7移除后的PCB照片,U7逻辑分析数据采集
  • 老妖:U7驱动编写,U7逻辑分析
  • 实验幼儿园小二班扛把子:测试引脚走向
  • Heller、巴山耗子:初期资料整理
  • 风中的summer:提供清晰的电路板照片、拆机过程照片
  • OttoWinter:esphome的作者

感谢各位使用本方法的玩家,欢迎加入QQ群776817275

免责申明

以上纯属个人爱好,因为使用上述方法造成的任何问题,不承担任何责任。

部分图片来源于网络,如果涉及版权,请通知删除。