It seems like I get a lot of false presence arrived triggers. If my battery is low, it’ll turn off GPS until I start using my phone again, so when it turns back on registers that I just arrived even though I’ve been in the house the whole time.
I also shut my phone off when I go to bed. When I turn it on in the morning, it thinks I’ve arrived, even though I haven’t left. There are other issues too.
There are 2 very easy ways for SmartThings to fix this.
Check the previous status. If my status is/was present, and you get a new update with the same status, don’t fire a trigger event.
Since this is GPS based, the definition of AWAY should be a reported location outside of the geofence of my home, and PRESENT should only be reported when a location is reported inside my geofence. If no location is reported, don’t change the status. Ie, if I was AWAY and you don’t know where I’m at, leave me as AWAY. And if I was PRESENT and my phone gets turned off, leave me as PRESENT.
EDIT: Looks like ST is doing these 2 things and that this is actually an Android issue when using ‘High Accuracy’ location. See post 6 below.
I’m fairly confident that this is in fact how presence is handled by ST. I say that because I live within a block of a subway station, so it’s within the geofence of my hub. Every day when I go to work, ST doesn’t think I’ve left until I get back above ground.
Digging more into this it appears that the App maybe doing those two things and that my phone thinks its jumping to different locations. In Android my Location settings is set to High Accuracy which uses GPS, WiFi, Bluetooth, and/or cellular networks to determine location. Problem with this is that it can use just cell towers to determine location. This has my location jumping around, even when I’m sitting in my house watching TV.
I went to the Verizon store and showed them this and they told me to change the Location setting to Device GPS Only. Problem is SmartThings doesn’t think I’m allowing Location Services and so my ST Presence won’t work now.
Anyone got a way to make their Android location services more accurate and work with ST?
Maybe the ST app needs to allow Device Only location settings for Presence? @slagle would that work?
I think I have come up with a work around for smart phone app presence constantly arriving and leaving even when home.
I created a Virtual Presence Sensor using the Universal Virtual Device Type Handler. I then use 3 IFTTT recipes and an ST Smart App to control the Virtual Presence
IFTTT Android Location leaves a location, turn off ST Virtual Presence Sensor. This location is much bigger as it includes the areas where Google thinks I’m jumping around to (more on that later)
ST Smart Lighting App to turn on Virtual Presence Sensor when my Android Presence Sensor arrives.
IFTTT Android connects to Home WiFi turn on ST Virtual Presence Sensor
Now change your Routines (I’m Back, Goodbye, etc) to use your new Virtual Presence Sensor instead of your Smart Phone sensor.
What this does is any time I enter my home geofence, either IFTTT or ST will turn on my Virtual Presence Sensor. Because it’s a switch, turning it on multiple times when its already on won’t trigger multiple events. Using both ST and IFTTT should help trigger your arrival as soon as possible.
When sitting at home my location will occasionally jump around due to it using cell phone towers for location instead of GPS. Using Google’s Location History, I looked at several days history to determine where it thought I was teleporting too. Most where to the same location not too far from me but further than I would like my ST Geofence to be. In IFTTT I created the 2nd recipe above using a much larger geofence that is large enough to include these locations. That way when Google think I magically teleport to these locations it won’t trigger a presence sensor left event. For the most part, when I leave my house I leave this area anyway, so will just take a little longer for ST to think I’ve left, but shouldn’t be more than an extra minute.
You can see your Google Location History by going into Maps on your phone, click the hamburger menu icon top left, and selecting “Your Timeline”, then click the calendar icon top right to check out different days. Zoom into the area near your home and look for your presence going somewhere you were not several times. You’ll basically see a bunch of lines going from your house to that location (see my post above).
You can also see your Google Location History in a web browser. https://support.google.com/maps/answer/6258979?co=GENIE.Platform%3DDesktop&hl=en
I have a problem like this but mine jumps from Houston, TX to Philadelphia, PA. So increasing the area does nothing for me. Mine has been working great for years and this just started a few weeks ago.
Based on my research I have found that:
It is not a ST problem
It is not my phone (my wife is having the same issue, different phone)
It is not my carrier (I have T-Mobile and my wife has Verizon. We both have the same issue now)
It only happens at home. Not at work. I created a Tasker profile to log all gps changes and it doesn’t happen at work, for example.
My suspicion, it has to do with the GPS signal in our area. With Tasker, I executed a beep sound every time it changed my presence in ST, immediately I would open maps and I could see the location somewhere in Pennsilvania.
Wow, this was broken when I started using Smartthings in 2014 and today it is STILL broken. When I add the mobile presence thing it works ok. Then after several days it stops reporting and/or it reports coming home/leaving at the complete wrong times.I chekced my good presence, it shows exactly where I was correctly. Set to high accuracy etc. What the heck.
Just installed the latest Android app which has a “wizard” to ask about turning of battery optimization for the ST app. My wife’s phone has been problematic with the presence detection since day one, and so far it has been working fine about the ST app update and selecting “Yes to No battery optimization”. Hopefully this is finally the fix, very frustrating without this feature working the way it should.