HomeAssistant 蓝牙室内定位终极指南:Bermuda 从零到一实现房间级追踪
HomeAssistant 蓝牙室内定位终极指南:Bermuda 从零到一实现房间级追踪
【免费下载链接】bermudaBermuda Bluetooth/BLE Triangulation / Trilateration for HomeAssistant项目地址: https://gitcode.com/gh_mirrors/be/bermuda
你的客厅里明明坐着人,感应灯却理直气壮地黑着脸——这大概是很多 HomeAssistant 玩家的共同记忆。Bermuda 是一款开源的 HomeAssistant 蓝牙定位集成,它借助多个蓝牙代理接收到的信号强度做三角测量,把"在家/不在家"的二元判断,升级成"人具体在哪个房间"的精细定位,让你的自动化第一次拥有真正的"方位感"。
痛点:你的自动化,为什么总比你的脚步慢半拍
大多数家庭玩过基于 WiFi 或蓝牙的存在检测:手机连上路由器,人就"在家";断开,人就"离家"。这套方案有个尴尬的盲区——在家,不等于在客厅。
于是你会看到这样的日常:人已经走进卧室,卧室灯却纹丝不动;人已经出门上班,客厅的空调还要再吹上半小时。传统追踪给不了"房间"这一维信息,自动化只能靠猜,而靠猜的智能家居,永远差点意思。
方案:Bermuda 的思路,是给家里装一双"会算数"的耳朵
Bermuda 的原理并不神秘。它会收集家里各个蓝牙代理收到的信号强度(RSSI,也就是"这个设备离我有多近"的数值),再根据信号随距离衰减的规律,估算出设备与每个代理之间的距离。当多个代理同时"听见"同一台设备时,就能交叉判断出它到底在哪个区域——这正是 Trilateration(三角测量)这个名字的由来,也是它被叫作"蓝牙三角定位"的原因。
Bermuda 集成主界面:设备与实体数量一目了然,蓝牙定位状态尽在掌握
这套方案最大的好处是:不需要给每台设备装 App、不需要额外的定位网关,凡是能发 BLE 广播的东西——手机、手表、信标、温湿度计——都能纳入房间级追踪体系。
上手:5 分钟列出你的硬件清单
先别急着装软件,把三样东西备齐,整个过程比想象中轻量:
- HomeAssistant 本体:建议保持较新版本,老版本可能缺少蓝牙后端支持。
- 至少一个蓝牙代理(信号采集点),三选一:
- ESP32 开发板(比如 D1-Mini32)刷 ESPHome 固件并开启
bluetooth_proxy组件,便宜可靠,是社区的主力选择; - Shelly Plus 及更新型号,启用蓝牙代理功能后同样能干活;
- 主机自带的 USB 蓝牙适配器不推荐——它没法给广播包打时间戳,定位精度大打折扣,只适合最简单的在家/离家判断。
- ESP32 开发板(比如 D1-Mini32)刷 ESPHome 固件并开启
- 一台想追踪的 BLE 设备:手机、智能手表、钥匙信标都可以。
📌 小贴士:代理越多,定位越准。想让每个房间都有"判断力",客厅、卧室、走廊最好各有一台信号覆盖。
安装:三步装好,再说说手动方案
HACS 安装(推荐)——只需几步即可完成:
- 打开 HACS,搜索 "Bermuda";
- 找到 Bermuda BLE Trilateration,点击安装;
- 重启 HomeAssistant。
手动安装同样不复杂:在 HA 配置目录下建好custom_components/bermuda文件夹,把项目对应目录里的文件放进去再重启即可。习惯命令行的话,也可以直接把仓库 clone 到该目录:
git clone https://gitcode.com/gh_mirrors/be/bermuda custom_components/bermuda实战:把第一台设备"请"进 Bermuda
重启后,在"设置 → 设备与服务"里添加 Bermuda。进入配置页,你会看到它"听见"的所有蓝牙设备列表,勾选想追踪的那台并保存,Bermuda 就会为它生成两个核心传感器:
- Area(区域):设备当前所在房间,是自动化最常用的判断依据;
- Distance(距离):设备距离最近代理的估算米数,能看出人的走动趋势。
设备详情页:区域、距离、与各代理的测距结果一览无余
这样做的好处是:想实现"进门开灯",直接写一条"区域变为客厅"的自动化即可,不用再靠一堆"在家"状态拼凑逻辑,代码量瞬间清爽。
进阶:三个让定位"脱胎换骨"的能力
1. 绑定 Person,实现家庭成员位置追踪。Bermuda 会为设备生成device_tracker实体,在"设置 → 人员"里把它挂到对应的人名下,HomeAssistant 就能自动推算每个人的在家/离家状态。全家人出门后自动关空调、关灯,一条规则就能覆盖。
2. 搞定"随机 MAC 地址"设备(iOS / Android 玩家的痛点)。现在的手机出于隐私保护会定期更换蓝牙地址,传统按 MAC 追踪的方式直接失效。Bermuda 支持 IRK(可解析密钥)方案:先在 HomeAssistant 的 Private BLE Device 组件里登记设备密钥,Bermuda 就能自动解析出它的真实身份,随机地址从此不再是难题。
3. 追踪 iBeacon 信标。像按 UUID 广播的信标设备,Bermuda 也能以"信标设备"的形式纳入追踪,特别适合盯贵重物品、宠物,或者给汽车做一个"已停回车库"的判断。
想深挖实现原理的读者,可以翻一翻 custom_components/bermuda/coordinator.py,距离计算与区域判定的核心算法都在这里。
调优:把"大概准"调成"非常准"
Bermuda 在配置页和 custom_components/bermuda/const.py 中暴露了几个关键参数,值得按自家环境微调:
- 环境衰减系数:墙面、家具越多,信号衰减越快,适当调大数值;
- 1 米处参考 RSSI:不同芯片默认值有差异,可对照实测结果校准;
- 最大追踪半径:超出即视为"离开",能有效滤掉邻居家设备的干扰;
- 超时时间:多久没听到信号就标记为离开;
- 平滑采样数:采样越多,距离变化越平缓,但响应越慢。
另外,Bermuda 还提供了bermuda.dump_devices服务,在"开发者工具 → 服务"里调用,就能导出每台设备与每个代理之间的原始数据。排查"为什么定位不准"时,这份数据就是最直接的证据。
避坑:常见问题排查清单
- 距离一直显示 Unknown:通常是代理根本没收到该设备的广播。先确认设备蓝牙是否开启、与代理之间是否有遮挡,再看看代理本身是否工作正常。
- 区域判断总是慢半拍:试试把更新间隔调小、平滑采样数调低,代价是传感器数据量变大、数据库涨得快,注意权衡。
- 代理提示"未分配区域":每个代理都应归属到某个 HomeAssistant 区域(房间),否则它收集的信号无法参与区域判定,界面上也会给出相应提醒。
- USB 蓝牙适配器定位飘:这不是设置问题,而是硬件先天不足,建议直接换 ESP32 代理。
结语:现在就去给自动化装上"方位感"
从"人在家"到"人在客厅",Bermuda 用一套无需昂贵硬件的方案,把存在检测往前推进了一大步。无论你想省电、防盗,还是单纯想让灯追着人走,它都能提供全新的自动化思路。按上面的步骤装上、绑定第一台设备,今晚就能感受到房间级蓝牙定位带来的变化——动手试试吧。🚀
【免费下载链接】bermudaBermuda Bluetooth/BLE Triangulation / Trilateration for HomeAssistant项目地址: https://gitcode.com/gh_mirrors/be/bermuda
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
