Welcome to Tesla Motors Club
Discuss Tesla's Model S, Model 3, Model X, Model Y, Cybertruck, Roadster and More.
Register

Awesome iOS App called Stats

This site may earn commission on affiliate links.
Thanks. It makes a lot of sense to be careful with entering your credentials in a third-party app. You can read the details in the privacy policy link of the app provided above (also in the App Store). the short version is that your credentials stay in the app and is sent to Tesla only over an encrypted link (using TLS). Also, we never sell user data.
As a rule of thumb, remember than nothing is free. So, if you see a free app that collects data, chances are that they sell your data to offset the cost of developing and maintaining the app.
I am an independent developer and writing apps is a hobby of mine. I developed this app for myself when I bought my Model S in 2016.
Have you thought about implementing tokens instead of requiring U/P?
Thanks. If you choose to not submit data anonymously (I do submit it), does your own collected statistical data remain only on your phone?
Also my understanding is, it's the phone directly communicating with the car (API), not some server (of yours)? The API itself might go through some sort of server of Tesla's and this app doesn't differ from the Tesla App in that regard.

Another way of saying it, if I deleted the app on my phone, all collected statistical data of mine is gone with it and nothing else has my credentials or data kept elsewhere (except perhaps my own iCloud backups). Again, this is in the context that I didn't submit my statistical data anonymously.

And for others curious minds, the app does NOT automatically submit anonymous stats and prompts you if you want to contribute or not.

For the record, the Teslafi.com model is uncomfortable to me. Like if something went wrong (say a bug or site was hacked) I don't like a 3rd entity independent access to my car. If something goes wrong in this model (your Stats app) I can turn off my phone or delete the app. This assumes the answer to my question above is that only the phone communicates to the API :). If a bug or hack happened on Teslafi.com I might not be able to "disable it".
TeslaFi allows you to use a token instead of giving your U/P. By default Fi doesn’t allow that token to control your car, but if someone were to steal that token they could control your car (as far as I know all tokens are the same, Tesla doesn’t differentiate).
 
  • Like
Reactions: larryj
Have you thought about implementing tokens instead of requiring U/P?
TeslaFi allows you to use a token instead of giving your U/P. By default Fi doesn’t allow that token to control your car, but if someone were to steal that token they could control your car (as far as I know all tokens are the same, Tesla doesn’t differentiate).

I've heard about the tokens. How is that any more secure than U/P?
 
Of course, the app uses tokens to communicate with Tesla. User credentials are sent to Tesla (encrypted) only when a new token needs to be generated.
The problem w/ using tokens installed of credentials is that:
  1. Vast majority of users don't know how to generate tokens
  2. Tokens expire and the user needs to generate new ones when they expire. When the token expires, the app cannot collect stats and fails quietly in the background and users blame the app and rush to the AppStore to leave a one-star review. It becomes a support nightmare

If the user is not comfortable with the privacy policy of an app, they should not trust that app even with a token.
 
  • Like
Reactions: mswlogo
I've heard about the tokens. How is that any more secure than U/P?
IIRC the API provides a means or revoking a token without you having to chenge your password.

Of course, the app uses tokens to communicate with Tesla. User credentials are sent to Tesla (encrypted) only when a new token needs to be generated.
The problem w/ using tokens installed of credentials is that:
  1. Vast majority of users don't know how to generate tokens
  2. Tokens expire and the user needs to generate new ones when they expire. When the token expires, the app cannot collect stats and fails quietly in the background and users blame the app and rush to the AppStore to leave a one-star review. It becomes a support nightmare

If the user is not comfortable with the privacy policy of an app, they should not trust that app even with a token.
True. Some “power” users like the flexibility. Honestly it was a pain generating a token and I haven’t found a good excuse to use it yet.


I like your app. TeslaFi is probably data overload for the average person and you app strikes a good balance of info that we should care about versus “nerd” data.
 
  • Like
Reactions: mswlogo
Can someone go into detail on how it talks to your car? I am still weary about giving a 3rd party access to my car for security as well as vampire drain issues...

After removing this app it greatly lowered my phantom drain. The app will wake up the car to refresh its stats during the day even without the app opened. The Tesla app will never ping the car unless you open the app but Stats app will (probably part of iOS background refresh processes).

That's been my experience.
 
After removing this app it greatly lowered my phantom drain. The app will wake up the car to refresh its stats during the day even without the app opened. The Tesla app will never ping the car unless you open the app but Stats app will (probably part of iOS background refresh processes).

That's been my experience.
There’s still significant difference between sleep states on 3 vs S. @rawmean, did you do your testing of the vampire drain on just S? That would be negligible if always connected is selected.
Although iOS background apps coalesce requests and responses, you should have an idea of how often these are dispatched to TM via the api. How often does this occur?
 
There’s still significant difference between sleep states on 3 vs S. @rawmean, did you do your testing of the vampire drain on just S? That would be negligible if always connected is selected.
Although iOS background apps coalesce requests and responses, you should have an idea of how often these are dispatched to TM via the api. How often does this occur?

The distribution between All, X, S and 3 have similar looking phantom drain.

@rawmean there is a slight bug that when choosing which model to display stats on you cannot unselect model 3.
 
The distribution between All, X, S and 3 have similar looking phantom drain.

@rawmean there is a slight bug that when choosing which model to display stats on you cannot unselect model 3.

You are correct. The histograms of phantom drain in the app (across thousands of users) clearly indicates that phantom drain with this app installed is quite low (about 0.2mph) and this is the same for model S/X/3 which can be seen separately in the app.

Not affecting phantom drain was one of my main goals and it did make the app design more complex than, but it think it's very important.

Re not being able to de-select: it needs at least one of the 3/s/x to be selected. So, you can deselect 3 by selecting a or x first.
 
There’s still significant difference between sleep states on 3 vs S. @rawmean, did you do your testing of the vampire drain on just S? That would be negligible if always connected is selected.
Although iOS background apps coalesce requests and responses, you should have an idea of how often these are dispatched to TM via the api. How often does this occur?
The test has been done on S/X/3 (there are quite a few beta testers who volunteered to help).
BTW my model S (2018) doesn't have the "always connected" setting anymore; my 2016 model S did. I'm not sure if it was removed in v9 or it's because my 2018 car has an MCU2.
 
  • Like
Reactions: MikeBur