What is the fastest and most reliable way to do presence detection in 2021? (Not room level)

What is the fastest and most reliable way to do presence detection in the year 2021?

Requirements:

  1. I am trying to determine if an entity as at home or not. I am not looking for “room level” detection.
  2. Tracking both individual people and vehicles. 2 cars, but a narrow, one car wide driveway. Cars may be parked in either order, and only one car ever goes into a detached garage, (and only if it goes in the driveway first).
  3. Arrival and departure events should be quick and reliable. For instance, a garage door could be opened when a vehicle pulls into the driveway. A door could be unlocked when an individual walks up the front steps. Conversely, if something briefly glitches, I don’t want my garage door opening because it thinks my car disappeared and reappeared. (I realize that some of that can be accounted for in software, which I will do if possible.)
  4. The people being tracked live at the house, but not all have smartphones (young children). It is acceptable to have their presence asserted by a wireless dongle or similar that could be attached to their backpack.
  5. Tracking outside of the home is not required, beyond knowing that a person has left. My spouse and I do use Google’s “Location Sharing” feature, but I don’t want to ask the other adult who lives with us to use that. (Also, I am not sure that the location-sharing feature is responsive enough to be useful.)
  6. I am happy to get my hands dirty with new hardware, soldering, software, or similar as long as its reliable and low maintenance once installed. I already have esphome setup, for instance.

I will reiterate the most basic requirement: I want to be able to quickly assert whether someone/something is at home or not.

Nice to Haves:

  1. I prefer hardware solutions that have a hard-wired power connection. Remembering to change batteries every few months is a hassle.
  2. While room-level detection is not requirement, it would be nice to know if an individual has just arrived home and if they are approaching the front door or the back door (usually the front door when we are walking home, back door when we arrive by car.)
  3. It would be neat to get a little more data from my car - last known gps coordinates and the likes. It would similarly be neat to know who is in the car at any given moment. I.e. knowing that Car #1 just pulled into the driveway and has my spouse and one child in it. Maybe it’s enough to know that all three arrived within a small time window?
  4. The less investment it requires from family members, the better. I’d prefer not to have to install new apps on their phones (though I will if I must).
  5. I don’t have video doorbells setup, but it would be interesting to get alert when familiar faces (friends, mail carriers, etc.) arrive. Again, speed and reliability would be key. I don’t want to wait 2 minutes to know that my friend is waiting for me at the door. Conversely, I don’t want an alert every time someone walks by on the sidewalk. (My front yard is shallow and its a moderately busy neighborhood.)
    1. I do have one outdoor nest cam on my property. It has failed to impress me with its “smarts”. I get a lot of useless alerts. Further, I am not clear if I can use its API to roll my own, smarter system.
    2. Maybe something that can differentiate between “See a known face anywhere” vs “See a stranger that walked up my front steps”.
  6. I noted that my spouse and I use Google’s Location Sharing. While I don’t know that it is fast enough to meet my requirements, separately, it would be neat to get alerts when one of us appears to be leaving work, is heading home, or is otherwise on the move. However, I think of this as a separate feature.

I’m using BLE. I only do car detection, people presence is inferred from that (we very rarely leave the house without a car, very rural area, and we don’t have kids). Each of our cars has a BLE dongle plugged into a USB or 12V outlet (so it turns off when the ignition is cut). Each dongle is programmed to send a different GUID, so HA can distinguish between the cars. There’s two Pi Zero W’s doing the reading, in waterproof boxes along the driveway. The first at the far end of the driveway (connected by PoE Ethernet using a long underground cable) and the second one close to the house. Both communicate with HA over MQTT. Both Pi’s are programmed to do continuous passive BLE scanning, which is supported in hardware by the Bluetooth chip. So detection is very fast.

When a car passes the two readers, there will be a very distinct pattern on each of the signal RSSI’s. The first reader getting the signal is used to determine if a car arrives or leaves. The second reader will then confirm the presence. For example, first reader got my car GUID → ‘Alex is arriving’, and then the second reader gets my GUID → ‘Alex is home’. Vice versa for leaving and away states. RF ranges can be fine tuned by specifying an RSSI cutoff value to avoid spurious detection (I cut it off at -102 dBm, found that this was a good value by trial and error). The car is identified with the GUID. Every week, the GUIDs are rolled according to a pseudorandom number generator, so to reduce the risk of spoofing.

This setup has been working without a single failure for about a year and a half now. Delay for detection of presence is typically in the milliseconds, as soon as a car passes a reader.

That system doesn’t tick all of your boxes, but it’s something I have found to be extremely reliable and very low lag. While I haven’t tried it, it should also work with worn BLE beacons to do person arrival / leaving detection.

4 Likes

I use People and have the following linked to individuals.

  1. Phone App
  2. Wifi (Google Wifi Integration)
  3. Blutetooth/BLE via room-assistant (not needed for you, but it does have home-level Home/Away detection).

I do NOT have any of the fancy camera stuff going on.

It’s 99.9% reliable at least.

Any chance in sharing the code for your setup? Sounds like exactly what I’d like to do.

1 Like