The whole reason that phone rotate their MAC addresses is a privacy feature and it’s a good good thing. Without that you can be tracked everywhere you go in public. It used to be the case, at least on Android phones, that you could turn the MAC randomization off for BT but I don’t know if modern phones allow that.
I haven’t kept up with this space for a few years but I did spend a lot of time trying to get BT tracking of phones to work for presence detection working and have since abandoned it. I just don’t think it can ever work with just phones with the privacy features phones employ these days.
The reason those other solutions exist is because a “pure OH-Smartphone” solution simply isn’t feasible. You need something running on the phone to tell OH where it is, or you need something on OH to detect the phone despite the MAC randomization.
Personally, I have Android phones and the openHAB Android app will report the currently connected SSID to an Item in OH. I find that to work better than everything else I’ve ever tried. And I’ve tried:
- BT tracking including using third party tracking using ReelyActive
- FIND which worked great but requires an app on the phone and a service running and doesn’t work with “fruit” phones. But the precision was down to the room which was cool.
- ARPing from the networking binding and from an external script
- Custom BT code to parse through the broadcast packets (I learned a lot about Dexcom CGM that way though).
- GPS based using Tasker + Autolocation, just Tasker, and GPSTracker
- Bayesean based reasoner: Bayesian Group Suite - Activation Rule [3.2.0;3.4.9)
- Various combinations of all of the above
Nothing has been as reliable and easy to set up as just having the phone report what SSID it’s connected to.