『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 8078|回复: 11

[修仙教程] 终于搞定!Sonoff开关SA025(CKW04芯片)原生固件完美响应

[复制链接]

7

主题

122

帖子

486

积分

中级会员

Rank: 3Rank: 3

积分
486
金钱
364
HASS币
0
发表于 2020-3-31 23:51:29 | 显示全部楼层 |阅读模式
本帖最后由 pjc1028 于 2020-9-7 09:37 编辑

月初买开关时,因为贪图好看买了Sonoff新款的开关SA025

                               
登录/注册后可看大图


以下是惨痛的烧脑、上头经历,不想看的可直接跳到底下操作方法

初试插件:
买回来用github上大神AlexIT的插件加载后,控制开关极其的不稳定,高延迟、失联的情况频发,根本没法用。这种不稳定的感觉让人非常的上头
经过各种调参数、改路由设置、采用本地功能,都没有任何效果。
期间萌生了刷机的想法,拆开来拍照请教了坛友,发现这款用的是新的CKW04芯片,无法刷任何其他固件,包括tasmota
只好继续研究插件。

本地or在线控制?
开始一直觉得可能是插件代码指向的是外国服务器,国内的网发送指令不稳定。简单看了一下代码里的内容,发现有region这个参数,然而调成cn后依旧没有改变。

也尝试了插件的本地控制功能,直接在设置中输入开关的设备编码,依旧...


射频控制经历了一周多的折腾后,已经从开始的各种上头,到每次调完一按————没反应,呵呵,习以为常
上周随手翻了说明书,发现有433射频的功能,抱着死马当活马医的想法,TB4块钱买了个RF模块。用HA自带的rf功能,确实能控制,也挺稳定,就是有1-2秒的延迟,很偶尔会没反应。但重点是...没有状态反馈啊!!相当于有个遥控器发控制指令,但并不能读取当前灯是开还是关


回归代码:
每天面对着这个失控的开关,我是真的不服,时不时就想试试啥方法。
这周想了想总觉得还是服务器问题,决定认真读插件的代码。外行业余选手读起来真的还挺吃力。。
看AlexIT代码的同时,也同时看另一个Peterbuga的插件,之前因为AlexIT的插件比较新,而且有多种设备类型支持,主要还是用他的。Peter的插件比较老,新版本的HA用起来有点问题,一直登不上,也就懒得研究。
看了一晚上代码,发现地区的代码好像没什么影响,自己试着打开代码中不同地区的网址端口,都挺快的。
直到前天晚上看到两个插件的一个不同之处:
Alex的插件发送命令时,是发送给本地开关的ip的!Peter的插件是直接发送给服务器的!
越想越不对劲,结合之前app中一直无法开启“本地控制功能的情况,怀疑是不是这个开关根本不支持本地控制。
在看github介绍的时候,发现Alex说了一句,“Peter的插件是线上控制,我的是本地控制。更加确定了自己的想法。
决定应该再试试Peter的插件。
Peter的插件因为很久没更新了,和新版本各种不兼容,在外网查了好多帖子之后,解决了三个大坑
在无数次重启HA之后,终于!出现了新的灯具开关,控制非常灵敏!虽然是走服务器,但几乎感觉不到延迟!甚至比app控制还要快!!
留下了感动的泪水...... T T


背景比较啰嗦,以下是干货操作方法:

1. 下载Peterbuga的插件,把sonoff文件夹放入custom_components\ 文件夹下
插件地址: https://github.com/peterbuga/HASS-sonoff-ewelink

2. 在sonoff文件夹中新建一个manifest.json,粘入以下代码(第一个坑):
{
"domain": "sonoff",
"name": "Sonoff",
"documentation": "https://github.com/peterbuga/HASS-sonoff-ewelink",
"requirements": ["websocket-client==0.54.0"],
"dependencies": [],
"codeowners": ["@peterbuga"]
}
如果不加上面的文件,比较新版本的HA中会出现sonoff插件不被识别的错误


