What's the best way to identify when WC Presence Device stops moving?


I want to be able to trigger an event when I arrive somewhere and stay there. Currently I have it set to trigger when the WC Presence Device’s “speed stays less than 3 ft/sec for 300 seconds” but it’s not consistent.

Are there any good ideas for how I can detect when I’ve arrived at a location (that’s not already set up as a Place in WC)?


I have found that using presence in webcore is highly variable and just not practical for my applications. However, many here have had much better consistency.


With our current technology, GPS moves around a bit… All day. Every day.
(sometimes small subtle shifts, but sometimes, it can jump even a mile or more)


I agree with the guys.
I doubt that this level of consistency is possible YET.

I don’t understand this part I’m sorry.
Maybe aloborate on that a little bit more?
(What I understood is, lets say you went from X to Y town and Y is not yet setup in webcore but you want that place to be your trigger)


Sure, I’ve set up a GET request to nominatim.openstreetmap.org to do a reverse lookup and identify the “location” that’s present at the latitude and longitude that the WC Presence Device reports. This is cool, but I only want to identify a location once I’ve “arrived” there.

Right now I’m using “speed stays less than 3 ft/sec” because I’m usually driving to a destination, but I suppose I could try “distance” too. The trouble is that I’d need something along the lines of “distance doesn’t change more than xyz in 300 seconds” but I don’t know how to accomplish that.


Don’t know how you can do that (my lack of knowledge)
But just checked the presence sensors COMPARISONs and you can use Compare to “EXPRESSIONS” that means formulas. I’m sure someone will jump in and help you with that formula.


you can get the latitude and longitude but the distance between two lat/long positions is a complicated formula involving geometric functions I don’t believe are in WebCoRE. You might be able to get close enough, though by just looking at the change in lat/long being less than some threshold but you might have to experiment with it.


If you use the Life360 app and DTH, you can set up locations by name, and designate how big the bubble is. Free Life360 will give you 2 or 3 locations, but if you pay for it, it’s unlimited. Whenever someone in my family arrives at a designated location, WC/Alexa will speak the name. “Mom is at home”, “Dad is at Jack in the Box”, Daughter is at Kathleen’s House", etc. Even if their GPS wiggles, they should still be inside the diameter of the circle. My piston watches the “location” part of each person, so if it changes away from “Home” or “Work” or “Kathleen’s house”, WC/Alexa will tell me when they’ve left.


Alternatively, if your phone is Android, I would recommend using Tasker and the $2 plugin called AutoLocation.

There is unlimited geo-fences (circles) you can make with that app… They can be independent, or overlap, or even be entirely contained within a larger circle.

The way it works is you can selectively customize each circle to choose between WiFi location, low battery GPS, or high battery GPS. (you can also choose the GPS update frequency for each circle) It can calculate speed, delays, double checks and everything you asked for above.

One example: In certain locations, I need ultra precision, so I tell that geo-fence to check more frequently using the higher battery drain method… When I am home, and connected to my WiFi, then my location is known, so it automatically turns off GPS to conserve batteries. Once I disconnect from my home WiFi, the GPS goes back low battery mode GPS. Later, when I disconnect from my car’s bluetooth, the GPS goes into high battery mode for 2 minutes to capture my precise location. (it logs the location of my car, and triggers a piston)

Here is a great 5 minute video showing this off.

Essentially, each geo-fence can have different rules and parameters.

Tasker and the plugin are quite advanced, but oh my God, the possibilities are limitless.
(IF you have Android)

Side Note:

Tasker can easily trigger any piston (even pass arguments) whenever the conditions are right.