I am sure this exists somewhere, but I couldn’t find it.
I based this off of Everyone’s Presence SmartApp (or something like that), but this is different. That one is about group presence. This one is about making a single person’s presence more reliable.
I noticed that if presence fails, it usually sticks on or off. For instance, a fob battery dies. Or the app stops reporting for a spell. Well, if you add a second, or third or “n” presence sensor to the mix, the combination of them is MUCH more reliable if you look at events only. Meaning that if any presence device arrives, THAT is an event you can trust, set the virtual sensor to present. Same for departure. If any device leaves, set the virtual presence to departed. Sounds simple, and works well.
- Create a simulated presence sensor.
- Install this SmartApp: https://github.com/bridaus/ReliablePresence/blob/master/ReliablePresence.groovy
- Choose the simulated sensor, and the presence sensors you want as inputs
- Point your routines and apps to the new more reliable simulated presence sensor and voila.
I’ve tested this for a couple of days, and it works well, even when someone’s phone presence is “sticky”. For instance, I have one of my family’s presence based on a fob in a backpack, and Life360. It is much less likely that both will fail at the same time. On mine I have the ST app, and Life360. Yes my phone is a single point of failure, but the apps are no longer single failure points. I don’t use a fob for myself yet.
Con: You might not notice a particular presence sensor is not working until all sensors fail because that’s sort of the point, but you might also never have a failure because the one “self fixes” as the wifi/phone solutions tend to do in my experience (or you finally get around to replacing the battery…).
Hope this is useful to someone.