本帖最后由 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发指令的控制方法。导致反而是走服务器的方式更稳定了。只是走服务器的插件也因为太老各种坑。。。
分享出来希望买了这个开关的坛友少走一点弯路,没买的也可以放心买,是可以稳定控制的。只是暂时无法刷其他固件而已。
|