跳转到内容

ESPresense ​

ESPresense 想解决的问题是:让智能家居知道「这个人 / 这部手机 / 这把钥匙现在在哪个房间」。方法是在各个房间放一个 ESP32 节点,监听蓝牙广播,根据信号强度 (RSSI) 推算距离,再把结果通过 MQTT 发给 Home Assistant,用来触发房间灯、空调等自动化。

项目概况 ​

项目内容
仓库 / 官网github.com/ESPresense/ESPresense,文档 espresense.com
作者 / 组织ESPresense 社区
开源协议AGPL-3.0
支持芯片ESP32 系列(README 描述为 ESP32 based node)
首次发布仓库创建于 2021 年 8 月 18 日
版本最近的稳定版 v4.0.6(2026 年 2 月 28 日);另有 v5.0.0 beta 系列(2026 年 10 月 12 日发布 v5.0.0b2)
热度约 1500 星(2026 年 10 月)

它是怎么工作的 ​

  • 每个节点持续扫描 BLE 广播,包括手机、手环、iBeacon、智能手表、标签等。
  • 对每个设备估算距离(基于 RSSI,并结合校准参数如参考 RSSI、吸收系数)。
  • 把测量结果通过 MQTT 发布。Home Assistant 的 mqtt_room 组件可以直接使用,判定设备最接近哪个节点(房间)。
  • 如果配合 ESPresense-companion,可以输入房间的平面图和节点坐标,进行多点三边定位,得到精确位置。
  • 节点有网页配置、MQTT 控制和 OTA 更新。

需要的硬件 ​

部件说明
节点任意带蓝牙的 ESP32,常见的是 ESP32 DevKit 或 XIAO ESP32C3 这类小板
供电USB 常供电,节点要常年在线
被追踪设备手机(Android 要装应用来固定广播身份)、BLE 手环 / 信标,iPhone 因地址随机化较难追踪,社区常用 Apple Watch 或专用信标
服务器MQTT Broker 与 Home Assistant

支持的具体芯片和板型请以文档站为准。

上手路径 ​

  1. 准备 2 到 3 块 ESP32,一个 MQTT Broker(如 Mosquitto)。
  2. 通过项目的 Web 安装器刷入固件,再设置 Wi-Fi 和 MQTT。
  3. 在 Home Assistant 里添加 MQTT 集成,设备会自动发现。
  4. 以身份 ID 追踪你的手机、手表或信标。
  5. 想要更高精度,部署 ESPresense-companion。

更多房间感知方案可对照 存在感与 BLE 代理,那里讲的 ESPHome 蓝牙代理是另一条路线。

生态与衍生 ​

  • ESPresense-companion:同一组织的配套服务,提供多点定位与可视化。
  • 对比:ESPHome 蓝牙代理 + Bermuda 等 Home Assistant 集成可以做类似的事。选哪个取决于你是否已经在 ESPHome 体系里。
  • 与 OpenMQTTGateway 都用到 BLE 到 MQTT,但 ESPresense 专注定位。

局限与注意事项 ​

  • RSSI 本身不稳定,墙体、人体、天线方向都会影响结果。通常只适合房间级,不是厘米级定位。
  • 节点密度越大越准,每个房间至少一个。
  • iOS / 新版 Android 对蓝牙广播有隐私保护(随机地址),追踪手机需要额外设置。
  • 5.0 仍是 beta,上生产前读 changelog。
  • ESP32 同时跑 Wi-Fi 与蓝牙扫描,会共用 2.4 GHz 射频,繁忙环境中可能丢包。

参考资料 ​

ESP32 非官方中文调查手册,与乐鑫科技(Espressif Systems)无隶属关系。