斐讯dc1服务器什么时候修复,[4月1日更新!!]斐讯DC1插座自制固件接入ha

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

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

目前功能情况:

断电保持功能正常

总开关关闭,其他开关同步关闭

总开关关闭的情况下,开启其他开关,总开关会打开

LOGO灯和总开关联动,同时开、关

增加连接的SSID信息,以及当前设备的IP地址

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

ca48f6a4a192fdbb75efa86a8c4b60f6.png

WHY

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

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

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

请关注github项目

接入方法

按照下面的方法更新固件

Home Assistant中添加esphome组件

输入dc1对应的ip地址

配置lovelace

更新固件方法

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

TTL接线方法

1、拆主控板

用到的工具

5e854059b83c9599f7dbff7e835dfb20.png

拆板步骤

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

99c1106afac5bbab8f9995bcb88f78ad.png

46de7b2a69d2cfbd678794fa9b7ef8ae.png

77e324992689bbea8aa198ce2f3deddb.png

c11432b3f476cf23f12571f78917e2cb.png

eaa01fd42523a802f151333351265cb6.png

89dd74f9cccbd36ff0f03b2358e2aaa3.png

2、主控板接线

用到的TTL工具

任选一个即可

82b73b5f734361f5047d795e830d23b8.png

接线方法

64ac4a797dc30dc5c183d0e972f452ef.png

936967ad2ecea73a69563d1203d3d9ad.png

固件编译及刷固件方法

0、前置条件

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

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

固件版本定义:

dc1_homeassistant:相对稳定版本,用于接入Home Assistant

dc1_homeassistant_test:测试版本,用于接入Home Assistant

dc1_mqtt:相对稳定版本,用于接入mqtt平台

dc1_mqtt_test:测试版本,用于接入mqtt平台

Python

配置文件对应版本更新历史

dc1_homeassistant

v2019.03.28.002

编译固件前请更新esphomeesphome-core到最新版本!

1、优化按钮,解决重启问题

dc1_homeassistant_test

dc1_mqtt:无

dc1_mqtt_test:无

1

2

3

4

5

6

7

8

9

10

11

12

13

配置文件对应版本更新历史

dc1_homeassistant:

v2019.03.28.002:

编译固件前请更新esphome及esphome-core到最新版本!

1、优化按钮,解决重启问题

dc1_homeassistant_test:

dc1_mqtt:无

dc1_mqtt_test:无

2、修改固件配置文件

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

Python

#--------------------- 只需要改这下面的内容 ---------------------

substitutions:

#WiFi芯片版本,型号中带B的为csm64f02_b,不带B的为csm64f02

board_model: csm64f02

#设备名称(多个dc1改成不一样的)

device_name: phicomm_dc1

#WiFi_SSID名称

wifi_ssid: '2L'

#WiFi密码

wifi_password: '1122334455'

#如果SSID是隐藏的,设置为true

wifi_fast_connect: 'false'

#WiFi离线多久后重启设备,秒s/分钟min/小时h,不需要此功能设置为0s

wifi_reboot_timeout: 600s

#OTA密码

ota_password: '123456'

#与客户端(如Home Assistant)失去连接多久后重启设备,秒s/分钟min/小时h,不需要此功能设置为0s

api_reboot_timeout: 600s

#电量统计的数据更新时间,秒s/分钟min/小时h

cse7766_update_interval: 1s

#--------------------- 只需要改这上面的内容 ---------------------

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#--------------------- 只需要改这下面的内容 ---------------------

substitutions:

#WiFi芯片版本,型号中带B的为csm64f02_b,不带B的为csm64f02

board_model:csm64f02

#设备名称(多个dc1改成不一样的)

device_name:phicomm_dc1

#WiFi_SSID名称

wifi_ssid:'2L'

#WiFi密码

wifi_password:'1122334455'

#如果SSID是隐藏的,设置为true

wifi_fast_connect:'false'

#WiFi离线多久后重启设备,秒s/分钟min/小时h,不需要此功能设置为0s

wifi_reboot_timeout:600s

