I connected a USB bluetooth adapter to a linux server. Reading it from python is pretty easy. I poll continuously for new devices, which I think means a period of about 6 seconds. Bluetooth scanning is really slow.

The code has lots of leftover name lookup stuff, but mostly it's just writing the discoveries to mongodb and pinging the speech/music service to announce arrivals and departures.

The bluetooth sensor does not detect my phone from one room away, but it does find a MacBook at about that distance.