3. 在HA的configuration.yaml中加入
sonoff:
  username: '+86135xxxxxxxx'
  password: xxxxxxxx
  api_region: 'cn'
    第三点有两个坑要注意,
    第一个是一定要加api_region: 'cn',不然会默认是欧洲,会报错无法登陆
    第二个是username后的电话号码,一定要加''单引号!,否则会报登陆错误,并且就是不告诉你是这个原因
    (这个在外网上查了半天才找到一个回答,因为如果不加引号,HA会默认把+号删掉,导致传到服务器的用户名不完整)




保存后重启HA,在设备中就能看到Sonoff的灯了。虽然是走服务器发送指令控制的,但是反应真的很快,几乎无延时感。


总结:没想到一直以为更靠谱的本地模式坑了我这么久。。。估计因为这个是新的芯片,并不是很兼容直接给设备本地ip发指令的控制方法。导致反而是走服务器的方式更稳定了只是走服务器的插件也因为太老各种坑。。。

分享出来希望买了这个开关的坛友少走一点弯路,没买的也可以放心买,是可以稳定控制的。只是暂时无法刷其他固件而已。














评分

参与人数 2金钱 +15 收起 理由
sorrypqa + 10 感谢楼主分享!
ngcgba + 5

查看全部评分

回复

使用道具 举报

71

主题

1146

帖子

6321

积分

论坛元老

Rank: 8Rank: 8

积分
6321
金钱
5170
HASS币
30
发表于 2020-4-1 07:12:32 | 显示全部楼层
是惨痛的烧脑、上头经历
回复

使用道具 举报

9

主题

250

帖子

2162

积分

金牌会员

Rank: 6Rank: 6

积分
2162
金钱
1912
HASS币
15
发表于 2020-4-1 09:56:42 | 显示全部楼层
感謝經驗分享,我也買了一批sonoff牆上開關還在路上,希望一切順利^^"
回复

使用道具 举报

7

主题

122

帖子

486

积分

中级会员

Rank: 3Rank: 3

积分
486
金钱
364
HASS币
0
 楼主| 发表于 2020-4-1 16:50:33 | 显示全部楼层
diba.qiu 发表于 2020-4-1 09:56
感謝經驗分享,我也買了一批sonoff牆上開關還在路上,希望一切順利^^"

如果是用8266老芯片的型号还是建议用Alex的插件,支持的类型多一些
回复

使用道具 举报

9

主题

250

帖子

2162

积分

金牌会员

Rank: 6Rank: 6

积分
2162
金钱
1912
HASS币
15
发表于 2020-4-1 18:17:11 | 显示全部楼层
pjc1028 发表于 2020-4-1 16:50
如果是用8266老芯片的型号还是建议用Alex的插件,支持的类型多一些

因為還沒看到東西所以不知道是甚麼芯片,我也希望直接用alex插件,對我這種小白是最好的選擇
回复

使用道具 举报

0

主题

83

帖子

831

积分

高级会员

Rank: 4

积分
831
金钱
748
HASS币
0
发表于 2020-4-6 10:51:56 来自手机 | 显示全部楼层
谢谢楼主的研究
回复

使用道具 举报

0

主题

2

帖子

22

积分

新手上路

Rank: 1

积分
22
金钱
20
HASS币
0
发表于 2020-5-27 15:05:14 | 显示全部楼层
改完后 用易微联APP还能控制吗?
回复

使用道具 举报

3

主题

295

帖子

2867

积分

金牌会员

Rank: 6Rank: 6

积分
2867
金钱
2572
HASS币
0
发表于 2020-5-27 16:55:29 | 显示全部楼层
支持下,目前basic和mini用alex的插件没有问题
回复

使用道具 举报

7

主题

122

帖子

486

积分

中级会员

Rank: 3Rank: 3

积分
486
金钱
364
HASS币
0
 楼主| 发表于 2020-5-29 22:06:22 | 显示全部楼层
kust336 发表于 2020-5-27 15:05
改完后 用易微联APP还能控制吗?

可以,实际这个方法也是走易微联的渠道的
回复

使用道具 举报

7

主题

181

帖子

2160

积分

金牌会员

Rank: 6Rank: 6

积分
2160
金钱
1979
HASS币
0
发表于 2020-8-31 15:58:04 | 显示全部楼层
感谢楼主,正好解决了最近SONOFF开关在HOMEAssistant不能加载的问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-4-26 13:29 , Processed in 0.063445 second(s), 38 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表