#OTA密码

ota_password:'123456'

#与客户端(如Home Assistant)失去连接多久后重启设备,秒s/分钟min/小时h,不需要此功能设置为0s

api_reboot_timeout:600s

#电量统计的数据更新时间,秒s/分钟min/小时h

cse7766_update_interval:1s

#--------------------- 只需要改这上面的内容 ---------------------

关于WiFi模组版本的选择,请查看下图,找出自己对应的芯片版本即可。

看红色箭头的位置,带B的为csm64f02_b,不带B的为csm64f02

35565054a1b005a4cf031cf3c918b73e.png

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

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

Windows 系统

自搭环境版:点此查看

免搭建直接用版本:点此查看

MacOS

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

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

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

Python

# 进入esphome的setup.py所在目录

cd xxxxx

# 编译 esphome

# 如提示权限不足,命令前加上sudo

python setup.py build

# 安装 esphome

python setup.py install

# 进入配置文件所在目录

cd xxxxx

# 编译固件(xxxxx.yaml为你的配置文件名字)

esphome xxxxx.yaml compile

# 刷固件(线刷或者OTA皆可)

esphome xxxxx.yaml upload

1

2

3

4

5

6

7

8

9

10

11

12

13

# 进入esphome的setup.py所在目录

cdxxxxx

# 编译 esphome

# 如提示权限不足,命令前加上sudo

pythonsetup.pybuild

# 安装 esphome

pythonsetup.pyinstall

# 进入配置文件所在目录

cdxxxxx

# 编译固件(xxxxx.yaml为你的配置文件名字)

esphomexxxxx.yamlcompile

# 刷固件(线刷或者OTA皆可)

esphomexxxxx.yamlupload

Linux

与MacOS类似,参考MacOS的方法

Docker

docker版本暂无

开发过程回顾

1、已知的一些硬件资料

WiFi模组

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

41918ebc9f1a8b06aa6de01875819312.png

U7

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

aff5ebcbd7a0bde569f22dce2ccb35d4.png

U11

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

3844602e4ce3a110c9aaa6eed1276b7c.png

继电器

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

e812d7f8e160292a0f82f47a3d0a7e90.png

2、各芯片引脚对应关系

主控制板正面

f4ae54e07572d8b5bbdaf279d40e54d6.png

主控制板背面

0526b792f5e19932bf04ec4fb37ccd58.png

WHY

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

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

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

为什么选择ESPHome制作固件

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

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

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

1、Home Assistant

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

接入方法

Home Assistant中[设置]-[集成]-添加esphome组件

输入dc1对应的ip地址

配置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是一样的。

d6a107b23efa8e1cc972f391426ed630.png

U7

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

dd3fd242b25f12bec60f007dea544276.png

U11

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

35a591f5dc9b1f77951af89f68d3f7e9.png

继电器

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

05fe4e31245f5230e5042b0e266208f2.png

2、各芯片引脚对应关系

主控制板正面

eb163bbae902f5d033b633572ee32bd6.png

主控制板背面

6a1a488d6347124ac560a07b089cebab.png

致谢

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

killadm: 导出原始固件,提供WiFi芯片对比图,主控制板WiFi模块、U7移除后的PCB照片,U7逻辑分析数据采集

老妖:U7驱动编写,U7逻辑分析

实验幼儿园小二班扛把子: 测试引脚走向

Heller、巴山耗子: 初期资料整理

风中的summer: 提供清晰的电路板照片,拆机过程照片

OttoWinter:esphome的作者

9cca3f27898b6af2e790dc4f75f9391d.png

致谢

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

killadm:  导出原始固件,提供WiFi芯片对比图,主控制板WiFi模块、U7移除后的PCB照片,U7逻辑分析数据采集

老妖:U7驱动编写,U7逻辑分析

实验幼儿园小二班扛把子:  测试引脚走向

Heller、巴山耗子: 初期资料整理

风中的summer: 提供清晰的电路板照片,拆机过程照片

OttoWinter:esphome的作者

免责申明

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

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值