本帖最后由 silas3082 于 2025-8-2 08:00 编辑
之前做了一个bthome接入ha的按钮(https://bbs.hassbian.com/thread-29910-1-1.html),使用起来效果还不错,就是会出现偶尔按钮按下,ha那里没有反应的情况,需要多按几次才行。经过测试,门磁可以实施变化状态,门磁和按钮的硬件端都是一样的,区别就是按钮使用的是bthome中的event,门磁使用的是door,具体什么原因我也不知道。于是又做了一个门磁,并保留了按钮的功能,改变了pcb的形状,并且重新设计了外壳。
一、PCB设计
在原来按钮的基础上增加门磁,并且增加两个0402电阻(虚拟)作为引脚选择的触点
PB13按钮、PB10门磁,用哪一个就把哪一个0R电阻短接,分为下边四个场景:
用门磁:都不用短接,空着
用按钮:
使用13端口,短接PB13;
使用10端口,短接PB10门磁
用按钮+门磁:短接PB13
二、外壳设计
外壳重新设计成方形的,方便放门磁开关,并且保留原来的按钮,在上盖上加上一个一体的按钮,不用额外增加零部件
pcb通过M2短螺丝固定在底壳上,上下壳通过卡扣的形式组合在一块
门磁地方开孔表示干簧管位置
三、接入流程
参照原作者写的,已经很具体了。(这里我刷原代码需要填写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了
五、功能测试
按钮可以实现单击,双击,三击,长按,双击长按,三击长按等多种功能
门磁可以实时反应门的开关状态
可以根据实际情况选择性的使用门磁、按钮或者门磁+按钮
|