本帖最后由 silas3082 于 2025-7-25 11:05 编辑
一、背景
从一开始玩ha就想着要是能自己做一个能接入ha的无线开关就好了
最开始使用的是esp8266,从1688上买的外壳,使用espnow+mqtt的方式接入ha
方法是可行,可是后来发现esp8266并没有那么低功耗,一块2032电池用不了几天就没电了
听说esp32低功耗方面管理的很好,但是如果使用esp32 成本会高不少,于是没研究
终于在逛立创开源平台的时候发现减熵大佬的BTHome格式的CH592低功耗门磁+照度+温湿度+无线按钮项目(https://oshwhub.com/entropy/btho ... i-du-wu-xian-an-niu),发现大佬已经实现了通过bthome把门磁,按钮,温湿度,照度接入ha
二、设计
于是在大佬项目的基础上,只保留了按钮,重新设计了pcb
并给按钮设计了一个3D外壳,使其真正成为一个按钮
三、接入流程
参照原作者写的,已经很具体了。(这里我刷原代码需要填写bthome加密密钥,填入之后ha上边提示错误,索性把加密密钥去了,可以直接添加了)
接入 Home Assistant
硬件: 使用 ESP32 开发板/模块。
软件: 在 ESPHome 固件中启用 bluetooth_proxy 组件。
# ESPHome 配置示例
bluetooth_proxy:
esp32_ble_tracker:
scan_parameters:
interval: 320ms
window: 320ms #设置该值等于interval,最大限度提高广播数据主动侦听时间,提高捕捉概率
流程:
将烧录了 ESPHome(含 bluetooth_proxy)的 ESP32 设备添加到 Home Assistant。
Home Assistant 会自动发现附近的 BTHome 蓝牙设备。
发现设备后,在 Home Assistant 界面输入设备的 BTHome 加密密钥 即可完成添加(我上传的代码中已经去掉了输入密钥的流程,可直接添加)。
注意: 偶尔可能出现密钥正确但添加失败的情况,通常稍等片刻重试即可成功。
四.低功耗
低功耗方面作者说是平均工作电流: ~6uA
以上来自原作者数据,我没有具体测试,从报告看,一节2032可以用1142天,非常牛逼plus了,去掉光照,温湿度,门磁估计会更高
五、功能测试
按钮可以实现单击,双击,三击,长按,双击长按,三击长按等多种功能,有电池电压显示(电压我用万用表测试2.8v,显示3.2v,可能有点差距)
六、视频演示
|