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.
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.