本帖最后由 gasment 于 2026-9-12 16:22 编辑
平头熊PTX-AK的双键无线开关,米家蓝牙ble协议。
用gateway3接入,无网时会失联,自身信号也不好,经常丢消息,因此没用几次就闲置了。 闲来无事拆开研究下,看看有没有改造方案。
主板正面,外设就两个LED两个微动,简单的很
很鸡贼,主控丝印打磨掉了,但是这个SWS出卖了你。Telink的主控最喜欢用这个单线烧录了。
事后也确认了,主控就是Telink的TLSR825x,很多米家的蓝牙温湿度计都用的这个主控,目前较为成熟的自制固件方案是pvvx的ATC_MiThermometer,不过这里用不到温湿度,可以用ATC_MiThermometer作为基板,裁剪出适合这个无线开关的固件,毕竟就两个按键2个led,改动不大。
需要准备的工作和工具: 第一步,备份原厂固件 1、将USB串口工具,按下面图示连接,3.3V先不要通电,同时拆掉纽扣电池
2、解压TlsrComSwireWriter压缩包,在TlsrComSwireWriter文件夹内打开cmd,然后执行:
注意,com3换为你自己对应的com口,执行后在5s内给3.3V通电
py TLSR825xComFlasher.py -p COM3 -t 5000 -c 24 -b 460800 rf 0 0x80000 factory_ptx_ak2.bin
3、下载时间比较长大约5分钟,期间保证连接稳定,成功后原厂固件会保存到当前目录下的factory_ptx_ak2.bin,大小512KB
TLSR825x Flasher version 29.11.24
---
Open COM3, 460800 baud...
Reset module (RTS low)...
Activate (5000 ms)...
SWire speed for CLK 24.0 MHz... ok.
Outfile: factory_01.bin
Read Flash from 0x000000 to 0x080000...
---
Worked Time: 305.936 sec
Done!
4、备份好此固件,如需还原,同样使用TlsrComSwireWriter刷入:
py TLSR825xComFlasher.py -p COM3 -t 5000 -c 24 -b 460800 wf 0 factory_ptx_ak2.bin
第二步,烧录自制固件
1、将自制固件放入TLSR825xComFlasher的文件夹内
2、在TlsrComSwireWriter文件夹内打开cmd,然后执行:
py TLSR825xComFlasher.py -p COM3 -t 5000 -c 24 -b 460800 wf 0 PTX_AK2_BTHome.bin
注意,com3换为你自己对应的com口,执行后在5s内给3.3V通电
3、烧录会快一些,大概30s左右,完成后断开3.3V供电
TLSR825x Flasher version 29.11.24
-------------------------------------------------------
Open COM3, 460800 baud...
Reset module (RTS low)...
Activate (5000 ms)...
SWire speed for CLK 24.0 MHz... ok.
Inputfile: PTX_AK2_BTHome.bin
Write Flash data 0x00000000 to 0x0000b914...
-------------------------------------------------------
Worked Time: 30.605 sec
Done!
4、撤掉连接线,装回电池,测试LED是否跟随按键动作
第三步,接入HA
一种方式是HA主机自带蓝牙可直接发现设备,
另一种是通过蓝牙代理。
鉴于此开关的信号确实拉,需要确保接收端足够近才能保证通讯不丢包不漏消息,这里使用esphome蓝牙代理比较合适。
只需要为现有esphome设备配置额外组件即可:
esp32_ble_tracker:
bluetooth_proxy:
active: true
但是注意esphome ble组件占用内存比较多,应选择剩余资源较为富裕的设备部署蓝牙代理。
蓝牙代理正常运行后,HA内即可自动发现此无线开关:
实体列表,按键支持单击、双击、三击、长按。电池电量应该是不准的,因为原厂固件也没有百分比电量,只有低电量。
✅以上 |