[4月1日更新!!]斐讯DC1插座自制固件接入ha

电子专业 徐 自远 4537℃

请注意:工具也要更新到新版本,否则可能会出现问题!前期因按过重启按钮的,可能导致固件损坏,必须重新线刷!老版本的,可能无法OTA,也要重新线刷一次。

修复诸多问题,现在可以正常使用了!

目前功能情况:

  1. 断电保持功能正常
  2. 总开关关闭,其他开关同步关闭
  3. 总开关关闭的情况下,开启其他开关,总开关会打开
  4. LOGO灯和总开关联动,同时开、关
  5. 增加连接的SSID信息,以及当前设备的IP地址

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

WHY

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

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

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

请关注github项目

项目地址

接入方法

  1. 按照下面的方法更新固件
  2. Home Assistant中添加esphome组件
  3. 输入dc1对应的ip地址
  4. 配置lovelace

更新固件方法

请勿带市电操作!!!危险自负!!!

TTL接线方法

1、拆主控板

用到的工具

image

拆板步骤

如果插座刚通过电,拆的时候千万不要去摸电路板,电容带电!!!

image
image
image
image
image
image

2、主控板接线

用到的TTL工具

任选一个即可
image

接线方法

image
image

固件编译及刷固件方法

0、前置条件

请确认已经按照本方法连接好TTL工具,并且TTL工具驱动已经正确安装。

1、下载固件配置文件(下方右键另存为)

固件版本定义:

  • dc1_homeassistant:相对稳定版本,用于接入Home Assistant
  • dc1_homeassistant_test:测试版本,用于接入Home Assistant
  • dc1_mqtt:相对稳定版本,用于接入mqtt平台
  • dc1_mqtt_test:测试版本,用于接入mqtt平台

2、修改固件配置文件

按照自己的情况修改配置文件中substitutions内的参数。其他的配置如果不是很了解就不要去修改了。

关于WiFi模组版本的选择,请查看下图,找出自己对应的芯片版本即可。
看红色箭头的位置,带B的为csm64f02_b,不带B的为csm64f02

3、搭建编译环境及刷固件

因platformio需要python2.7的环境,所以python2.7为必须。

  • Windows 系统
  1. 自搭环境版:点此查看
  2. 免搭建直接用版本:点此查看
  • MacOS

MacOS自带python2.7,所以无需再安装。

从此处下载esphome(打开页面后,右上角「 Clone or download 」 → 「 Download ZIP 」),下载后解压缩。

打开终端,执行如下命令:(如需python虚拟环境,请自行配置virtualenv)

  • Linux

    与MacOS类似,参考MacOS的方法

  • Docker

    docker版本暂无

开发过程回顾

1、已知的一些硬件资料

WiFi模组

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

image

U7

经过分析,这是一颗IO扩展类的芯片,具体型号暂时未知,可能是cat9554的变种。

image

U11

这是一颗电量统计用的芯片,具体型号为CSE7766

image

继电器

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

image

2、各芯片引脚对应关系

主控制板正面

image

主控制板背面

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的物联网的集成平台,为物联网设备提供核心服务,系统管理和统一操作方式。

接入方法

待补充

3、其他支持mqtt的平台

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

接入方法

待补充

TODO LIST

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

可能存在的BUG

  • 可能会出现开关重置的现象,怀疑是wifi模块重启或者是CAT9554驱动的bug,未验证

正在进行中

  • 迁移到新版ESPHOME

开发过程回顾

1、已知的一些硬件资料

WiFi模组

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

U7

经过分析,这是一颗IO扩展类的芯片,具体型号暂时未知,可能是cat9554的变种。

U11

这是一颗电量统计用的芯片,具体型号为CSE7766

继电器

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

2、各芯片引脚对应关系

主控制板正面

主控制板背面

致谢

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

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

致谢

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

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

免责申明

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

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

转载请注明:徐自远的乱七八糟小站 » [4月1日更新!!]斐讯DC1插座自制固件接入ha

喜欢 (1)

苏ICP备18041234号-1 bei_an 苏公网安备 32021402001397号