使用 ESPHome bluetooth_proxy 设备在 HomeAssistant 中按区域(房间)跟踪蓝牙设备。
(最终)对设备位置进行三角测量!就像在地图上一样。或许。
Bermuda 的目标是让您跟踪任何蓝牙设备,并让 Homeassistant 告诉您该设备在您家中的位置。您唯一需要的额外硬件是运行 esphome 的 esp32 设备,充当蓝牙代理。另外,Shelly Plus 设备也可以执行此功能。
device_tracker
实体,该实体可以链接到“人员”以进行家庭/非家庭跟踪bermuda.dump_devices
服务提供设备的全面 json/yaml 转储及其与每个蓝牙接收器的距离。 一台或多台设备使用 esphome 的bluetooth_proxy
组件向 HA 提供蓝牙代理信息。我喜欢 D1-Mini32 板,因为它们价格便宜且易于部署。据报道,Shelly Plus 蓝牙代理设备运行良好。仅支持本机支持的蓝牙设备,这意味着当前或计划不支持 MQTT 设备等。
HA 主机上的 USB 蓝牙并不理想,因为它不会为广告数据包添加时间戳。不过,它可用于简单的“家/不家”跟踪,并且当前启用了区域距离支持。
您想要跟踪的一些蓝牙 BLE 设备。智能手表、信标块、温度计等
通过 HACS 安装 Bermuda:
有关其工作原理以及如何为您的家庭配置百慕大的更多信息,请参阅 Wiki。
安装后,集成应该在“设置”、“设备和服务”中可见
按CONFIGURE
按钮查看配置对话框。底部是一个字段,您可以在其中输入/列出系统可以看到的任何蓝牙设备。选择设备会将它们添加到配置的设备列表中并为它们创建传感器实体。查看设置如何工作?了解更多信息。
选择设备屏幕会显示当前传感器和其他信息。请注意,“未显示”部分中有一些默认禁用的额外传感器(屏幕截图显示其中几个已启用)。您可以编辑它们的属性,以使它们能够获取有关您的设备位置的更详细数据。不过,这主要用于故障排除或开发。
传感器信息还包括属性区域名称和ID、相关MAC地址等。
在“设置”、“人员”中,您可以定义任何百慕大设备来跟踪任何人/用户的在家/离开状态。
请参阅 Wiki 中的常见问题解答!
想改进这个吗?惊人的!请记住,这是我第一次进行 HA 集成,而且我更像是一个白胡子系统管理员,而不是程序员,所以如果在我做蠢事的地方我真的很欢迎一些改进!
您可以首先使用服务bermuda.dump_devices
检查内部状态。
bermuda.dump_devices
服务只需调用服务bermuda.dump_devices
即可获得百慕大用于跟踪和计算其状态的内部数据结构的完整转储。这对于了解正在发生的情况和故障排除很有帮助,或者如果您有非常自定义的需求,可以使用模板传感器等来解决,则可以使用它。
如果不带参数调用,该服务将返回所有数据。可用参数可让您限制或重新格式化结果数据,使其更易于使用。特别是, addresses
参数有助于仅返回与一个或多个 MAC 地址(或 iBeacon UUID)相关的数据。请参阅家庭助手Services
页面中Developer Tools
下的参数信息。
重要提示:如果您决定将此调用的结果用于您自己的模板等,请记住格式可能在任何版本中发生变化,并且不一定被视为“重大更改”。这是因为该结构是内部使用的,而不是发布的 API。也就是说,我们将努力在发行说明中指出结构中的字段是否被重命名或移动,但不会添加新项目。
bluetooth_tracker
和ble_tracker
集成仅用于确定“家/不家”,而不进行基于“区域”的定位。 (注意:“区域”是指家外的地方,而“区域”是指家中的房间/区域)。我想以可能不适合核心的方式自由地进行实验,但希望至少其中一些有一天可以在核心代码库中找到一个家。
“监控”脚本使用独立的 Pi 来收集蓝牙数据,然后将其输入 MQTT。它不使用bluetooth_proxy
功能,我认为这是家庭蓝牙网络的未来(好吧,无论如何,它是为我的家准备的!)。
ESPrecence 看起来很酷,但我不想将我的节点专用于非 esphome 使用,而且它也没有利用 HA 中现在的蓝牙代理功能。我可能正在重新发明相当多的 ESPrescense 轮子。
一定要使用 HACS 界面!安装 HACS 后,转到Integrations
,单击右上角的肉丸菜单,然后选择Custom Repositories
。将agittins/bermuda
粘贴到Repository
字段中,然后为Category
选择Integration
。单击Add
。
您现在应该能够添加Bermuda BLE Trilateration
集成。完成此操作后,您需要重新启动 Homeassistant,然后在Settings
、 Devices & Services
中选择Add Integration
并搜索Bermuda BLE Trilateration
。它可能会通过注意到附近的蓝牙设备来自动检测您。
添加集成后,您需要通过单击Devices and Services
、 Bermuda BLE Trilateration
中的“ Configure
”来设置设备。
在Configuration
对话框中,您可以选择希望集成跟踪的蓝牙设备。
以下说明是模板中的一般注释:
configuration.yaml
)。custom_components
目录(文件夹),则需要创建它。custom_components
目录(文件夹)中创建一个名为bermuda
的新文件夹。custom_components/bermuda/
目录(文件夹)下载所有文件。如果您想为此做出贡献,请阅读贡献指南
该项目是从 @oncleben31 的 Home Assistant 自定义组件 Cookiecutter 模板生成的。
代码模板主要取自@Ludeeus的integration_blueprint模板Cookiecutter User Guide**