Bluetooth 6.0 Channel Sounding (HADM) for distance measurement

​Hi everyone,

​I’m looking at Bluetooth 6.0 specification for Channel Sounding (HADM) feature. This promises centimeter-level distance measurement, which could be used for presence detection in Home Assistant by tracking devices like our phones, watches, or smart tags.

The potential is huge for finally solving room-level presence detection. For example:
​Triggering automations based on location within a room (e.g., couch vs. desk).

​Knowing if a car’s Bluetooth tag is in the garage vs. just in the driveway.
​Having lights and media seamlessly follow you between rooms.

​Is there any developer discussion or a long-term plan to integrate HADM support into Home Assistant’s Bluetooth framework?

​It seems like very good solution for presence detection.

​Thanks!

It is not that reliable.
Radio waves bounce around a lot and also penetrate objects.

My work tried it with WiFi to detect if class rooms were occupied and it did not work.
We dedicated 2 radios on each AP to presence detection and our WiFi controllers coordinated the detection between the APs, but it was not able to place persons inside a 25-30 user class room with any usable precision.

The problem with RF waves are that they are easily going through many types of solids, like pure concrete, but metal pipes and ducts reflect it and liquids absorbs it.
Sadly the human body is consisting of a lot of liquids, so when a person move the device in front or behind the body, then the distance measured change drastically.

With BT the signal is even weaker, so those moves will have more impact.
Same goes for cars that consist of metal and if it is suddenly bouncing once more of a metal surface, then increase the distance too.

I'm a little more optimistic about channel sounding. Not sure if you actually looked into how its different. It's nothing like what you're talking about:

Channel Sounding is Bluetooth 6.0’s new way to measure distance between two BLE devices much more accurately than RSSI.

Normal BLE tracking usually does this:

strong signal = probably closeweak signal = probably far

That is RSSI, and it is messy because walls, metal, antennas, body blocking, reflections, and orientation all change signal strength.

Channel Sounding does something more like:

device A sends carefully measured radio signalsdevice B responds in a controlled waythey repeat this across many Bluetooth channelsthe radios compare phase / timing changesdistance is calculated from those measurements

So instead of guessing from “how loud was the signal,” it estimates distance using the radio wave behavior itself.

Why it matters

For BLE tracking, Channel Sounding can potentially give you:

Feature RSSI BLE tracking Bluetooth Channel Sounding
Presence detection Good Good
“Near/far” estimate Rough Better
Distance estimate Very rough Much better
Room-level tracking Hit or miss More realistic
Direction by itself No Usually still no
Needs support on both ends Mostly no Yes

Both ends need it

You need a Channel Sounding-capable tag and a Channel Sounding-capable anchor/proxy.