三步搞定房间级蓝牙定位:Bermuda BLE Trilateration 的 HomeAssistant 终极实战指南
【免费下载链接】bermudaBermuda Bluetooth/BLE Triangulation / Trilateration for HomeAssistant项目地址: https://gitcode.com/gh_mirrors/be/bermuda
晚上七点,你抱着快递盒走到家门口。门锁识别了指纹,客厅灯却没反应。你腾出手解锁手机,走进玄关,灯这才慢悠悠亮起来——就差这几秒,归家的幸福感打了对折。
问题出在哪?市面多数 HomeAssistant 蓝牙追踪方案只能告诉你"手机在家",判断不了"手机在哪个房间"。于是"进门亮灯"这种基础自动化,只能靠门磁或人体传感器曲线救国。
Bermuda BLE Trilateration 就是冲着这个痛点来的:一个开源的 HomeAssistant 蓝牙定位集成,把设备位置精度从"在家/不在家"提升到"客厅/卧室/书房",让灯在你真正踏入房间的那一刻亮起。
一句话说清它是什么
Bermuda 用多个蓝牙代理(Bluetooth Proxy)收到的信号强度做比对,把任意 BLE 设备的实时位置精确到房间(Area)级别,同时生成距离传感器、设备追踪器,还能联动 HomeAssistant 的人员(Person)功能。
它和普通蓝牙追踪最大的区别在于:别人用单个接收器做"有信号 = 在家"的粗判断,Bermuda 把多个代理的信号放在一起"比大小",谁最强就判定设备在谁附近。硬件成本几乎为零,体验却完全不同。
谁适合用:三类用户与四个高价值场景
先对号入座,看看你是不是它的目标用户:
- 智能家居折腾党:追求"人进灯亮、人走灯灭",不想再买一堆人体传感器
- 随身物品追踪者:手机、手表、钥匙扣、钱包贴片,丢哪了心里有数
- 已有 ESP32 / Shelly 设备的玩家:让手头硬件物尽其用,不用额外投资
这四个场景里它价值最大:
| 场景 | 效果 |
|---|---|
| 进门亮灯、离房关空调 | 以房间为触发单位,而非全屋 |
| 贵重物品防丢 | 明确显示"物品在哪个房间、距离多近" |
| 家人房间级追踪 | 配合 Person 功能,实时知道家人在哪 |
| 手环/手表状态联动 | 睡觉自动切夜间模式,起床自动恢复 |
从零到一:5 分钟跑通最小可用配置
不用看几十页文档,按这条动线走,基本能一次跑通:准备 → 安装 → 配置 → 首次生效。
第 1 步:准备硬件(3 样就够)
- 运行最新版 HomeAssistant 的主机
- 至少 1 个蓝牙代理:ESP32 开发板(刷 ESPHome 固件并启用
bluetooth_proxy组件),或 Shelly Plus 及以上设备;USB 蓝牙适配器能用但不推荐,它不带时间戳,只适合粗定位 - 1 台要追踪的 BLE 设备(手机、手表、信标都行)
第 2 步:安装集成
推荐走 HACS:打开 HACS → 搜索 "Bermuda" → 安装 → 重启 HomeAssistant。
不依赖 HACS 的话可以手动装:先git clone仓库 https://gitcode.com/gh_mirrors/be/bermuda ,把custom_components/bermuda整个文件夹复制到 HomeAssistant 配置目录下的custom_components里,再重启。
第 3 步:添加并勾选设备
进入"设置 → 设备与服务 → 添加集成",搜索 "Bermuda BLE Trilateration"。添加成功后点击 CONFIGURE,在配置弹窗里勾选你想追踪的蓝牙设备——系统会自动列出它能看到的所有 BLE 设备。
安装完成后,在 HomeAssistant 的设备与服务界面即可看到 Bermuda 集成及其管理的设备、实体
第 4 步:验证首次生效
打开设备详情页,观察 Area(区域)传感器。如果代理正常且已分配区域,这里会从 Unknown 变成具体的房间名;距离传感器也会显示米数。看到这两项,你的房间级定位就已经跑起来了。
原理拆解:一台收音机听不出方向,三台可以
打个比方:你站在客厅中间拍手,离你最近的收音机听到的声音最大。换到蓝牙世界,拍手声就是设备持续广播的 BLE 数据包,收音机就是各个蓝牙代理,声音大小就是信号强度(RSSI)。
Bermuda 的处理逻辑只有三步:
- 信号转距离:每个代理把听到的 RSSI 换算成距离,公式在
custom_components/bermuda/util.py的rssi_to_metres:10^((ref_power - rssi) / (10 * attenuation)),其中ref_power是 1 米处的参考信号强度,attenuation是环境衰减系数 - 最近者胜:同一个设备如果被多个代理听到,Bermuda 比较各代理上报的距离,判定设备属于距离最小的那个代理所在的房间
- 平滑防抖:单次信号会抖动,Bermuda 引入时间窗口和采样平滑(
smoothing_samples),避免房间判定在几秒内来回横跳
核心调度逻辑在custom_components/bermuda/coordinator.py,每 1.05 秒处理一轮数据,响应速度足够日常自动化使用。
用表格对比一下它和传统方案的差距:
| 对比项 | 传统蓝牙追踪 | Bermuda |
|---|---|---|
| 判断维度 | 单个接收器有无信号 | 多代理信号强度比对 |
| 输出粒度 | 在家 / 不在家 | 精确到房间 + 距离(米) |
| 额外硬件 | 无 | 1 个以上蓝牙代理 |
| 随机 MAC 设备 | 基本无解 | 支持 iBeacon 与 IRK |
| 自动化价值 | 只能做离家触发 | 房间级精细触发 |
实战演示:让灯在你进门那一刻亮起
下面这个案例可以完整复现,全程不需要写一行代码。
场景目标:手机进入书房 → 台灯自动亮;手机离开书房 → 3 分钟后关灯。
配置过程:
- 在"设置 → 区域"里,给书房、客厅等每个房间命名,并把对应的蓝牙代理设备分配进去
- 回到 Bermuda 的 CONFIGURE,勾选你的手机
- 到"设置 → 自动化",新建两条自动化:一条监听
sensor.手机_area变为"书房"时开灯,另一条监听它离开"书房"时延迟 3 分钟关灯
用之前 vs 用之后:
| 时刻 | 用之前 | 用之后 |
|---|---|---|
| 走进书房 | 灯不亮,得手动或靠人体传感器 | 手机一进房间,台灯立刻亮起 |
| 离开书房 | 灯常亮,容易忘关 | 3 分钟后自动熄灭,不浪费电 |
| 人在客厅 | 无法区分房间,容易误触发 | 判定精准,各房间自动化互不干扰 |
设备详情页清晰展示当前区域、与各蓝牙代理的距离等实时传感器数据,是排查定位问题的第一现场
进阶调优:三个让定位更准的实用技巧
基础跑通后,想再提升精度,记住这三招:
技巧 1:校准参考电平与环境衰减
默认ref_power(-55 dBm)和attenuation(3)只是通用起点,不代表你的家居环境。拿着手机在代理 1 米处实测 RSSI,把真实值填进参考电平;如果距离普遍偏大或偏小,微调衰减系数。适用场景:距离数值明显失真时。注意:每次改动后观察 10 分钟左右再下结论,别急着来回调。
技巧 2:调整平滑采样数
custom_components/bermuda/const.py里的smoothing_samples默认 20。如果房间判定频繁跳变,把它调大(如 30~40),换来更稳的结果;如果希望响应更快,可以调小。适用场景:定位结果"飘忽不定"时。注意:数值过大,人快速穿过房间时响应会明显变慢。
技巧 3:给每个代理分配独立区域,善用诊断服务
定位不准的头号原因其实是"代理没分配区域"——它再准也没地方可归。去"设置 → 区域"逐个核对。排查时调用 HomeAssistant 开发者工具里的bermuda.dump_devices服务,它会返回每个设备与各代理的原始距离数据,问题一目了然。适用场景:某个房间一直判错或显示 Unknown 时。
避坑速查:症状 → 原因 → 对策
把新手最常见的翻车现场整理成速查表,遇到问题直接对号入座:
| 症状 | 原因 | 对策 |
|---|---|---|
| 距离一直显示 Unknown | 代理没收到该设备的广播 | 检查设备蓝牙是否开启、代理与设备间是否有厚墙/金属遮挡 |
| Area 永远是同一个房间 | 只有一个代理,或代理没分配到具体区域 | 增加代理数量,并在"设置 → 区域"给每个代理指派房间 |
| 房间判定来回跳 | 单次信号抖动,平滑不足 | 调大smoothing_samples,或缩短代理间的重叠覆盖 |
| Android 手机完全追踪不到 | 手机使用随机 MAC 地址 | 用 HomeAssistant 的 Private BLE Device 配置 IRK,或改用 iBeacon 信标 |
| 距离数值普遍偏大/偏小 | 参考电平与环境衰减不合实际 | 按"技巧 1"做一次 1 米实测校准 |
| 集成看不到任何设备 | 代理没被 HA 蓝牙后端接管 | 确认 ESPHome 已启用bluetooth_proxy,且代理本身在 HA 里在线 |
写在最后:你的下一步
定位这件事,以前是"高级玩家的玩具",现在一个免费开源集成就能做到房间级精度。Bermuda 的价值不在于多炫的技术,而在于它把"人在哪"这个信息变成了任何自动化都能直接使用的标准实体。
下一步很简单:打开 HACS,搜 "Bermuda",装一个代理,把你的手机勾进配置——然后等晚上回家,看那盏灯会不会在你踏进玄关的瞬间亮起。
它会亮的。
【免费下载链接】bermudaBermuda Bluetooth/BLE Triangulation / Trilateration for HomeAssistant项目地址: https://gitcode.com/gh_mirrors/be/bermuda
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考