So I decided to get started with Bermuda BLE to track devices around the house, mainly to control the main door automations to only trigger when presence is from people that don’t live here. At the moment we only have Android phones with bluetooth, but rarely do any of us leave the house or come back to the house without them.
That said the process is not as straight forward as it might seem, and I haven’t found good documentation where it puts everything together. Hopefully I can get some help on setting everything up correctly via this post, and in the future others can take advantage of what has been put together on this post. The main Bermuda BLE Trilateration has over 300 posts, which makes it very hard to find info we might be looking for.
So first the easy parts. Installing the HACS integration of Bermuda is pretty straight forward, and there is good documentation out there on how to do it. Once installed you should see something like this on your devices and services page
Once you click on Bermuda you will see this:
ADD DEVICE you will never use, since you can only run Bermuda once. The 3 dots are the regular 3 dots with options to change name, reload, etc. That leaves us with “configure”
First option is the Global Options. I haven’t played with it yet, but basically different variables that allows you to configure how the Bermuda integration processes the info. It does explain a bit what each option does.
The second option is to Select Devices, and that is where it gets totally confusing. But before we get into selecting devices, lets talk about the ESP BLE Proxies. They are actually extremely easy to install thanks to the ESPHome Ready made projects Ready-Made Projects — ESPHome
Again I won’t go into details on how to set it up and add it to your ESPHome dashboard in HA. There is plenty of good documentation for that out there. The install you get is with “vanilla” settings. It should work with Bermuda just as is, but if you want to tweak it a bit, you can add some code to the yaml file.
I will explain how to do that.
The code you would add then install is:
esp32_ble_tracker:
scan_parameters:
window: 900ms
interval: 1000ms
The parameters are somewhat self explanatory but basically “window” is how long the actual proxy listens for a signal, and interval is how long it stops listening. The guy that actually created this integration says he suggests 320 for Window and 290 for interval, or around that range.
Now where to add the code. Well assuming you adopted the Proxy to your EPSHome, you would go to ESPHome which should look something like this
From there you click on “edit” of the Proxy you want to add the code to, it would look something like this:
It doesn’t really matter where you put the code, but indentation/spacing is VERY important. I could have put the code under the “wifi” section, or above the “api” section. It doesn’t matter. Once the code is there, you hit save and then install.
As an aside if you notice at the bottom of my code I added:
switch:
- platform: restart
name: Proxy Restart
That creates a switch on the proxy which allows me to restart the proxy. Some of my proxies have LD2410s mmWave sensors connected via bluetooth, and when they go offline often rebooting the proxy fixes the issue.
On the devices and services page under the ESPHome tab you can see a list of your proxies, this is what one of mine looks like:
So if you followed so far we have the Bermuda integration installed, and we have a few proxies setup. The more proxies you are able to set up the more mileage you should get out of Bermuda. I have 4 set up, but plan to add another 3 or 4 in the near future. Now how to “select” devices in Bermuda.
This brings us to the topic of this post. “Private BLE Device for use with Bermuda BLE Trilateration”. From what I understand there are couple different ways to track a device for Bermuda to do its thing, but Private BLE is the preferred method.
There isn’t much info on how to set up the Private BLE integration. I went to the official HA Private BLE page Private BLE Device - Home Assistant and this is what they say
When you follow those instructions you will see something like this
But you probably have no idea what an IRK is or how to get it. Oddly enough if you X out of that menu since you don’t have your IRK when you go back to devices and services you won’t see the integration. You have to click on “add integration” again.
The official Private BLE device page explains a bit on how to get the IRK for MACOS (apple stuff) but like I mentioned in my household we all have androids.
For non Apple users, they make it seem like ESPresence is how we would get the IRK, so basically we would have to set up ESPresence even if we don’t plan to use it. Luckily someone shared this link with me How to get the IRK (Identity Resolving Keys) for iOS, Android etc · agittins/bermuda Wiki · GitHub
From there you pick what works best for you. To me it seems the path of least resistance was the FryeFryeFrye Firmware. I won’t go into details here, but this link has pretty good instructions on how to get it going GUIDE - Getting the IRK for iPhone and Apple Watch without MacOS (Maybe also other devices?)
I did get the FryeFryeFrye setup working for me. I have the 4 proxies and the Bermuda integrated. I am about 90% there, and now I need help to get me all the way there.