Using Google Home Local API for Bluetooth based presence detection

I today watched this awesome youtube video by Everything Smart Home about using ESP32 and ESPresence to do device localization and room based presence detection in Home Assistant. I wanted to explore playing with room based presence detection for a while a decided to pull the trigger on a bunch of ESP32 boards.

Just this evening, while researching something completely different I ended up scrolling through the (unofficial) Google Home Local API documentation and the part about scanning for Bluetooth devices caught my eye:
https://rithvikvibhu.github.io/GHLocalApi/#operation/GetScanResults

I might be oversimplifying this, but if I’m not completely wrong then the result of this query should be enough to do the same thing ESPresence effectively does with a bunch of dedicated ESP32 controllers. Given that I already have roughly a dozen different Google Home devices throughout my home, that would make the use of dedicated ESP32 based “Bluetooth scanners” superficial.

My questions to this community:

  1. does it seem like GetScanResults might be able to effectively measure and track to location of various personalized Bluetooth trackers like phones and smart watches throughout a home or am I missing something prohibitive here?

  2. has anyone ever looked into using Google Home Local API in this way or is there even a project that I am unaware of that taps into this functionality?

Thanks,
Daniel

2 Likes

very nice idea, so, you will connect your Google Home (speaker) over local API (do we need to enable it explicitly>) and get bluetooth devices regularly and set home/away (device tracker) using the presence.

Very liked the idea. Do we need local SDK for this? could it work with cloud too?