Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ignoreStaleLocations - Float, not Int #448

Closed
theorician opened this issue May 25, 2017 · 8 comments
Closed

ignoreStaleLocations - Float, not Int #448

theorician opened this issue May 25, 2017 · 8 comments
Assignees

Comments

@theorician
Copy link

Hi,

Could you make ignoreStaleLocations a Float please?

The problem I'm trying to solve is that I want my device to update the location even if I've not moved. I want it to ping constantly. The easiest way I can see to do that is to mark anything older than a minute or two as stale. Since you seem to be expanding ignoreStaleLocations to seconds anyway (I see ignoreStaleLocations * 24.0 * 3600.0 somewhere) I assume that this is not a huge change to make.

Is there a better way to do this?

The config settings locatorDisplacement and locatorInterval are only the maximum update intervals - I effectively want a minimum update interval, also.

@jpmens
Copy link
Member

jpmens commented May 25, 2017

Can you tell us why you want those updates even if you've not moved? What is your use case?

@theorician
Copy link
Author

So the thing is that currently, if there's no update, it means either I've not moved, the app/my phone has died, or I've deliberately turned it off.

If an update gets saved/sent every few seconds despite me not having moved, then I can point to that and say "See? I was there at that time." (Or at least my phone was.)

This is useful for several things. Forensically speaking it is useful to have an accurate accounting of where I was at any given moment, even if I've not moved, for my job.

Hobby-wise, in terms of photography, it's also useful. Specifically: if I take a photo at time x, but there's been no update since x-10 minutes, there is some software which links up GPS tracks to photos which will go "Well, I can't find a GPS location for this! There's not been an update in +/- 5 minutes." (I've picked those times out of thin air.) It's just helpful to have a persistent track without time interruptions.

Obviously since this is would be a config setting, it's on me if I want to take the hit in terms of battery life.

@jpmens
Copy link
Member

jpmens commented May 25, 2017

I don't think you can use this for any forensic proof, as you could have injected or manipulated the data...

Be that as it may, a workaround you can try using is reportLocation which you would queue server-side by publishing the request to your broker, having it transfer to your phone when the latter wakes up. Note, that due to how iOS works -- our app is put to sleep and may only wake up periodically -- you would queue this request with QoS=2, non retained. As soon as the app wakes up it would then report location, admittedly not necessarily within the few seconds.

Also, due to what I've just said, we wouldn't be able to send a location every few seconds; the best we can do is use Move Mode, but for that to be effective, your device must be on and OwnTracks in foreground.

(BTW, I'm not quite sure how this works with your wanting to use little mobile data ...)

@theorician
Copy link
Author

I don't think you can use this for any forensic proof, as you could have injected or manipulated the data...

Quite right. I mean - it's definitely not proof of much. In the most basic sense I could just leave my phone at home/give it to someone else. I don't expect it to hold up in a court of law :)

having it transfer to your phone when the latter wakes up.
BTW, I'm not quite sure how this works with your wanting to use little mobile data ...

Yeah that's the problem. I'd like it to work offline, and then push when I get internet. (To clarify what I said on another ticket: I don't really expect to be going a month, two months, etc, without internet at a time, but it'd be useful to have a large buffer upwards so as to never have to worry about it.)

I take it that my suggested change of ignoreStaleLocations being a Float doesn't... erm, float your boat?

@jpmens
Copy link
Member

jpmens commented May 25, 2017

Whether it floats my boat or not doesn't really matter ;-) I'm trying to determine use case. If we think it serves many people what we'd then do is "fight it out" internally and see whether we all agree to implement it or to not implement it. (I like to attempt to keep features we do half way homogenous accross our iOS and Android platforms). If it serves just one or two, but we find the feature really cool, we'll typically also do it.

To be honest, I'm not seeing the case for this feature, mainly because I'm afraid people will be able to shoot themselves in the foot by setting it, raking up large mobile data charges, and then saying it's OwnTracks' fault.

@theorician
Copy link
Author

That's fair. Is there a scope for "only send updates when on wifi" as a toggle switch?

@ckrey
Copy link
Member

ckrey commented May 28, 2017

ignoreStaleLocations does not control or influence the frequency of positions sent.

It does only suppress "very old" locations of friends to be displayed on the map or the list view.

Example:

If I have a friend (who is probably not using OwnTracks anymore) who sent the last location update two weeks ago, his position will be suppressed if I set ignoreStaleLocations to 10 (days).

@ckrey
Copy link
Member

ckrey commented May 28, 2017

@theorician you can disallow use of mobile data for OwnTracks and you have your "only send updates when on wifi" toggle switch.

@ckrey ckrey closed this as completed Jun 26, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants