GUIDE - Grabbing your Phone/Watch Bluetooth IRKs (2026 edition)

I put a good amount of time into refining a phone and watch IRK capture ESPHome package. So far its been working great with iPhones, Apple Watches, iPad and Android phones like the Samsung Galaxy S25+ and Pixel 9.

My GitHub repo has the full installation instructions and covers both Apple and Android devices. It simulates two type of BLE devices: heart rate monitor for Apple devices, and a keyboard for Android phones.

Android watches are very problematic, so other methods will likely be needed for them. Some watches only do ‘reverse’ pairing, and others like the Samsung Galaxy Watch8 Classic do extremely aggressive BLE device filtering and won’t show the broadcast ESP32 device.

At a high level the process is:

  1. Flash my ESPHome IRK Capture package to your favorite ESP32 device.
  2. Open the device in ESPHome and select heart rate or keyboard BLE emulation, depending on your device type.
  3. Pair your phone/watch to the broadcast BLE device.
  4. Copy the IRK from the ESPHome device page into the “Private BLE device” Home Assistant integration.

1 Like

Samsung Galaxy Watches

Samsung Galaxy Watches aggressively filter BLE devices, and neither the Keyboard nor Heart Sensor profile will likely appear as a pairable device in the watch’s Bluetooth settings. The app “BLE Scanner” by Stefan Thomas does list the ESP32 device on the watch, however the app does not allow pairing attempts. This appears to be an app limitation, as user reviews have also complained about the lack of pairing functionality.

So Galaxy watches are a no go :cry:

Amazing! Thanks for the effort that went into this and the write up. This is exactly what I was after